Arcgis在已有的点中随机选点
甲方给的需求是在619个面要素里生成随机点,拿到这个需求我首先想到的是,arcgis工具箱里有【创建随机点】相关的工具,不过经过我的一番百度和实测,发现了一个更符合我需求的工具【子集要素】。
源数据如下图所示:
方法一【子集要素】
首先是将619个面生成中心点,然后使用【子集要素】这个工具,在619个中心点中随机选点,工具详细使用方法如下:
1.通过【要素转点】将面要素转为中心点
可通过【Ctrl+F】搜索工具名称直达,工具位置如下图:
工具说明如下图所示:
导出效果如图所示:
2.在工具箱中搜索【子集要素】
3. 选择要抽稀的要素,例如【619个中心点】,【子集大小单位】和【训练要素的大小】这两个属性是关联的。图中是【PERCENTAGE_OF_INPUT】和【50】将会生成原数据50%的点位。
效果如图:
4. 也可以用【ABSOLUTE_VALUE】,精确要随机产生成点的个数,如图:
效果如图:
方法二【创建随机点】
这个工具的说明如下:
点数 [值或字段] (可选)
要随机生成的点的数量。
可将点数指定为长整型数值或指定为约束要素中的字段,其中约束要素需包含表示每个要素中要放置多少随机点的数值。
此字段选项仅对面约束要素或线约束要素有效。
如果点数以长整型数值的形式提供,则将在约束要素类中每个要素的内部或沿线生成该数量的随机点。
注意这句话:
可将点数指定为长整型数值或指定为约束要素中的字段,其中约束要素需包含表示每个要素中要放置多少随机点的数值。
所以我先把这619个要素面合并成了1个要素面,再使用这个作为生成随机点的区域。
然后使用【创建随机点】工具,生成所需要的随机点。约束要素类记得选择我们要生成随机点的面,点的数量图示也有,工具效果如图:
生成点的效果如图所示:
总结
这两种方法,【创建随机点】是随机生成点位,随机性强,强制保证间隔,且不限制点个个数,缺点是随机性太强,不能保证一网格一点;
【子集要素】是在中心点中筛选,能保证一网格一点,点位置都固定,缺点是受限于中心点的数量,只能一个面内一个点。