如何在 python 中设置 netCDF4 的块大小?

How to set chunk size of netCDF4 in python?

我可以在 netCDF4 库中看到默认分块设置,但我不知道如何更改分块大小。

from netCDF4 import Dataset    
volcgrp = Dataset('datasets/volcano.nc', 'r')
data = volcgrp.variables['abso4']
print data.shape
print data.chunking()
>(8, 96, 192)
>[1, 96, 192]

有没有人可以帮忙设置一下?

您可以使用 xarray 读取 netcdf 文件并设置块,例如

import xarray as xr

ds = xr.open_dataset('/datasets/volcano.nc', chunks={'time': 10})

有点不清楚您要做什么。 data.chunking() 告诉您存储在文件中的变量的块大小。如果你想改变这个,你需要在磁盘上重新写入文件,为每个变量设置块大小。使用 netCDF4 库,您可以使用 netCDF4.CreateVariable()chunksizes keword 参数来完成此操作。在此处找到的文档:

http://unidata.github.io/netcdf4-python/#netCDF4.Dataset.createVariable