我正在尝试合并两个Xarray数据集。数据集的分辨率不同(一个数据集的点比另一个多)。最终,我需要将这些值相乘到一个数据集中。我需要它非常快,所以通过x和y坐标的嵌套“for”循环不会是最佳的(我正在处理大数据集)。有没有什么我还不知道的干净的方法来做到这一点?非常感谢。
ymdaylpp1#
您可以使用reindex_like以最低分辨率重新索引数据数组。参见:https://xarray.pydata.org/en/stable/generated/xarray.DataArray.reindex_like.html
reindex_like
pxy2qtax2#
对于名为xrds1和xrds2的xarray Datasets覆盖相同区域,但分辨率不同,可以使用xr.Dataset.interp_like。类似于:
xrds1
xrds2
xarray Datasets
xr.Dataset.interp_like
xrds_merged = xrds2.merge(xrds1.interp_like(xrds2))
如果两个数据集有同名的变量,如果你想保留这两个数据集,你可能必须先用xr.Dataset.rename_vars()重命名其中一个。请注意,此(interp_like)需要安装scipy。
xr.Dataset.rename_vars()
interp_like
scipy
2条答案
按热度按时间ymdaylpp1#
您可以使用
reindex_like
以最低分辨率重新索引数据数组。参见:https://xarray.pydata.org/en/stable/generated/xarray.DataArray.reindex_like.htmlpxy2qtax2#
对于名为
xrds1
和xrds2
的xarray Datasets
覆盖相同区域,但分辨率不同,可以使用xr.Dataset.interp_like
。类似于:如果两个数据集有同名的变量,如果你想保留这两个数据集,你可能必须先用
xr.Dataset.rename_vars()
重命名其中一个。请注意,此(
interp_like
)需要安装scipy
。