我有以下数据集
ds = xr.Dataset(
{
"temperature_c": (
("lat", "lon"),
20 * np.random.rand(4).reshape(2, 2)
)
},
coords={"lat": [10, 20], "lon": [150, 160]},
)
我想添加一个名为
custom_idx
的新坐标。我通过跑步来做到这一点
ds.set_coords(("custom_idx"))
如何使
custom_idx
成为temperature_c
的唯一坐标?
如果要将现有的2个维度“压缩”为单个维度,则需要堆叠Dataset。之后,您可以使用
assign_coords
为新索引设置坐标:
custom_idx_values = list("ABCD")
result = (
ds.stack(custom_idx=["lat", "lon"])
.drop_vars(["lon", "lat", "custom_idx"])
.assign_coords(custom_idx=custom_idx_values)
)
print(result)
<xarray.Dataset>
Dimensions: (custom_idx: 4)
Coordinates:
* custom_idx (custom_idx) <U1 'A' 'B' 'C' 'D'
Data variables:
temperature_c (custom_idx) float64 4.736 0.2115 15.41 17.19