在R中的set shapefiles边界内创建随机多边形

时间:2012-04-03 08:15:49

标签: r spatial points shapefile

我有一个shapefile,它是智利的国家边界线。如果可能的话,我想随机生成例如该区域内有1000个多边形。我想知道在R中最好的方法是什么?我想也许,使用' shapefiles'加载shapefile。包,然后使用spatstat'中可用的东西创建一个点数据集。然后我可以创建基于这些点的圆形多边形......这主要是假设的,我不知道它是否可能。

我在R方面有一些经验,但以前没有尝试任何空间分析。

任何想法和建议将不胜感激。

2 个答案:

答案 0 :(得分:3)

您可以使用栅格多边形吗?

在shapefile多边形上生成一个精细网格(小于目标多边形区域),然后选择一个随机的“种子”网格方块,并通过逐步添加最近的网格单元来“增长”它,直到它达到您想要的大小。这样,如果从沿海单元开始,您将获得内陆的近似圆形多边形和半圆形多边形。

光栅表示是否适合您取决于您​​创建这些多边形时的计划,但看起来您只是将它们叠加在其他土地利用数据上,这可以通过栅格上的栅格来完成或多边形上的栅格。

光栅包中是否都可以使用。

答案 1 :(得分:1)

这真的是一个难题,因为你需要担心一些事情。多边形可以是简单的凸形物,或更复杂的“凹形”形状,或由多个“岛”和湖泊组成的多分支形状。我会先得到那个部分,因为如果你只需要简单的情况那就更好了。

1)凸多边形很容易从随机点生成,因为你只需要凸包 - 点的排序不会影响结果。对于实际多边形,将它们作为边界链接在一起的顺序非常重要,或者您将获得具有扭曲边界的非感性形状。但是,有alphahull包来从非凸点生成更智能的外壳。

2)如果多边形的任何部分都不能超过主边界,那么您需要每个顶点都在边界内,并且没有连接它们的线段穿过主边界。想象一个多边形,其顶点都在国界内,但是一个区段穿过河流入口。有一些采样函数可以获取多边形内的点(spsample中的spcsr中的splancs)以及rgeos中可以使用的几何测试确保没有交叉 - 由于您正在测试定义多边形的一组样本点的失败而不是生成已知的“好案例”,因此仍然需要额外的工作。

如果你可以放松一些约束,那么它可能是相当可行的。你提到“圆形多边形”,你真的是指圆圈(或近似圆圈),因为如果是这样,那么一些测试可能变得更加简单。

我倾向于深入了解你的目标,看看这是否真的是你想做的事,或者你是否可以简化事情。