docs: def process(self, raster):
          """ Applies the morphological operation to the mask object
          """
          dim = len(raster.shape)
          if dim == 3:
              for dim in range(raster.shape[2]):
                  raster[:, :, dim] = self.morph_operation(raster[:, :, dim], self.struct_elem)
          elif dim == 4:
              for time, dim in it.product(range(raster.shape[0]), range(raster.shape[3])):
                  raster[time, :, :, dim] = self.morph_operation(raster[time, :, :, dim], self.struct_elem)
          else:
              raise ValueError('Invalid number of dimensions: {}'.format(dim))
  
          return raster