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

如何在R的terra包中按属性值对重叠多边形求和?

用terra实现多边形重叠区域属性值求和

我有一个包含大量多边形的terra SpatVector对象,需要对多边形做求和处理,让新多边形集中的重叠区域属性值等于所有重叠多边形对应属性值的总和。之前试过用aggregate()函数,但没得到预期结果;虽然可以通过栅格化多边形再求和实现,但希望找到更简便的矢量运算方案。

可复现示例代码

library(terra)
#> terra 1.8.15

v <- vect(system.file("ex/lux.shp", package="terra"))

# 创建两个与v重叠的圆形多边形
circles <- vect(rbind(c(6.05, 49.6), c(6.1, 49.8)), crs = "epsg:4326") |>
  buffer(10e3)

circles$ID_1 <- 4:5

# 合并为单个矢量对象
v2 <- rbind(v, circles)

plot(v2, "ID_1", alpha = 0.8)

初始多边形可视化

尝试aggregate()的问题

# 尝试按ID_1求和,但未得到预期结果
# 底部圆形区域的属性值应为3+4=7,但聚合后仅保留了ID_1=3的值
v2_agg <- aggregate(v2, by = "ID_1", fun = "sum") 
  
plot(v2_agg, "ID_1", alpha = 0.8)

聚合后的多边形可视化

Created on 2025-02-11 with reprex v2.1.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:20:16