HyperspectralUnmixing - Hyperspectral data unmixing

Estimate abundance maps from an hyperspectral image and a set of endmembers.

Detailed description

The application applies a linear unmixing algorithmto an hyperspectral data cube. This method supposes that the mixture betweenaterials in the scene is macroscopic and simulates a linear mixing model ofspectra.

The Linear Mixing Model (LMM) acknowledges that reflectancespectrum associated with each pixel is a linear combination of purematerials in the recovery area, commonly known as endmembers. Endmembers canbe estimated using the VertexComponentAnalysis application.

The application allows estimating the abundance maps with several algorithms :
  • Unconstrained Least Square (ucls)
  • Image Space Reconstruction Algorithm (isra)
  • Non-negative constrained
  • Least Square (ncls)
  • Minimum Dispersion Constrained Non Negative Matrix Factorization (MDMDNMF).


This section describes in details the parameters available for this application. Table [1] presents a summary of these parameters and the parameters keys to be used in command-line and programming languages. Application key is HyperspectralUnmixing .

[1]Table: Parameters table for Hyperspectral data unmixing.
Parameter Key Parameter Name Parameter Type
in Input Image Filename Input image
out Output Image Output image
ie Input endmembers Input image
ua Unmixing algorithm Choices
ua ucls UCLS Choice
ua ncls NCLS Choice
ua isra ISRA Choice
ua mdmdnmf MDMDNMF Choice
inxml Load otb application from xml file XML input parameters file
outxml Save otb application to xml file XML output parameters file
  • Input Image Filename: The hyperspectral data cube input.
  • Output Image: The output abundance map. The abundance fraction are stored in a multispectral image where band N corresponds to the fraction of endmembers N in each pixel.
  • Input endmembers: The endmembers (estimated pure pixels) to use for unmixing. Must be stored as a multispectral image, where each pixel is interpreted as an endmember.
  • Unmixing algorithm: The algorithm to use for unmixing. Available choices are:
  • UCLS: Unconstrained Least Square.
  • NCLS: Non-negative constrained Least Square.
  • ISRA: Image Space Reconstruction Algorithm.
  • MDMDNMF: Minimum Dispersion Constrained Non Negative Matrix Factorization.
  • Load otb application from xml file: Load otb application from xml file.
  • Save otb application to xml file: Save otb application to xml file.


To run this example in command-line, use the following:

otbcli_HyperspectralUnmixing -in cupriteSubHsi.tif -ie cupriteEndmembers.tif -out HyperspectralUnmixing.tif double -ua ucls

To run this example from Python, use the following code snippet:


# Import the otb applications package
import otbApplication

# The following line creates an instance of the HyperspectralUnmixing application
HyperspectralUnmixing = otbApplication.Registry.CreateApplication("HyperspectralUnmixing")

# The following lines set all the application parameters:
HyperspectralUnmixing.SetParameterString("in", "cupriteSubHsi.tif")

HyperspectralUnmixing.SetParameterString("ie", "cupriteEndmembers.tif")

HyperspectralUnmixing.SetParameterString("out", "HyperspectralUnmixing.tif")
HyperspectralUnmixing.SetParameterOutputImagePixelType("out", 7)


# The following line execute the application




This application has been written by OTB-Team.

See Also

These additional resources can be useful for further information: