Относительно xarray apply_ufunc

Я пытаюсь рассчитать суточную Tmax по 3-часовому глобальному набору данных. Я могу сделать это с помощью groupby, но я хотел бы выяснить, как я могу уменьшить вычислительное время, используя параллельные операции dask (например, используя apply_ufunc). Если есть хорошая документация по ufunc, пожалуйста, дайте мне знать (документация по xarray не была достаточно подробной для меня, оставила меня немного смущенным, так как у меня нет никакого предыдущего опыта работы с dask). Спасибо!!

Вот как выглядит мой код:

    TAS = xr.open_dataset(INFILE_template.format(YR, YR), chunks={'time':8})
    DAYMAX  = TAS.groupby('time.dayofyear').max(dim='time')
    DAYMAX.to_netcdf(OUTFILE_template.format(YR, YR))

Размеры ТАС указаны ниже:

    <xarray.Dataset>
    Dimensions:  (lat: 720, lon: 1440, time: 2928)
    Coordinates:
    * lon      (lon) float64 0.125 0.375 0.625 0.875 1.125 1.375 1.625 1.875 ...
    * lat      (lat) float64 -89.88 -89.62 -89.38 -89.12 -88.88 -88.62 -88.38 ...
    * time     (time) datetime64[ns] 2008-01-01 2008-01-01T03:00:00 ...
    Data variables:
    tas      (time, lat, lon) float32 dask.array<shape=(2928, 720, 1440),   

1 ответ

Если вы уже можете написать свой анализ с groupby() и другие методы xarray, все они уже распараллелены с dask. apply_ufunc облегчает перенос новой функциональности для поддержки xarray и dask, но все встроенные подпрограммы в xarray уже используют apply_ufunc или что-то подобное внутри для поддержки Dask.

В качестве примечания: если вы любезно уточните, что вы нашли запутанным или отсутствующим в документах xarray, мы всегда стремимся улучшить их!

Другие вопросы по тегам