You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将一个xarray对象中的指定变量添加到另一个xarray对象中

实现方案

你有两种简单的方式完成变量添加,两种都可以达到预期效果:

方式1:用merge方法合并

两个Dataset共享station_id坐标且对应取值完全对齐,直接传入待合并的对象列表即可,默认会自动按公共坐标匹配:

# 假设存储气象要素的上层Dataset命名为ds_met,存储站点属性的下层Dataset命名为ds_station
merged_ds = xr.merge([ds_met, ds_station[["latitude", "longitude"]]])

如果需要保留站点的所有属性,直接去掉对变量的筛选即可:

merged_ds = xr.merge([ds_met, ds_station])

方式2:直接变量赋值

因为两个Dataset的station_id维度完全对齐,也可以直接把需要的变量赋值到目标Dataset中,写法更简洁:

ds_met["latitude"] = ds_station["latitude"]
ds_met["longitude"] = ds_station["longitude"]

原理解释

  • 你之前用concat失败是因为concat的作用是沿指定维度堆叠同结构的Dataset,适合拼接多段时间、多批站点这类同字段数据,而非添加新的变量。
  • merge的核心入参是待合并的xarray对象列表,默认会自动识别所有公共坐标作为匹配键,只要公共坐标的取值、长度完全一致,就会自动把所有变量合并到同一个Dataset中。

内容的提问来源于stack exchange,提问作者Adriano Matos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:48:03