

ArcGIS如何自动获得随机采样点? - 疯狂学习GIS
source link: https://www.cnblogs.com/fkxxgis/p/17408951.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ArcGIS如何自动获得随机采样点?
本文介绍基于ArcMap软件,实现在指定区域自动生成随机点的方法。
在GIS应用中,我们时常需要在研究区域内进行地理数据的随机采样;而采样点的位置往往需要在结合实际情况的前提下,用计算机随机生成。这一操作在ArcMap软件中就可以非常方便地进行。
已知现有如下一景栅格图像,我们需要在这一图像对应的位置中,随机生成若干点作为采样点。

另一方面,我们还已知该栅格图像对应的空间范围的面要素矢量图层,如下图所示。其中,由于该栅格图像存在无效值NoData,因此可以看到栅格图像是没有完全遮盖矢量图层的。

接下来,就可以开始随机点的选取。在软件中依次选择“Data Management Tools.tbx”→“Sampling”→“Creat Random Points”。

弹出如下所示的界面。

这个工具的参数有很多,我们逐一介绍。“Output Location”为生成点要素的保存路径,“Output Point Feature Class”为生成点要素的名称;“Constraining Feature Class (optional)”为我们生成随机点的范围——这一项为可选项,如果我们选择了这一项,那么随机点就会在这一项所选的点、线或面矢量要素范围内生成;如果我们不选择这一项,就可以在下一项“Constraining Extent (optional)”中选择我们的栅格图像作为范围。“Number of Points [value or field] (optional)”为生成点的个数,如果我们选中“Long”,那么就直接输入整数即可;如果我们选中“Field”,那么就依据“Constraining Feature Class (optional)”这一项所选的点、线或面矢量要素的属性表中某一个字段作为点的个数;这里还需要注意,如果我们在“Constraining Feature Class (optional)”这一项选中了包含多个要素的要素集,那么“Long”所输入的点的个数其实是该要素集下属每1个要素中所生成的点的个数(这里大家看不明白也没关系,我们在后面会用一些例子来说明)。“Minimum Allowed Distance [value or field] (optional)”表示所生成点之间的最小距离,同样是可以用直接输入距离或者用矢量要素的属性表字段来赋值。最后一个勾选项表示是否将输出的随机点结果作为一个整体的要素——如果不勾选此项,那么输出的随机点要素集中,每1个点就相当于是1个要素;如果勾选此项,那么输出的随机点要素集中,所有点整体相当于是1个要素;如果勾选了这一项,就将激活最后一个输入框,表示如果将多个点整体当作1个要素的话,该要素最多可以含有多少个点。
接下来,我们就通过几个实例来探究一下上述参数的具体含义。
首先,第一个例子,我们就按照上图所示的参数设定运行该工具,得到结果如下所示。

可以看到,我们虽然在“Long”中设定了点的个数是100
,但是实际生成的随机点个数远远不止100
个;这是因为,前面我们也提到:如果在“Constraining Feature Class (optional)”这一项选中了包含多个要素的要素集,那么“Long”所输入的点的个数其实是该要素集下属每1个要素中所生成的点的个数。
在刚刚的例子中,我们“Constraining Feature Class (optional)”这一项选所用的面矢量要素图层如下所示,可以看到其是一个包含有9个省(9个要素)的要素集;那么结合我们前面介绍的,在“Long”中设定了点的个数是100
,实际上是在每1个省份(每1个要素)中生成100
个点,因此最终得到的整体结果是900
个点,从而导致我们的随机点结果看起来就这么密集。

我们将这个9个省的面矢量要素图层和刚刚生成的随机点矢量要素放在一起看,大家就看得更清楚了——每个省都是100
个点,但由于内蒙古地区面积大,因此这里100
个点就看起来比较疏松;而宁夏(下图中红色区域)由于面积小,所以100
个点在这里就显得尤为密集。

接下来,第二个例子,我们按照下图所示的参数设定运行该工具。

其中,我们选择用矢量图层的属性表字段来作为约束每1个行政区(每1个要素集)中生成随机点的个数。这里我们就选择用下图所示的这个字段作为输入字段。

得到的结果如下所示。可以看到,内蒙古的该字段数值为15
,其所生成的点就是15
个;而宁夏该字段的数值为64
,因此其所生成的点看起来依然是密密麻麻的。

清楚了以上规则,就可以更好地进行随机点自动生成的操作了。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK