xarray实现类似np.repeat的二维DataArray双维度逐值上采样方法
xarray 块级重复上采样的原生实现
xarray 提供了和np.repeat()功能完全对等的原生方法DataArray.repeat(),支持按维度独立设置重复次数,完全匹配你的轻量化操作需求,不需要依赖xesmf这类重型重网格工具。
核心特性
- 直接以「维度名=重复次数」的形式传参即可,不需要手动转换numpy数组,自动保留原DataArray的元数据、坐标关联
- 底层为向量化实现,对大尺寸二维数组的操作性能和直接调用
np.repeat完全一致,无额外计算开销 - 输出的数组块结构和
np.repeat完全对齐,不会引入插值、平滑等额外数值修改
测试样例的实际调用
基于你给出的测试代码,仅需一行代码即可得到期望的输出结果:
# 沿x、y维度各重复2次,实现元素按块复制的上采样 upsampled_df = df.repeat(x=2, y=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]])
注意事项
repeat操作后生成的默认坐标是原坐标值的重复拼接,比如原x坐标为[0,1,2],重复2次后默认x坐标为[0,0,1,1,2,2];如果场景需要匹配物理空间的等间隔坐标(比如原经纬度间隔1°,放大后间隔0.5°),可以在repeat完成后手动替换对应维度的coords,不需要改动核心的数组重复逻辑。- 整个流程不需要额外配置环境、计算重网格权重,单步操作即可完成,相比xesmf的操作流程大幅简化,完全适配轻量化使用场景。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

