xarray: как применить функцию scipy к большому набору данных netcdf - PullRequest
0 голосов
/ 30 апреля 2018

У меня большой файл netcdf с несколькими переменными. Мне нужно сделать дискретную интеграцию по размеру с переменной, скажем, температурой формы (80 100 300 000) с размерами (время, глубина, узлы). Итак, я попытался разделить большой набор данных на куски с помощью xarray, а затем попытался применить функцию scipy.integrate.simps, но не получилось.

import xarray as xr
import scipy.integrate as sci
ds = xr.open_dataset('./temperature.nc',chunks={'time':5, 'nodes':1000})
temp = ds.temperature

Пожалуйста, помогите мне с применением функции simps ко 2-му измерению чанкованной переменной, а затем сохраните чанки в файл netcdf вместо выгрузки целых данных в ОЗУ. Я хотел бы сделать что-то вроде этого

temp.apply(sci.simps,{'dx':5}).to_netcdf('./temperature_integrated.nc')

1 Ответ

0 голосов
/ 01 мая 2018

Я думаю, что вы ищете xarray.apply_ufunc

Возможно, что-то вроде следующего будет работать для вас (не проверено):

import xarray as xr
xr.apply_ufunc(scipy.integrate, ds.temperature)
...