所以我有3個netcdf4文件(每個大約90 MB),我想使用包xarray連接。每個文件有一個以0.5度分辨率(lat,lon)表示365天(時間)的變量(dis)。我的目標是連接這三個文件,以便我們有一個1095天(3年)的時間序列。Python xarray.concat然後xarray.to_netcdf生成巨大的新文件大小
每個文件(2007年以來,2008年,2009年)有: 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 ...
我讓他們進口和使用concat模塊來連接,我想成功了。在這種情況下,模塊讀出從filestrF
3個的NetCDF文件名flist1 = [1,2,3]
ds_new = xr.concat([xr.open_dataset(filestrF[0,1,1,f]) for f in flist1],dim='time')
新的數據集的新細節都顯示現在是:
Dimensions: (lat: 360, lon: 720, time: 1095)
似乎沒什麼問題。但是,當我將這個數據集寫回到netcdf時,文件大小現在已經爆炸,1年的數據看起來相當於700 MB。
ds_new.to_netcdf('saved_on_disk1.nc')
- 對於2頁連接起來的文件,〜1.5 GB
- 對於3 ,, ,, 2.2 GB
- 對於4 ,, ,, 2.9 GB
我本來期望3 x 90 MB = 270 MB - 因爲我們在一個維度(時間)上縮放(3x)。變量dis和其他維度lat和lon的大小保持不變。
任何想法,請爲巨大的高檔尺寸?我已經測試了在沒有連接的情況下讀入和寫回文件,並且成功地完成了這個操作,而不增加大小。
非常感謝 - 這是現貨。我在文檔中錯過了這一點,我不得不說,它非常出色。 – dreab