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

R terra::nearest()输出to_id列含义及关联目标点属性方法咨询

问题原因

你遇到的to_id不符合预期是terra 1.3-4版本的已知缺陷:该版本的nearest()返回的to_id是函数内部计算时生成的临时编号,并不对应dest矢量的原始行下标,该逻辑在后续的稳定版本中已经修复。

解决方案

方案1:无需升级版本,通过返回的坐标匹配属性

nearest()返回的to_x、to_y是最近邻点的准确坐标,和dest中的点坐标完全一致,直接通过坐标匹配合并属性即可:

# 提取dest的坐标和属性表
dest_attr <- as.data.frame(dest, geom = "XY")
# 提取nearest返回结果的属性表
near_attr <- as.data.frame(near_ret)
# 按坐标匹配合并,拿到对应attr
result <- merge(near_attr, dest_attr, by.x = c("to_x", "to_y"), by.y = c("x", "y"), all.x = TRUE)

最终result$attr就是每个src点对应的最近dest点的属性值。

方案2:升级terra到最新稳定版

如果你可以升级包版本,升级后to_id就会直接对应dest的原始行下标,直接索引即可拿到属性:

# 升级后执行
dest_attr <- dest[near_ret$to_id, ]$attr

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:15:02