【问题标题】:Upsampling xarray DataArray similar to np.repeat()?上采样 xarray DataArray 类似于 np.repeat()?
【发布时间】:2021-07-16 23:56:48
【问题描述】:

我希望对大型二维 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 重新网格化工具,但它们似乎比我心目中的应用程序所必需的复杂。

【问题讨论】:

    标签: python-3.x python-xarray


    【解决方案1】:

    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]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-18
      • 2017-01-30
      • 1970-01-01
      • 2020-07-15
      • 2021-02-02
      • 2021-03-12
      • 1970-01-01
      相关资源
      最近更新 更多