В xarray легко получить месячные средства:
ds.groupby('time.month').mean(dim='time')
и почасовые средства:
ds.groupby('time.hour').mean(dim='time')
, ноЯ не могу найти эффективный способ получения почасовой оплаты за каждый месяц ... вы можете создать свой собственный индекс, объединяющий месяц и час, но он очень медленный (примерно в 12 раз дольше, чем группировка по часам из-за сумерек)..)
Я хочу что-то вроде этого:
<xarray.Dataset>
Dimensions: (hour: 24, latitude: 721, longitude: 1440, month: 12)
Coordinates:
* longitude (longitude) float32 0.0 0.25 0.5 0.75 ... 359.25 359.5 359.75
* latitude (latitude) float32 90.0 89.75 89.5 89.25 ... -89.5 -89.75 -90.0
* month (month) int64 1 2 3 4 5 6 7 8 9 10 11 12
* hour (hour) int64 0 1 2 3 4 5 6 7 8 9 ... 15 16 17 18 19 20 21 22 23
Data variables:
value (hour, month, latitude, longitude) float32 dask.array<shape=(24, 12, 721, 1440), chunksize=(1, 1, 721, 1440)>
возможно ли это?
РЕДАКТИРОВАТЬ: Возможно установка значений на первый день каждого месяца, например 2014-01-01 01:00, 2014-02-01 02:00 и т. Д. Возможно?