Как зарегистрировать 3D-массив данных с 2D-координатами x / y и 1D? - PullRequest
3 голосов
/ 24 мая 2019

Я хочу перерисовать куб данных с измерениями (t, y, x), где t равно 1d, а x/y - это 2d, в другой куб, используя t_new/y_new/x_new all 1d.

Проблема заключается в определении DataArrayс 2d координатами должны быть определены как логические (x и y), так и физические (xc и yc) координаты.Затем, при применении DataArray.interp(x=x_new, y=y_new), x_new/y_new обрабатываются как логические координаты, а не физические координаты!

Поэтому мой вопрос: как мне переопределить / интерполировать это DataArray (определено ниже), используя 1d физические координаты, который должен работать на xc/yc (2d), а не на x/y?

Вот что я делаю:

import xarray as xr

da = xr.DataArray(cube, dims=['t', 'y', 'x'],
                  coords={'t': time,           
                          'xc': (['y', 'x'], X),  
                          'yc': (['y', 'x'], Y)})

da_interp = da.interp(x=x_new, y=y_new).interp(t=t_new)

Обратите внимание, что координата t_new обрабатываетсяправильно как физическая координата ... Я подозреваю, потому что он был определен как массив 1d.

В сумме x_new и y_new должны отображаться на xc и yc при использовании DataArray.interp(x=x_new, y=y_new) ... Если эта интерполяция должна обрабатываться по-другому, я не видел нигде упомянутого!

...