平均一个块的维度(xarray)

Average a dimension of a chunk (xarray)

让X成为我存储在多个文件中的变量。在每个文件中,X 的维度为(时间、深度、纬度、经度)。我想做一个年平均,每个文件存储一年的数据。

为了高效,我用X = xarray.open_mfdataset('path'+'year_*_X.nc')打开数据。

我不想对所有时间轴进行平均,即:X.mean(dim='time')

我观察到 X 存储 'chunks' 因为它给出了 'chunksize',所以也许它可以用来平均每个块的时间维度?

In [1] : X

Out[1] : <xarray.DataArray 'ty_trans_submeso' (time: 240, st_ocean: 50, yu_ocean: 200, xt_ocean: 360)> dask.array<shape=(240, 50, 200, 360), dtype=float32, chunksize=(12, 50, 200, 360)>

只要 time 是 datetime64 对象,

X.groupby('time.year').mean(dim='time') 就可以解决问题。