为栅格中的随机像元分配值

时间:2020-10-24 12:51:12

标签: raster assign

我想知道是否有办法为栅格内随机位置的预定数量的像元分配值?

例如,如果我想分配

  1. 对于栅格中值为“ 1”的像元,随机位置的值为“ 10”到3个像元
  2. 对于栅格中值为“ 1”的像元,随机位置的值为“ 20”到4个像元
  3. 对于栅格中值为“ 1”的像元,随机位置处的值为“ 40”到10个像元

做到这一点的最佳方法是什么?而且,是否有任何示例/脚本已经存在?

例如下面的原始栅格: enter image description here

和输出: enter image description here

谢谢!

1 个答案:

答案 0 :(得分:0)

现在全部排序:)

c = np.random.random((10,10)).round(0).astype(int)
c_idx = np.arange(c.size)[c.flatten()==1]
np.random.shuffle(c_idx)
d = c.flatten()
d[c_idx[:3]] = 10
d[c_idx[3:7]] = 20
d[c_idx[7:17]] = 40
d = d.reshape(c.shape)
d