gpt4 book ai didi

r - 在 R 中溶解多边形中的孔

转载 作者:行者123 更新时间:2023-12-03 22:21:06 27 4
gpt4 key购买 nike

我正在 R 中运行一些地理处理任务,其中我试图创建一些多边形来裁剪环境信息栅格。我正在缓冲一些复杂的多边形,这留下了我想摆脱的小子几何。在 ArcGIS 中,我认为这将涉及将我的多边形从多部分转换为单部分(或沿着这些线的东西)然后溶解,但我不知道如何在 R 中执行此操作。

这是一个说明问题的示例:

require(maptools)
require(rgeos)

data(wrld_simpl)
wrld_simpl[which(wrld_simpl@data$NAME=='Greece'),]->greece
proj4string(greece)<-CRS('+proj=lonlat +datum=WGS84')
gBuffer(greece,width=0.5)->buf
plot(buf)

我真正想要的是多边形的外边界,里面没有其他东西。有任何想法吗?

最佳答案

如果您只想获得形成缓冲区边界的一个环,则:

plot(SpatialPolygons(list(Polygons(list(buf@polygons[[1]]@Polygons[[1]]),ID=1))),lwd=2)

是针对您的案例进行(并绘制)的一种非常临时的方式。

你真正想要的是用 ringDir=1 得到所有的戒指,因为其余的将是孔。您需要所有环,因为您的缓冲区可能仍然是两个断开连接的岛。
outerRings = Filter(function(f){f@ringDir==1},buf@polygons[[1]]@Polygons)
outerBounds = SpatialPolygons(list(Polygons(outerRings,ID=1)))
plot(outerBounds)

可能会成功...试试 width=0.1你会看到它适用于多个岛屿,但仍然去除了一个洞。

关于r - 在 R 中溶解多边形中的孔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12663263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com