2016-10-06 9 views
1

をnetCDFのためにxarrayを書き込もうとしたときのnetCDFファイルにxarrayオブジェクトを書き込もうとしたとき、私は、次のエラーを得た:「とValueError:チャンクサイズは寸法サイズを超えることはできませんが、」

"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") 

だから、基本的に、私はコンテンツを操作し、書き換え:次のように
ルーチンは基本的にあります。それにもかかわらず、チャンクは悪いようです。 1つの配列にrechunkingするのと同じです。私はどちらもdsを書き換えることができません。 エラーを追跡したり解決するにはどうすればよいですか?

netCDF4バージョンは1.2.4
xarray(旧X線)版である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パッケージは、このようなファイルを書き込むことはできません。

関連する問題