平均一个块的维度(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')
就可以解决问题。
让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')
就可以解决问题。