给定纬度和经度数组,我试图生成一个land_mask,一个同样大小的数组,它告诉我们一个坐标是否是陆地。
lon=np.random.uniform(0,150,size=[1000,1000])
lat=np.random.uniform(-90,90,size=[1000,1000])
from global_land_mask import globe
land_mask=globe.is_land(lat,lon)
如果定义了所有的值,这是一种非常有效的创建焊盘掩码的方法。但是如果lat或lon中的某些值被掩码或为nan值,则会引发错误。
我尝试过使用for循环来避免这个错误,但是运行它需要15-20分钟,我必须在一个有3000×3000个元素的数组上运行它,其中一些元素被屏蔽了。
为具有masked/nan值的阵列生成焊环掩码的更好方法是什么?
1条答案
按热度按时间ddhy6vgd1#
因此
globe.is_land(y,x)
似乎不接受掩码数组。合理的解决方案是使用域之外的坐标(如果可能)。因此:或者,您可以在传入值之前先遮罩它们:
第二种解决方案将更改(展平)您的平面/平面数组,但不要求您查找域之外的区域