### Navigation

- index
- modules |
- PySptools 0.13.0 beta documentation »

# Supervised classification classes

This module supports HSI cube supervised classifiers. They are NormXCorr, SAM, SID and SVC. For each classifier three differents plotting are availables.

For NormXCorr, SAM and SID, the fusions of classification maps use a best score win approach.

See the file `test_cls.py` for an example and for SVC see `test_SVC.py`.

## NormXCorr

class `classification.``NormXCorr`

  Classify a HSI cube using the normalized cross correlation algorithm and a spectral library.

  `classify`(M, E, threshold=0.01)

    Classify the HSI cube M with the spectral library E.

    Parameters:
      M: numpy array
        A HSI cube (m x n x p).
      E: numpy array
        A spectral library (N x p).
      threshold: float [default 0.1] or list
        - If float, threshold is applied on all the spectra.
        - If a list, individual threshold is applied on each spectrum, in this case the list must have the same number of threshold values than the number of spectra.
        - Threshold have values between 0.0 and 1.0.
    Returns: numpy array
      A class map (m x n x 1).
  `display`(colorMap='Accent', suffix=None)

    Display the class map to a IPython Notebook.

    Parameters:
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the title.
  `display_single_map`(lib_idx, constrained=True, suffix=None)

    Display individual classified map to a IPython Notebook. One for each spectrum. Note that each individual map is constrained by the others. This function is usefull to see the individual map that compose the final class map returned by the classify method. It help to define the spectra library. See the constrained parameter below.

    Parameters:
      lib_idx: int or string
        - A number between 1 and the number of spectra in the library.
        - ‘all’, plot all the individual maps.
      constrained: boolean [default True]
        - If constrained is True, print the individual maps as they compose the final class map. Any potential intersection is removed in favor of the lower value level for SAM and SID, or the nearest to 1 for NormXCorr. Use this one to understand the final class map.
        - If constrained is False, print the individual maps without intersection removed, as they are generated. Use this one to have the real match.
      suffix: string [default None]
        Add a suffix to the title.
  `get_NormXCorr_map`()
    Returns: numpy array
      The NormXCorr array (m x n x spectra number).
  `get_single_map`(lib_idx, constrained=True)

    Get individual classified map. See plot_single_map for a description.

    Parameters:
      path: string
        The path where to put the plot.
      lib_idx: int or string
        A number between 1 and the number of spectra in the library.
      constrained: boolean [default True]
        See plot_single_map for a description.
    Returns: numpy array
      The individual map (m x n x 1) associated to the lib_idx endmember.
  `plot`(path, colorMap='Accent', suffix=None)

    Plot the class map.

    Parameters:
      path: string
        The path where to put the plot.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_histo`(path, suffix=None)

    Plot the histogram.

    Parameters:
      path: string
        The path where to put the plot.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_single_map`(path, lib_idx, constrained=True, suffix=None)

    Plot individual classified map. One for each spectrum. Note that each individual map is constrained by the others. This function is usefull to see the individual map that compose the final class map returned by the classify method. It help to define the spectra library. See the constrained parameter below.

    Parameters:
      path: string
        The path where to put the plot.
      lib_idx: int or string
        - A number between 1 and the number of spectra in the library.
        - ‘all’, plot all the individual maps.
      constrained: boolean [default True]
        - If constrained is True, print the individual maps as they compose the final class map. Any potential intersection is removed in favor of the lower value level for SAM and SID, or the nearest to 1 for NormXCorr. Use this one to understand the final class map.
        - If constrained is False, print the individual maps without intersection removed, as they are generated. Use this one to have the real match.
      suffix: string [default None]
        Add a suffix to the file name.

## SAM

class `classification.``SAM`

  Classify a HSI cube using the spectral angle mapper algorithm and a spectral library.

  `classify`(M, E, threshold=0.1)

    Classify the HSI cube M with the spectral library E.

    Parameters:
      M: numpy array
        A HSI cube (m x n x p).
      E: numpy array
        A spectral library (N x p).
      threshold: float [default 0.1] or list
        - If float, threshold is applied on all the spectra.
        - If a list, individual threshold is applied on each spectrum, in this case the list must have the same number of threshold values than the number of spectra.
        - Threshold have values between 0.0 and 1.0.
    Returns: numpy array
      A class map (m x n x 1).
  `display`(colorMap='Accent', suffix=None)

    Display the class map to a IPython Notebook.

    Parameters:
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the title.
  `display_single_map`(lib_idx, constrained=True, suffix=None)

    Display individual classified map to a IPython Notebook. One for each spectrum. Note that each individual map is constrained by the others. This function is usefull to see the individual map that compose the final class map returned by the classify method. It help to define the spectra library. See the constrained parameter below.

    Parameters:
      lib_idx: int or string
        - A number between 1 and the number of spectra in the library.
        - ‘all’, plot all the individual maps.
      constrained: boolean [default True]
        - If constrained is True, print the individual maps as they compose the final class map. Any potential intersection is removed in favor of the lower value level for SAM and SID, or the nearest to 1 for NormXCorr. Use this one to understand the final class map.
        - If constrained is False, print the individual maps without intersection removed, as they are generated. Use this one to have the real match.
      suffix: string [default None]
        Add a suffix to the title.
  `get_angles_map`()
    Returns: numpy array
      The angles array (m x n x spectra number).
  `get_angles_stats`()
    Returns: dic
      Angles stats.
  `get_single_map`(lib_idx, constrained=True)

    Get individual classified map. See plot_single_map for a description.

    Parameters:
      path: string
        The path where to put the plot.
      lib_idx: int or string
        A number between 1 and the number of spectra in the library.
      constrained: boolean [default True]
        See plot_single_map for a description.
    Returns: numpy array
      The individual map (m x n x 1) associated to the lib_idx endmember.
  `plot`(path, colorMap='Accent', suffix=None)

    Plot the class map.

    Parameters:
      path: string
        The path where to put the plot.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_histo`(path, suffix=None)

    Plot the histogram.

    Parameters:
      path: string
        The path where to put the plot.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_single_map`(path, lib_idx, constrained=True, suffix=None)

    Plot individual classified map. One for each spectrum. Note that each individual map is constrained by the others. This function is usefull to see the individual map that compose the final class map returned by the classify method. It help to define the spectra library. See the constrained parameter below.

    Parameters:
      path: string
        The path where to put the plot.
      lib_idx: int or string
        - A number between 1 and the number of spectra in the library.
        - ‘all’, plot all the individual maps.
      constrained: boolean [default True]
        - If constrained is True, print the individual maps as they compose the final class map. Any potential intersection is removed in favor of the lower value level for SAM and SID, or the nearest to 1 for NormXCorr. Use this one to understand the final class map.
        - If constrained is False, print the individual maps without intersection removed, as they are generated. Use this one to have the real match.
      suffix: string [default None]
        Add a suffix to the file name.

## SID

class `classification.``SID`

  Classify a HSI cube using the spectral information divergence algorithm and a spectral library.

  `classify`(M, E, threshold=0.1)

    Classify the HSI cube M with the spectral library E.

    Parameters:
      M: numpy array
        A HSI cube (m x n x p).
      E: numpy array
        A spectral library (N x p).
      threshold: float [default 0.1] or list
        - If float, threshold is applied on all the spectra.
        - If a list, individual threshold is applied on each spectrum, in this case the list must have the same number of threshold values than the number of spectra.
        - Threshold have values between 0.0 and 1.0.
    Returns: numpy array
      A class map (m x n x 1).
  `display`(colorMap='Accent', suffix=None)

    Display the class map to a IPython Notebook.

    Parameters:
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the title.
  `display_single_map`(lib_idx, constrained=True, suffix=None)

    Display individual classified map to a IPython Notebook. One for each spectrum. Note that each individual map is constrained by the others. This function is usefull to see the individual map that compose the final class map returned by the classify method. It help to define the spectra library. See the constrained parameter below.

    Parameters:
      lib_idx: int or string
        - A number between 1 and the number of spectra in the library.
        - ‘all’, plot all the individual maps.
      constrained: boolean [default True]
        - If constrained is True, print the individual maps as they compose the final class map. Any potential intersection is removed in favor of the lower value level for SAM and SID, or the nearest to 1 for NormXCorr. Use this one to understand the final class map.
        - If constrained is False, print the individual maps without intersection removed, as they are generated. Use this one to have the real match.
      suffix: string [default None]
        Add a suffix to the title.
  `get_SID_map`()
    Returns: numpy array
      The SID array (m x n x spectra number).
  `get_single_map`(lib_idx, constrained=True)

    Get individual classified map. See plot_single_map for a description.

    Parameters:
      path: string
        The path where to put the plot.
      lib_idx: int or string
        A number between 1 and the number of spectra in the library.
      constrained: boolean [default True]
        See plot_single_map for a description.
    Returns: numpy array
      The individual map (m x n x 1) associated to the lib_idx endmember.
  `plot`(path, colorMap='Accent', suffix=None)

    Plot the class map.

    Parameters:
      path: string
        The path where to put the plot.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_histo`(path, suffix=None)

    Plot the histogram.

    Parameters:
      path: string
        The path where to put the plot.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_single_map`(path, lib_idx, constrained=True, suffix=None)

    Plot individual classified map. One for each spectrum. Note that each individual map is constrained by the others. This function is usefull to see the individual map that compose the final class map returned by the classify method. It help to define the spectra library. See the constrained parameter below.

    Parameters:
      path: string
        The path where to put the plot.
      lib_idx: int or string
        - A number between 1 and the number of spectra in the library.
        - ‘all’, plot all the individual maps.
      constrained: boolean [default True]
        - If constrained is True, print the individual maps as they compose the final class map. Any potential intersection is removed in favor of the lower value level for SAM and SID, or the nearest to 1 for NormXCorr. Use this one to understand the final class map.
        - If constrained is False, print the individual maps without intersection removed, as they are generated. Use this one to have the real match.
      suffix: string [default None]
        Add a suffix to the file name.

## SVC

class `classification.``SVC`

  Suppot Vector Supervised Classification (SVC) of a HSI cube with the use of regions of interest (ROIs).

  This class is largely a wrapper to the scikit-learn SVC class. The goal is to ease the use of the scikit-learn SVM implementation when applied to hyperspectral cubes.

  The ROIs classifiers can be rectangles or polygons. They must be VALID, no check is made upon the validity of these geometric figures.

  `classify`(M)

    Classify a hyperspectral cube using the ROIs defined clusters.

    Parameters:
      M: numpy array
        A HSI cube (m x n x p).
    Returns: numpy array
      A class map (m x n x 1).
  `display`(labels=None, colorMap='Accent', suffix=None)

    Display the class map.

    Parameters:
      labels: string list
        A labels list.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `display_ROIs`(labels=None, colorMap='Accent', suffix=None)

    Display the ROIs.

    Parameters:
      labels: string list
        A labels list.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `fit`(M, ROIs, class_weight=None, cache_size=200, coef0=0.0, degree=3, gamma=0.0, kernel='rbf', max_iter=-1, probability=False, random_state=None, shrinking=True, tol=0.001, verbose=False)

    Fit the HS cube M with the use of ROIs. The parameters following ‘M’ and ‘ROIs’ are the one defined by the scikit-learn sklearn.svm.SVC class.

    Parameters:
      M: numpy array
        A HSI cube (m x n x p).
      ROIs: ROIs type
        Regions of interest instance.
      Others parameters: see the sklearn.svm.SVC class parameters
        Note: the C parameter is set to 1, the result of this setting is that the class_weight is relative to C and that the first value of class_weight is the background. An example: you wish to fit two classes “1” and “2” with the help of one ROI for each, you declare class_weight like this: class_weight={0:1,1:10,2:10} 0: is always the background and is set to 1, 1: is the first class, 2: is the second. A value of 10 for both classes give good results.
    Returns: class
      The sklearn.svm.SVC class is returned.
  `plot`(path, labels=None, colorMap='Accent', suffix=None)

    Plot the class map.

    Parameters:
      path: string
        The path where to put the plot.
      labels: string list
        A labels list.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot_ROIs`(path, labels=None, colorMap='Accent', suffix=None)

    Plot the ROIs.

    Parameters:
      path: string
        The path where to put the plot.
      labels: string list
        A labels list.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.

## Output

class `classification.``Output`(label)

  Add plot and display capacity to the classifiers classes.

  `display`(cmap, ylabel='spectrum', colorMap='Accent', suffix=None)

    Display a classification map using matplotlib.

    Parameters:
      cmap: numpy array
        A classified map, (m x n x 1), the classes start at 0.
      ylabel: string [default ‘spectrum’]
        y axis label.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.
  `plot`(path, cmap, ylabel='spectrum', colorMap='Accent', suffix=None)

    Plot a classification map using matplotlib.

    Parameters:
      path: string
        The path where to put the plot.
      cmap: numpy array
        A classified map, (m x n x 1), the classes start at 0.
      ylabel: string [default ‘spectrum’]
        y axis label.
      colorMap: string [default ‘Accent’]
        A color map element of [‘Accent’, ‘Dark2’, ‘Paired’, ‘Pastel1’, ‘Pastel2’, ‘Set1’, ‘Set2’, ‘Set3’], “Accent” is the default and it fall back on “Jet”.
      suffix: string [default None]
        Add a suffix to the file name.

### Navigation

- index
- modules |
- PySptools 0.13.0 beta documentation »