2016-10-06 5 views
1

을 netCDF의 수 xarray를 작성하려고 할 때 나는 netCDF의 파일에 xarray 오브젝트 쓰기를 시도하는 다음과 같은 오류 있어요 :"에 ValueError : chunksize 영역은 치수 크기를 초과 할 수 없습니다"

"ValueError: chunksize cannot exceed dimension size" 

이 데이터는 내 기억에 너무 큰를 그리고 chunked해야합니다.

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 (전 미) 버전 0.8.2
DASK 버전 그것은 기입 명령 엔진의 문제 0.10.1

+0

이것은 xarray 버그와 같습니다. 이를 재생산하는 자체 포함 된 예제를 제공 할 수 있다면이를 추적 할 수 있어야합니다. GitHub : https://github.com/pydata/xarray/issues/1225에서 후속 조치를 취하십시오. – shoyer

답변

2

이었다 임. 청크를 사용하는 경우 netcdf4 (기본값)에서 scipy로 엔진을 변경해야합니다!

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

netcdf4 패키지는 이러한 파일을 기록 할 수 없습니다.