如何使用2D x / y和1D时间坐标重新注册3D DataArray?

时间:2019-05-23 21:51:19

标签: python python-xarray

我想重新定义一个维度为(t, y, x)的数据多维数据集,其中t为1d,x/y为2d,然后使用t_new/y_new/x_new全部为1d。

问题是在定义具有二维坐标的DataArray时,逻辑(xy)和物理(xcyc)坐标都必须是定义。然后,在应用DataArray.interp(x=x_new, y=y_new)时,x_new/y_new被视为逻辑坐标而不是物理坐标!

所以我的问题是:如何使用1d物理坐标对DataArray(如下定义)进行重新插补/插值,该物理坐标应在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坐标被正确地视为物理坐标...我怀疑是因为它被定义为一维数组。

总而言之,在使用x_new时,应将y_newxc映射到ycDataArray.interp(x=x_new, y=y_new)上。以不同的方式,我从未见过任何提到的地方!

0 个答案:

没有答案