我想编辑netcdf数据集并将它们保存回相同的文件名(例如:更改数据集中的属性或变量名称)。例如:
import xarray as xr
import numpy as np
data = xr.DataArray(np.random.randn(2, 3), coords={'x': ['a', 'b']}, dims=('x', 'y'))
data.to_netcdf('test.nc')
test_open=xr.open_dataset('test.nc')
test_open=test_open.rename({'__xarray_dataarray_variable__':'var'})
test_open.to_netcdf('test.nc')
这会导致一个'权限被拒绝'的错误 "PermissionError: [Errno 13] Permission denied"
阅读https://github.com/pydata/xarray/issues/2887,看起来是因为文件已经被打开,我也尝试过:
with xr.open_dataset('test.nc') as test_open:
test_open=test_open.rename({'__xarray_dataarray_variable__':'var'})
test_open.to_netcdf('test.nc')
或者
with xr.open_dataset('test.nc') as test_open:
test_open=test_open.rename({'__xarray_dataarray_variable__':'var'})
test_open.to_netcdf('test.nc')
我经常需要处理大型数据集,因此不想将数据集加载到内存中,即使我这样做,有时也会出现“HDF5”错误。 我不完全理解这里的问题是什么,有人可以解释一下吗?似乎必须更改数据集的元数据而无需加载或重命名数据集是一个常见问题。我正在使用最新版本的xarray,0.16.1。