def cloud_shadow_mask_array(image_array, image_difference_array, solar_zenith, solar_azimuth, resolution):
'''
This method creates a mask for clouds and shadows using a reference array.
'''
clouds = cloud_mask_array(image_difference_array)
shadows = shadow_mask_array(image_difference_array)
inbetween = calculate_cloud_shadow(clouds, shadows, solar_zenith, solar_azimuth, resolution)
image_mask_array = outside_mask_array(image_array, outside_value=255)
pixel_sizes = [250, 150, 50]
number_of_sizes = len(pixel_sizes)
for pixel_size in pixel_sizes:
numpy.putmask(image_mask_array, morph_dilation(clouds, pixel_size) == 1, FMASK_CLOUD * 10 + number_of_sizes)
number_of_sizes = number_of_sizes - 1
numpy.putmask(image_mask_array, inbetween == 1, FMASK_CLOUD_SHADOW)
numpy.putmask(image_mask_array, clouds == 1, FMASK_CLOUD)
return image_mask_array
评论列表
文章目录