在R中合并相邻地区(汇总空间数据)?

8

我猜我需要重新表述我之前糟糕措辞的问题(已删除)。这里再试一次。我想以一种方式加入相邻区域,使它们的共同边界消失,只能看到它们的外部轮廓。

这里是一个可重复的示例:

require(shapefiles)
require(sp)

xx <- readShapeSpatial(system.file("shapes/sids.shp", package="maptools")[1],
                   IDvar="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))

# show all the subregions
plot(xx)

这里输入图片描述

现在我们只考虑区域3和5。

plot(xx[c(3,5),])

我该如何仅聚合这些地区。实际上,我想做的就像拥有一个显示所有国家的整个大陆地图,并生成显示北美洲和南美洲的地图。

对我来说,这似乎是一个相当常见的任务,但我迄今为止找不到正确的函数来完成它。我是错过了某个函数还是可以手动完成呢?

enter image description here


3
使用maptools包中的unionSpatialPolygons()函数:http://gis.stackexchange.com/questions/21360/merging-2-polygon-adjacent-to-each-other-using-r。 - baha-kev
我知道你的问题是关于R语言的,但是最好的空间操作库是postgres/postgis。你也可以在postgres中编写R存储过程,参见http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgresql_plr_tut01,这意味着你可以获得postgis的空间索引和函数以及R的统计数据。此外,postgres还附带了一个shp到postgres的导入功能。 - John Powell
1个回答

10

rgeos包提供了许多出色的工具来处理Spatial*数据,可在此情况下使用。

例如:

library(rgeos)
regionOfInterest <- gUnion(xx[3,], xx[5,])

这种方法也能产生相同的结果,并且对于多边形可能更有用:

regionOfInterest <- gUnionCascaded(xx[c(3,5), ])
< p > plot(regionOfInterest) 的结果:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接