我想将 xarray.dataset 保存为 .zarr 文件,但我无法将我的块配置为统一的并且它不会保存。
我努力了:
使用 xarray.open_mfdataset 时更改块大小 -> 它仍然使用不起作用的自动块。
使用 dataset.chunk(n) 时更改块大小 -> 打开数据集时仍指自动块。
代码:
import xarray as xr
import glob
import zarr
local_dir = "/directory/"
data_dir = local_dir + 'folder/'
files = glob.glob(data_dir + '*.nc')
n = 1320123
data_files = xr.open_mfdataset(files,concat_dim='TIME',chunks={'TIME': n}) # does not specify chunks, uses automatic chunks
data_files.chunk(n) # try modifying here, still uses automatic chunks
data_files.to_zarr(store=data_dir + 'test.zarr',mode='w') # I get an error about non-uniform chunks - see below
ValueError:Zarr 需要统一的块大小,最终块除外。可变 dask 块 ((1143410, 512447, 1170473, 281220, 852819),) 不兼容。考虑使用
chunk()
.
我希望 .zarr 文件与新块一起保存,但会引用原始自动块大小。