上采样 xarray DataArray 类似于 np.repeat()?
Upsampling xarray DataArray similar to np.repeat()?
我希望对大型二维 DataArray(下图)中的值进行上采样。是否有类似于 np.repeat() 的 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]])
我希望对大型二维 DataArray(下图)中的值进行上采样。是否有类似于 np.repeat() 的 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]])