Xarray группа по нескольким прогонам и времени - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть набор данных xarray, который выглядит следующим образом:

<xarray.Dataset>
Dimensions:          (lat: 100, lon: 130, model: 7, month: 240)
Coordinates:
    lev              float64 1.0
  * month            (month) datetime64[ns] 2040-01-01 2040-02-01 ... 2059-12-01
  * lon              (lon) float32 -99.375 -99.291664 ... -88.708336 -88.625
  * lat              (lat) float32 49.78038 49.696426 ... 41.552795 41.46884
  * model            (model) object 'bcc-csm1-1' 'CCSM4' ... 'MRI-CGCM3'
Data variables:
    month_mean_snow  (month, lat, lon) float32 ...
    month_mean_tmin  (model, month, lat, lon) float32 nan nan ... -6.0107846
    month_mean_tmax  (model, month, lat, lon) float32 nan nan ... -0.30793613
    month_mean_prec  (model, month, lat, lon) float32 nan nan ... 0.5480785
    month_mean_relh  (model, month, lat, lon) float32 nan ... 69.789246
    month_mean_wspd  (model, month, lat, lon) float32 nan 4.9480243 ... 9.585804
    month_mean_rads  (model, month, lat, lon) float32 nan 21.520756 ... 34.00794

Вариант использования: у меня есть 7 различных климатических прогонов для данных, а затем я пересчитал их для ежемесячного масштаба времени.

Вопрос: Как сгруппировать модели и месяцы одновременно?

Ожидаемый результат: Размеры (широта: 100, долгота: 130, месяц = ​​12)

Что я получу при запуске:

res.groupby('month.month', 'model').mean('month', 'model')

- размеры (широта: 100, долгота: 130, модель: 7, месяц: 12).

Нужно ли сжимать или каким-то образом расширять модель / месяц перед групповым, а затем просто делать это за месяц?

1 Ответ

2 голосов
/ 17 февраля 2020

Попробуйте это:

res.groupby('month.month').mean(dim=['model','month'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...