我一直在写出一些具有多个变量的 xarray.Datasets。目前,为了使大小易于管理,我指定了编码,例如 zlib,但需要逐个变量应用于变量(dataArray)。
将相同的编码参数应用于所有变量的好方法是什么?例如
<xarray.Dataset>
Dimensions: (lat: 1440, lon: 2880)
Coordinates:
* lat (lat) float64 -90.0 -89.88 -89.75 -89.62 -89.5 -89.38 -89.25 ...
* lon (lon) float64 -180.0 -179.9 -179.8 -179.6 -179.5 -179.4 -179.2 ...
Data variables:
a1 (lat, lon) float64 nan nan nan nan nan nan nan nan 0.0 ...
b (lat, lon) float64 nan nan nan nan nan nan 0.0 0.0 0.0 ...
c (lat, lon) float64 nan nan nan nan nan nan nan nan 0.0 ...
d (lat, lon) float64 nan nan nan nan nan nan nan nan 0.0 ...
e (lat, lon) float64 nan nan nan nan nan nan nan nan 0.0 ...
在写出这个数据集时,我们将使用:
ds.to_netcdf(filename, encoding={'a1':{'zlib': True,'complevel': 5},'b':{'zlib': True,'complevel': 5},'c':{'zlib': True,'complevel': 5},'d':{'zlib': True,'complevel': 5},'e':{'zlib': True,'complevel': 5}})
对于更多变量,这会变得很冗长。一种选择是以顺序追加的方式将每个数据数组写入 netcdf,但是当数据集准备就绪时,这似乎也很复杂。