python数组拼接concat_Python xarray.concat然后xarray.to_netcdf生成巨大的新文件大小

所以我有3个netcdf4文件(每个约90 MB),我想使用包xarray连接.每个文件有一个变量(dis),以0.5度分辨率(lat,lon)表示365天(时间).我的目标是连接三个文件,使得我们的时间序列为1095天(3年).

每个文件(2007年,2008年,2009年)都有:

1变量:dis

3坐标:时间,纬度,经度……就这样

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). lat和lon的变量,dis和其他尺寸在尺寸上保持不变.

任何想法请大小的巨大高档?我已经测试了读取和写回文件而没有连接,并且成功完成此操作而不增加大小.

你可能感兴趣的:(python数组拼接concat_Python xarray.concat然后xarray.to_netcdf生成巨大的新文件大小)