docs: def _downscaling(self, hr_array, meta_info, interp='linear', smooth=True):
          """ Downscale existing array to resolution requested by cloud detector
  
          :param hr_array: High-resolution data array to be downscaled
          :param meta_info: Meta-info of eopatch
          :param interp: Interpolation method to be used in downscaling. Default is `'linear'`
          :param smooth: Apply Gaussian smoothing in spatial directions before downscaling. Sigma of kernel is estimated
                          by rescaling factor. Default is `True`
          :return: Down-scaled array
          """
          # Run cloud mask on full resolution
          if (self.cm_size_y is None) and (self.cm_size_x is None):
              return hr_array, None
  
          # Rescaling factor in spatial (height, width) dimensions
          rescale = self._get_rescale_factors(hr_array.shape[1:3], meta_info)
  
          if smooth:
              sigma = (0,) + tuple(int(1/x) for x in rescale) + (0,)
              hr_array = scipy.ndimage.gaussian_filter(hr_array, sigma)
  
          lr_array = scipy.ndimage.interpolation.zoom(hr_array, (1.0,) + rescale + (1.0,),
                                                      order=INTERP_METHODS.index(interp), mode='nearest')
  
          return lr_array, rescale