按小时计算大型数据集的时间均值

时间:2018-08-16 20:12:47

标签: python dask python-xarray

我试图按小时计算相对较大数据集的时间均值。你能告诉我如何使这个过程更快吗?

下面是xr.dataset“ Tair”的尺寸

<xarray.Dataset>
Dimensions:       (lat: 2600, lon: 2600, time: 7200)
Coordinates:
* lon           (lon) float64 -64.97 -64.92 -64.88 -64.82 -64.77 -64.72 ...
* lat           (lat) float64 -64.97 -64.92 -64.88 -64.82 -64.77 -64.72 ...
* time          (time) datetime64[ns] 1991-01-01 1991-01-01T01:00:00 ...
Data variables:
grid_mapping  (time) |S1 b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' b'' ...
SATID         (time) float64 dask.array<shape=(7200,), chunksize=(24,)>
LST_PMW       (time, lat, lon) float32 dask.array<shape=(7200, 2600, 2600), chunksize=(24, 2600, 2600)>
LSTERROR_PMW  (time, lat, lon) float32 dask.array<shape=(7200, 2600, 2600), chunksize=(24, 2600, 2600)>
LST_PMW_NUMO  (time, lat, lon) float32 dask.array<shape=(7200, 2600, 2600), chunksize=(24, 2600, 2600)>

这就是我要按小时获取时间平均值的方法。

MEAN_LST = Tair.LST_PMW.groupby('time.hour').mean(dim='time')
MEAN_LST.to_netcdf('Mean_T_air.nc')

我试图将数据集Tair重新分组为(7200,10,10)以及(1,200,200),但是它们都没有帮助。由于均值是沿着时间计算的,因此我认为将整个时间维保持为一个块是有意义的,如果是这样,那么更好的解决方案是使用(7200,1,1)块吗?非常感谢!

0 个答案:

没有答案