Answers:
我个人不喜欢ArcGIS中的随机点算法。或者,使用地理空间建模环境(GME)genrandompnts
功能。您将能够确定将排除随机点的特定多边形(请参见附加的.jpg中的突出显示区域)。最重要的是,该软件是免费的。
GME为您提供了一整套分析和建模工具,从可用于构建复杂工作流程的小型“构建模块”到完全独立的分析程序。它还使用功能强大的开源软件R作为统计引擎来驱动某些分析工具。R的众多优势之一是它是开源的,完全透明的并且有据可查的:对于任何科学分析软件而言,它都是重要的特性。
您将必须创建一个甜甜圈多边形,其甜甜圈孔代表内部非点空间,某个空间范围代表多边形区域的边界区域。
抱歉,我无法抗拒。由于最好了解诸如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循环中。