尝试将xarray写入netcdf

时间:2016-10-06 15:27:28

标签: python python-xarray netcdf4

尝试将xarray对象写入netcdf文件时出现以下错误:

"ValueError: chunksize cannot exceed dimension size"  

数据对我的记忆来说太大了,需要分块 例程基本如下:

import xarray as xr  
ds=xr.open_dataset("somefile.nc",chunks={'lat':72,'lon':144}  
myds=ds.copy()
#ds is 335 (time) on 720 on 1440 and has variable var  
def some_function(x):
  return x*2
myds['newvar']=xr.DataArray(np.apply_along_axis(some_function,0,ds['var']))  
myds.drop('var')  
myds.to_netcdf("somenewfile.nc")

所以基本上,我只是操纵内容并重写。然而,块似乎很糟糕。与重新组合到一个阵列相同。我既不能重写ds。 知道如何追踪错误或解决这个问题吗?

netCDF4版本为1.2.4
xarray(前xray)版本是0.8.2
dask版本是0.10.1

1 个答案:

答案 0 :(得分:3)

这是写入命令中的引擎问题。 如果你正在使用块,你需要将引擎从netcdf4(默认)更改为scipy!

myds.to_netcdf("somenewfile.nc",engine='scipy')

netcdf4包无法写入此类文件。