上采样xarray DataArray类似于np.reeat()



我希望在一个大的二维DataArray中向上采样值(如下(。有没有类似于np.rerepeat((的xarray工具可以应用于每个维度(x和y(?在下面的例子中,我想复制x和y中的每个数组条目。

import xarray as xr
import numpy as np
x = np.arange(3)
y = np.arange(3)
x_mesh,y_mesh = np.meshgrid(x, y)
arr = x_mesh*y_mesh
df = xr.DataArray(arr, coords={'x':x, 'y':y}, dims=['x','y'])

所需输入:

array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4]])

期望输出:

array([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 2, 2],
[0, 0, 1, 1, 2, 2],
[0, 0, 2, 2, 4, 4],
[0, 0, 2, 2, 4, 4]])

我知道xesmf重新排序工具,但它们似乎比我心目中的应用程序所需的更复杂。

np.kron有一个简单的解决方案。

>>> arr
array([[0, 0, 0],
[0, 1, 2],
[0, 2, 4]])
>>> np.int_(np.kron(arr, np.ones((2,2))))
array([[0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 2, 2],
[0, 0, 1, 1, 2, 2],
[0, 0, 2, 2, 4, 4],
[0, 0, 2, 2, 4, 4]])

最新更新