Агрегированные данные netCDF, чтобы означать, мин, макс - PullRequest
0 голосов
/ 16 марта 2020

У меня есть несколько netCDF файлов, которые можно загрузить здесь , созданных Coperinucs . Есть четыре файла, каждый файл около 1 ГБ.

Я читаю файл примерно так

import xarray as xr

dset = xr.open_dataset("~/.../ERA5land1.nc")

Что дает мне

<xarray.Dataset>
Dimensions:    (latitude: 61, longitude: 101, time: 87647)
Coordinates:
  * latitude   (latitude) float32 31.0 30.9 30.8 30.7 ... 25.3 25.2 25.1 25.0
  * longitude  (longitude) float32 79.0 79.1 79.2 79.3 ... 88.7 88.8 88.9 89.0
  * time       (time) datetime64[ns] 1981-01-01T01:00:00 ... 1990-12-31T23:00:00
Data variables:
    t2m        (time, latitude, longitude) float32 dask.array<shape=(87647, 61, 101), chunksize=(10, 61, 101)>
Attributes:
    Conventions:  CF-1.6
    history:      2020-03-10 16:47:13 GMT by grib_to_netcdf-2.16.0: /opt/ecmw...

Расчет среднего должен быть прямым вперед в соответствии с документацией

    mean = dset.mean()

, что приводит к зависанию компьютера и, наконец, к sh. Попытка chunk данные не работает ни.

    dset = xr.open_dataset("~/.../ERA5land1.nc", chunks = {'time': 10})
    mean = dset.mean()

Это не кра sh, но я получаю это

<xarray.Dataset>
Dimensions:  ()
Data variables:
     t2m      float32 dask.array<shape=(), chunksize=()>

Интересно, как я могу вычислить min, max и mean для каждой ячейки сетки и сохраните ее в новом файле netCDF с теми же характеристиками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...