xarray годовая группировка по годам

Я вычисляю среднегодовые значения своих данных с помощью:

sst_ANN = ds['sst'].groupby(ds['time.year']).mean(dim='time')

что, безусловно, элегантно. Теперь я хочу сделать то же самое, за исключением того, что вычислить среднегодовое значение с июня по май в следующем году, а не в календарном году. Будет ли для этого аналогичный однострочный?


person Leo van Kampenhout    schedule 19.03.2018    source источник
comment
Вот как это можно сделать в Pandas: stackoverflow.com/questions/26341272/   -  person Leo van Kampenhout    schedule 19.03.2018
comment
Вот как далеко я продвинулся: my_time = pd.to_datetime(ds_sst['time'].values) ds_sst.groupby(pd.DatetimeIndex( ds_sst['time'].values ).shift(-5,freq='m').year) Дает: TypeError: 'group' must be an xarray.DataArray or the name of an xarray variable or dimension   -  person Leo van Kampenhout    schedule 19.03.2018


Ответы (1)


Вероятно, вам следует использовать метод resample xarray вместо groupby (в этом случае они похожи, но с помощью resample немного легче манипулировать, чтобы делать то, что вы хотите).

Для xarray 0.10.0 и новее это будет выглядеть так:

sst_ANN = ds['sst'].resample(time='AS-JUN').mean('time')

Для более старых версий xarray это выглядело бы так:

sst_ANN = ds['sst'].resample(freq='AS-JUN', dim='time', how='mean')

В обоих случаях мы используем "привязанное смещение". AS-JUN переводится как «годовой, начало периода, начало в июне».

person jhamman    schedule 19.03.2018