如何在xarray中移除netCDF的region维度并重置为lat、lon、time维度
解决方案
你可以通过set_index加unstack的组合操作完成维度转换,全程不会丢失有效数据:
- 第一步:将
region维度的索引替换为lat、lon组成的多级索引
ds = ds.set_index(region=["lat", "lon"])
- 第二步:将绑定了坐标的
region维度展开,生成独立的lat、lon维度
ds = ds.unstack("region")
执行完成后region维度会被完全移除,数据集最终会以lat、lon、time为维度组织。
原操作失效说明
drop_dims方法的作用是直接删除指定维度,以及所有绑定在该维度上的坐标、数据变量,所以会出现所有关联内容都被清空的问题,该方法不适用于维度转换的场景。
注意事项
如果执行unstack时出现重复索引报错,说明你的region维度下存在多个相同的(lat, lon)组合,你可以根据实际需求先对重复点位做聚合处理(例如取平均值、取第一个值等),再执行上述操作。
内容的提问来源于stack exchange,提问作者pbreach
相关产品推荐
相关产品推荐

