【发布时间】:2014-06-10 14:02:48
【问题描述】:
我的问题很简单。有没有一种自动的方式来为你的数据排序,以便它产生“干净”的多边形?我有生成环的函数(特别是 ahull 函数),我想要一种使用这些函数干净地生成多边形的方法。这是一个例子。
x <- c(1:3, 3:1, 1)
y <- c(1,1,1,3,3,2, 1)
xy <- cbind(x,y)
Sr1 <- Polygon(xy)
Srs1 = Polygons(list(Sr1), "s1")
SpP = SpatialPolygons(list(Srs1))
plot(SpP)
z <- runif(7)
xyz <- cbind(x,y,z)
xyz <- xyz[order(z),]
xy <- xyz[,-3]
xy <- rbind(xy, xy[1,])
Sr1 <- Polygon(xy)
Srs1 = Polygons(list(Sr1), "s1")
SpP = SpatialPolygons(list(Srs1))
SpP = SpatialPolygons(list(Srs1))
plot(SpP)
这是我的真实数据:https://drive.google.com/file/d/0B8QG4cbDqH0UOUlobnlWaDgwOWs/edit?usp=sharing
【问题讨论】:
-
我不确定是否有任何简单的算法可以“弄清楚”如何对顶点进行排序,以避免任何多边形边缘相互交叉。你有没有通过像
spatstat这样的包来查看它们是否有任何相关的工具?我知道它有像crossing.psp这样的测试,但我不想必须详尽地测试所有段对。
标签: r