这是一个实现Alpha Hull模型的R函数。输出是一个sp多边形对象。请参见标题中的示例。它需要sp,alphahull和maptools软件包。
**更新(2018年1月15日)对alphahull软件包产生的结果对象进行了许多更改。因此,我需要重写该函数。我在spatialEco包中添加了凸凸函数。但是,由于alphahull软件包中的许可限制,此功能仅在GitHub的开发版本中可用。可以使用以下方式安装开发版本:
library(devtools)
install_github("jeffreyevans/spatialEco")
这是函数用法的一个例子
library(sp)
library(spatialEco)
data(meuse)
coordinates(meuse) = ~x+y
a <- convexHull(meuse, alpha=100000)
plot(a)
points(meuse, pch=19)
将生成的SpatialLinesDataFrame转换为SpatialPolygonsDataFrame
library(sf)
a <- sf::st_as_sf(a)
a <- sf::st_polygonize(a)
class( a <- as(a, "Spatial") )
plot(a)
测试多个Alpha值
par(mfcol=c(2,2))
for (a in c(500, 1500, 5000, 100000)) {
ch <- convexHull(meuse, alpha = a)
plot(ch)
points(meuse, pch=19)
title( paste0("alpha=", a))
}