首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中划分多边形?

如何在R中划分多边形?
EN

Stack Overflow用户
提问于 2014-03-24 21:39:01
回答 1查看 2.2K关注 0票数 5

我有亚马孙州(巴西)和其他六条最大河流(内格罗、索莱蒙斯、亚马逊、马德拉、普鲁斯和尤鲁阿)的形状。我想用河流来划分这个州,以获得河流之间的区域(马德拉-普鲁斯,普鲁斯-尤鲁阿等等)。我想得到最后的6个区域被这些河流划定,每个区域作为一个不同的多边形。我该怎么做?

我只找到了“剪辑”算法,这些算法给了我州内河流的面积,这不是我想要的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 15:12:34

在@jbaum注释之后,我使用了来自package的gDifference:

代码语言:javascript
复制
intflv <- gDifference(state,rivers)

但是由于"state“只有一个多边形,intflv变成了一个SpatialPolygons对象,只有一个多边形,由数千个子多边形组成。为了在地理信息系统软件中更好地工作,我希望它是一个拥有成千上万个多边形的物体,每个多边形都是一个子多边形。所以我做了:

代码语言:javascript
复制
l <- list()
total <- length(intflv@polygons[[1]]@Polygons)
for (i in 1:total) {
    print(paste(i,total,sep="/"))
    flush.console()
    P <- intflv@polygons[[1]]@Polygons[[i]]
    l[[length(l)+1]] <- Polygons(list(P),i)
}
sp <- SpatialPolygons(l)
d <- data.frame(IDs=1:total)
intflv1 <- SpatialPolygonsDataFrame(sp,data=d)
writeOGR(intflv1,"shp","intflv","ESRI Shapefile")

结果(只保留了最大的区域):

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22621138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档