将新坐标分配给Xarray.Dataset数据变量并删除旧坐标

问题描述 投票:0回答:1

我有以下数据集

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
唯一
坐标?

python-xarray
1个回答
0
投票

如果要将现有的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
© www.soinside.com 2019 - 2024. All rights reserved.