如何在多边形外创建随机点?


11

工具“ 创建随机点”能够在多边形内生成一定数量的点。我想知道,在给定边界框的情况下,有什么方法可以在这些多边形之外生成随机点?

Answers:


13

我个人不喜欢ArcGIS中的随机点算法。或者,使用地理空间建​​模环境(GME)genrandompnts功能。您将能够确定将排除随机点的特定多边形(请参见附加的.jpg中的突出显示区域)。最重要的是,该软件是免费的。

GME为您提供了一整套分析和建模工具,从可用于构建复杂工作流程的小型“构建模块”到完全独立的分析程序。它还使用功能强大的开源软件R作为统计引擎来驱动某些分析工具。R的众多优势之一是它是开源的,完全透明的并且有据可查的:对于任何科学分析软件而言,它都是重要的特性。

在此处输入图片说明


1
您能否提供更多信息,说明为什么您不喜欢默认的随机点算法,以及为什么GME更理想?
斯蒂芬·利德

@亚伦尼斯一个!自从它是霍斯的建模工具以来,还没有尝试过-我必须下载它并加以破解!
om_henners 2012年

3
@Stephen在上个月内,我在四个班级中生成了随机分数。我遇到了几个问题:1)ArcGIS在我的输入多边形之外产生了几个点2)Arc很难处理对于我的输入参数而言太小的区域(例如,最小允许距离= 50m和点= 50),而GME处理了这些问题通过产生随机点直到违反规则然后显示警告消息来解决问题。3)Arc的RPG速度比GME慢,这可能是由于R使用的本地内存。
亚伦

好东西!它具有python边界,以便我可以进行一些批处理@Aaron吗?
2012年

2
支持文档中的@Seen检出自动化和批处理部分(p10):spatialecology.com/gme/images/SpatialEcologyGME.pdf
亚伦

4

您将必须创建一个甜甜圈多边形,其甜甜圈孔代表内部非点空间,某个空间范围代表多边形区域的边界区域。


只是一个附录:使用ArcInfo许可证,您可以使用“ 擦除”工具来完成此操作
om_henners 2012年

3

抱歉,我无法抗拒。由于最好了解诸如GME之类的内容,因此这里是实际R代码的解决方案。

require(sp)
require(rgeos)

# Create example polygon data
x <- readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
y <- readWKT("POLYGON ((3 3, 7 3, 7 7, 3 7, 3 3))")

# Calculate difference in polygon geometries to create null polygon
d <- gDifference(x,y)

# Create random sample in non-null polygon
rs <- spsample(d, 20, type="random")  

# Plot results  
plot(d, col="red")
  plot(rs,pch=19,col="black",add=TRUE)

这种方法可能与GME的方法大不相同,但是使用的是本地R sp空间类和相当新的拓扑库,从而使代码非常高效。这也给出了一个示例,可以轻松地将其包装在for循环中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.