【发布时间】:2012-09-21 17:04:09
【问题描述】:
我正在 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)
我真正想要的是多边形的外边界,里面没有别的东西。有什么想法吗?
【问题讨论】:
-
我从你的代码中得到这个错误:
A new CRS was assigned to an object with an existing CRS: +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs +towgs84=0,0,0 without reprojecting. For reprojection, use function spTransform in package rgdal -
这只是一个警告,因为我重新定义了对象上的投影,以便它可以很好地与 gBuffer 函数配合使用。你可以忽略它。
-
如果我错了,请纠正我,但你的问题会归结为计算多边形顶点的最小凸包吗?
-
凸包方法已经越过我的脑海,但这确实概括了多边形很多。在这种情况下,它工作得很好,但是在某些多边形形状中,MCP 会真正改变最终结果。所以,你是对的!但我希望有另一种方法。