如何识别并移除xarray中的key以写入NetCDF文件?
解决xarray写入NetCDF时的grid_mapping属性冲突问题
问题原因
precipitation变量的**属性(attrs)和编码(encoding)**中同时存在grid_mapping字段,xarray在序列化NetCDF时会将grid_mapping视为编码控制字段,变量attrs中的同名键会触发冲突报错。这通常是rioxarray补全地理信息时的遗留问题。
解决方案
直接移除变量attrs中的grid_mapping键,保留encoding中的设置即可:
# 移除precipitation变量属性里的grid_mapping del ds_subset.precipitation.attrs["grid_mapping"] # 执行保存 ds_subset.to_netcdf('test.nc')
补充说明
- 关于
xr.save_mfdataset的报错:该函数用于批量保存多个Dataset到多文件路径,传入单个Dataset会触发模式冲突,不适合你的场景,建议继续使用to_netcdf。 - 若保存后需要确认地理信息完整性,可重新读取文件并检查
transverse_mercator坐标变量和precipitation的编码设置。
内容的提问来源于stack exchange,提问作者diedro
相关产品推荐
相关产品推荐

