XArray -为char数据创建一个维度string1



我尝试使用xarray读取和写入netCDF文件。

来自文件:

netcdf test {
dimensions:
TIME = 1 ;
variables:
double TIME(TIME) ;
char VHM0_DM(TIME) ;
data:
TIME = 25625;
VHM0_DM =
"D";
}

Python代码:

import xarray as xr
ds = xr.open_dataset("test.nc")
ds.to_netcdf("test-write.nc")

结果:

netcdf test-write {
dimensions:
TIME = 1 ;
string1 = 1 ;
variables:
double TIME(TIME) ;
TIME:_FillValue = NaN ;
char VHM0_DM(TIME, string1) ;
}

如何防止Xarray:

  • 创建新维度string1
  • 添加新的变量属性_FillValue

一个变通办法是:

ds.to_netcdf("modified.nc", encoding={'VHM0_DM': {'dtype': 'str'}}) 

来源:https://github.com/pydata/xarray/issues/2899

删除_FillValue:

ds.to_netcdf("modified.nc", encoding={'TIME': {'_FillValue': None}, 'VHM0_DM': {'dtype': 'str'}})

源码:xarray自动应用_FillValue到netCDF输出的坐标

注意它现在是None而不是False。

最新更新