したがって、パッケージxarrayを使用して連結したい3つのnetcdf4ファイル(それぞれ約90 MB)があります。各ファイルには、365日間(時間)0.5度分解能(緯度、経度)で表される1つの変数(dis)があります。私の目的は、1095日(3年)の時系列を持つように3つのファイルを連結することです。 (年2007年、2008年、2009年)Python xarray.concat次にxarray.to_netcdfが新しいファイルサイズを大きく生成する
各ファイルはあります 1変数:DIS 3座標:時間、緯度、経度...など
<xarray.Dataset>
Dimensions: (lat: 360, lon: 720, time: 365)
Coordinates:
* lon (lon) float32 -179.75 -179.25 -178.75 -178.25 -177.75 -177.25 ...
* lat (lat) float32 89.75 89.25 88.75 88.25 87.75 87.25 86.75 86.25 ...
* time (time) datetime64[ns] 2007-01-01 2007-01-02 2007-01-03 ...
Data variables:
dis (time, lat, lon) float64 nan nan nan nan nan nan nan nan nan ...
などを、私はそれらをインポートして使用し得ます連結するための連結モジュール、私は正常に思える。この場合、モジュールは、新しいデータセットの
flist1 = [1,2,3]
ds_new = xr.concat([xr.open_dataset(filestrF[0,1,1,f]) for f in flist1],dim='time')
新しい細部が今であることが示されfilestrF
から3つのNetCDFファイルのファイル名を読み出し:Dimensions: (lat: 360, lon: 720, time: 1095)
は、私には罰金です。しかし、このデータセットをnetcdfに書き戻すと、ファイルサイズは今や爆発的になり、1年間のデータは一見700 MBに相当します。
2つの連結ファイル、〜1.5ギガバイト 3についてはds_new.to_netcdf('saved_on_disk1.nc')
- ,, ,, 4については2.2ギガバイト
- ,, ,, 2.9ギガバイト
私は3を期待しているだろうx 90 MB = 270 MB - 1次元(時間)でスケーリング(3倍)しているためです。変数、dis、および他の次元latおよびlonは、サイズが一定のままです。
巨大な高級感はありますか?私は連結のないファイルの読み込みと書き戻しをテストし、サイズを増やすことなく成功させました。
ありがとうございます。これは大変ありがとうございます。私は言わざるを得ないドキュメンテーションの中で、すばらしいことを見逃していました。 – dreab