satpy.enhancements.colormap module

Lookups, colorization and colormaps.

satpy.enhancements.colormap._create_colormap_from_dataset(img, dataset, color_scale)[source]

Create a colormap from an auxiliary variable in a source file.

satpy.enhancements.colormap._get_cmap_from_palette_info(palette, img, color_scale)[source]
satpy.enhancements.colormap._lookup_table(band_data, luts=None, index=-1)[source]
satpy.enhancements.colormap._merge_colormaps(kwargs, img=None)[source]

Merge colormaps listed in kwargs.

satpy.enhancements.colormap._reverse_cmap(cmap, palette)[source]
satpy.enhancements.colormap._set_cmap_alpha_range(cmap, palette, color_scale)[source]
satpy.enhancements.colormap._set_cmap_range(cmap, palette)[source]
satpy.enhancements.colormap.colorize(img, **kwargs)[source]

Colorize the given image.

Parameters:

img – image to be colorized

Kwargs:

palettes: colormap(s) to use

The palettes kwarg can be one of the following:
  • a trollimage.colormap.Colormap object

  • list of dictionaries with each of one of the following forms:
    • {‘filename’: ‘/path/to/colors.npy’,

      ‘min_value’: <float, min value to match colors to>, ‘max_value’: <float, min value to match colors to>, ‘reverse’: <bool, reverse the colormap if True (default: False)}

    • {‘colors’: <trollimage.colormap.Colormap instance>,

      ‘min_value’: <float, min value to match colors to>, ‘max_value’: <float, min value to match colors to>, ‘reverse’: <bool, reverse the colormap if True (default: False)}

    • {‘colors’: <tuple of RGB(A) tuples>,

      ‘min_value’: <float, min value to match colors to>, ‘max_value’: <float, min value to match colors to>, ‘reverse’: <bool, reverse the colormap if True (default: False)}

    • {‘colors’: <tuple of RGB(A) tuples>,

      ‘values’: <tuple of values to match colors to>, ‘min_value’: <float, min value to match colors to>, ‘max_value’: <float, min value to match colors to>, ‘reverse’: <bool, reverse the colormap if True (default: False)}

    • {‘dataset’: <str, referring to dataset containing palette>,

      ‘color_scale’: <int, value to be interpreted as white>, ‘min_value’: <float, see above>, ‘max_value’: <float, see above>}

If multiple palettes are supplied, they are concatenated before applied.

satpy.enhancements.colormap.create_colormap(palette, img=None)[source]

Create colormap of the given numpy file, color vector, or colormap.

Parameters:

palette (dict) – Information describing how to create a colormap object. See below for more details.

From a file

Colormaps can be loaded from .npy, .npz, or comma-separated text files. Numpy (npy/npz) files should be 2D arrays with rows for each color. Comma-separated files should have a row for each color with each column representing a single value/channel. The filename to load can be provided with the filename key in the provided palette information. A filename ending with .npy or .npz is read as a numpy file with numpy.load(). All other extensions are read as a comma-separated file. For .npz files the data must be stored as a positional list where the first element represents the colormap to use. See numpy.savez() for more information. The path to the colormap can be relative if it is stored in a directory specified by Component Configuration Path. Otherwise it should be an absolute path.

The colormap is interpreted as 1 of 4 different “colormap modes”: RGB, RGBA, VRGB, or VRGBA. The colormap mode can be forced with the colormap_mode key in the provided palette information. If it is not provided then a default will be chosen based on the number of columns in the array (3: RGB, 4: VRGB, 5: VRGBA).

The “V” in the possible colormap modes represents the control value of where that color should be applied. If “V” is not provided in the colormap data it defaults to the row index in the colormap array (0, 1, 2, …) divided by the total number of colors to produce a number between 0 and 1. See the “Set Range” section below for more information. The remaining elements in the colormap array represent the Red (R), Green (G), and Blue (B) color to be mapped to.

See the “Color Scale” section below for more information on the value range of provided numbers.

From a list

Colormaps can be loaded from lists of colors provided by the colors key in the provided dictionary. Each element in the list represents a single color to be mapped to and can be 3 (RGB) or 4 (RGBA) elements long. By default, the value or control point for a color is determined by the index in the list (0, 1, 2, …) divided by the total number of colors to produce a number between 0 and 1. This can be overridden by providing a values key in the provided dictionary. See the “Set Range” section below for more information.

See the “Color Scale” section below for more information on the value range of provided numbers.

From a builtin colormap

Colormaps can be loaded by name from the builtin colormaps in the trollimage` package. Specify the name with the colors key in the provided dictionary (ex. {'colors': 'blues'}). See Colormap for the full list of available colormaps.

From an auxiliary variable

If the colormap is defined in the same dataset as the data to which the colormap shall be applied, this can be indicated with {'dataset': 'palette_variable'}, where 'palette_variable' is the name of the variable containing the palette. This variable must be an auxiliary variable to the dataset to which the colours are applied. When using this, it is important that one should not set min_value and max_value as those will be taken from the valid_range attribute on the dataset and if those differ from min_value and max_value, the resulting colors will not match the ones in the palette.

Color Scale

By default colors are expected to be in a 0-255 range. This can be overridden by specifying color_scale in the provided colormap information. A common alternative to 255 is 1 to specify floating point numbers between 0 and 1. The resulting Colormap uses the normalized color values (0-1).

Set Range

By default the control points or values of the Colormap are between 0 and 1. This means that data values being mapped to a color must also be between 0 and 1. When this is not the case, the expected input range of the data can be used to configure the Colormap and change the control point values. To do this specify the input data range with min_value and max_value. See trollimage.colormap.Colormap.set_range() for more information.

Set Alpha Range

The alpha channel of a created colormap can be added and/or modified by specifying min_alpha and max_alpha. See trollimage.colormap.Colormap.set_alpha_range() for more info.

satpy.enhancements.colormap.lookup(img, **kwargs)[source]

Assign values to channels based on a table.

satpy.enhancements.colormap.palettize(img, **kwargs)[source]

Palettize the given image (no color interpolation).

Arguments as for colorize().

NB: to retain the palette when saving the resulting image, pass keep_palette=True to the save method (either via the Scene class or directly in trollimage).