我们先将GIS中的数据分为三类,矢量、表格、栅格。然后依次讨论随机选取。
1. 矢量数据的随机选取
在GIS中,我会分为空间上和属性上,所以我将随机选取方式分为空间随机
、属性随机
。
1.1. 属性随机
按照此类我们随机的方式是,数据随机选择数据行
import random
def calcRandom():
return random.randint(1,3)
calcRandom()
或者
import random
def rondomObjectTime(seedStep):
time.sleep(0.01)
random.seed(seedStep*time.time())
return random.randint(1,3)
rondomObjectTime(!OBJECTID!)
如下图:
我们可以控制return random.randint(1,3)
为return random.randint(1,100)
让后在选取数据是选择特定的属性值,以达到随机抽样。
1.2. 空间随机
为什么会存在空间随机呢?(个人总结如下,欢迎补充)
- 将空间范围作为一种权重,比如如果空间范围大,则被选中的可能性更大
- 空间选取中尽量做到选择相同范围。
实现步骤如下:
- 随机生成点
- 点缓冲
- 使用缓冲的数据进行空间查询
除了采用生成随机点的方案,也可以使用数据生成渔网,通过属性筛选渔网,再将
选择数据与被筛选数据进行空间查询
导出结果
2. 表格数据的随机选取
由于数据中不存在空间信息,可以采用1.1. 属性随机
的方案
3. 栅格数据的随机提取
可以采用1.2. 空间随机
的方案,不过最后可以根据需求采用裁剪栅格的方式输出结果