code: def get_mask_from_prob(self, cloud_probs, threshold=None):
          
          threshold = self.threshold if threshold is None else threshold
  
          if self.average_over:
              cloud_masks = np.asarray([convolve(cloud_prob, self.conv_filter) > threshold
                                        for cloud_prob in cloud_probs], dtype=np.int8)
          else:
              cloud_masks = (cloud_probs > threshold).astype(np.int8)
  
          if self.dilation_size:
              cloud_masks = np.asarray([dilation(cloud_mask, self.dilation_filter) for cloud_mask in cloud_masks],
                                       dtype=np.int8)
  
          return cloud_masks
docs: Returns cloud mask by applying morphological operations -- convolution and dilation --
          to input cloud probabilities.
  
          :param cloud_probs: cloud probability map
          :type cloud_probs: numpy array of cloud probabilities (shape n_images x n x m)
          :param threshold: A float from [0,1] specifying threshold
          :type threshold: float
          :return: raster cloud mask
          :rtype: numpy array (shape n_images x n x m)