我对屏蔽阵列和卫星数据很陌生。我正试图弄清楚如何计算masked_array中介于间隔(例如40到80(之间的元素的数量。这就是我所拥有的:
这是我的掩码数组"grid"的摘要。
masked_array(
data=[[[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200],
...,
[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200],
[120, 120, 120, ..., 200, 200, 200]]],
mask=False,
fill_value=999999,
dtype=uint8)
我想计算masked_array中介于40和80之间的元素的百分比。我试过了。
masked = ma.masked_where((grid >= 40) & (grid <= 80), grid)
green_ratio = masked.count()/grid.count()
但这是返回1,这是非常不可能的,因为我看到有大于120的值。
你知道怎么做吗?
masked.count()
仍然为您提供未经过滤的值总数,当然它等于grid.count()
。
由于masked.mask
是一个布尔数组,因此可以使用例如masked.mask.sum()/grid.count()
来将比率限制为满足条件的值。