docs: def colorize(self, colormap, band_name=None, vmin=None, vmax=None):
          """Apply a colormap on a selected band.
  
          colormap list: https://matplotlib.org/examples/color/colormaps_reference.html
  
          Parameters
          ----------
          colormap : str
          Colormap name from this list https://matplotlib.org/examples/color/colormaps_reference.html
  
          band_name : str, optional
          Name of band to colorize, if none the first band will be used
  
          vmin, vmax : int, optional
          minimum and maximum range for normalizing array values, if None actual raster values will be used
  
          Returns
          -------
          GeoRaster2
          """
          vmin = vmin if vmin is not None else min(self.min())
          vmax = vmax if vmax is not None else max(self.max())
  
          cmap = matplotlib.cm.get_cmap(colormap)  # type: matplotlib.colors.Colormap
  
          band_index = 0
          if band_name is None:
              if self.num_bands > 1:
                  warnings.warn("Using the first band to colorize the raster", GeoRaster2Warning)
          else:
              band_index = self.band_names.index(band_name)
  
          normalized = (self.image[band_index, :, :] - vmin) / (vmax - vmin)
  
          # Colormap instances are used to convert data values (floats)
          # to RGBA color that the respective Colormap
          #
          # https://matplotlib.org/_modules/matplotlib/colors.html#Colormap
          image_data = cmap(normalized)
          image_data = image_data[:, :, 0:3]
  
          # convert floats [0,1] to uint8 [0,255]
          image_data = image_data * 255
          image_data = image_data.astype(np.uint8)
  
          image_data = np.rollaxis(image_data, 2)
  
          # force nodata where it was in original raster:
          mask = _join_masks_from_masked_array(self.image)
          mask = np.stack([mask[0, :, :]] * 3)
          array = np.ma.array(image_data.data, mask=mask).filled(0)  # type: np.ndarray
          array = np.ma.array(array, mask=mask)
  
          return self.copy_with(image=array, band_names=['red', 'green', 'blue'])