Повышение дискретизации набора данных xarray вызывает ошибку памяти - PullRequest
0 голосов
/ 26 февраля 2020

Я читаю в наборе данных Zarr изображений, подобных Landsat. Dimensions: (time: 19, x: 9952, y: 17225) и одна переменная данных: etrf (time, y, x) float64 dask.array<chunksize=(19, 1500, 1500), meta=np.ndarray>. Я interpolate_na линейно удаляю nan, а затем я делаю выборку данных на ежедневный временной интервал, используя линейную интерполяцию, которая расширяет измерение времени до 226. Использование этого окончательного набора данных всегда приводит к ошибке памяти: MemoryError: Unable to allocate array with shape (226, 2250000) and data type float64

Эта ошибка появляется, если я суммирую данные или просто выбираю один день.

Я попытался выполнить повторную чанковку, чтобы после повторной выборки фрагменты были (226, 250, 250), но получили ту же ошибку (другую форму). Я также попробовал каждый из планировщиков, и все они потерпели неудачу.

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

Как я мог go о выполнении этой задачи?

Вот схема кода:

ds = xr.open_zarr(r'...')
ds_filled = ds.interpolate_na(dim='time', use_coordinate=True)
ds_daily = ds_filled.resample(time='1D').interpolate('linear')

data_daily.sel(time='2017-05-24').compute()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...