【发布时间】:2021-11-19 16:52:28
【问题描述】:
我尝试通过运行来保存xr.dataset,例如:
ds.to_netcdf('save/directory/filename.nc')
得到一个错误:
Variable 'lat' has conflicting _FillValue (nan) and missing_value (-9999.0). Cannot encode data.
我该如何解决这个错误?
【问题讨论】:
标签: python-xarray
我尝试通过运行来保存xr.dataset,例如:
ds.to_netcdf('save/directory/filename.nc')
得到一个错误:
Variable 'lat' has conflicting _FillValue (nan) and missing_value (-9999.0). Cannot encode data.
我该如何解决这个错误?
【问题讨论】:
标签: python-xarray
那些可能是属性。您可以使用ds.lat.attrs 查看变量的属性。
您可以像字典一样通过访问属性的元素来直接修改属性:
ds.lat.attrs['missing_value'] = np.nan
或删除其中一个
del ds.lat.attrs['_FillValue']
如果您的 data 实际上同时具有 NaN 和 -9999 作为填充值,并且您只想使用一个,您也可以屏蔽数据。我猜 -9999 被选择用于整数数据?
对于整数数据,NaN 不是一个选项,所以我们将坚持使用 -9999,并以 32 位整数为例:
ds['lat'] = ds['lat'].where(pd.notnull(ds['lat']), -9999).astype('int32')
对于浮动,我们可以坚持使用np.nan:
ds['lat'] = ds['lat'].where(ds['lat'] != -9999)
【讨论】: