Estimate abundance maps from an hyperspectral image and a set of endmembers.
The application applies a linear unmixing algorithm to an hyperspectral data cube. This method supposes that the mixture between aterials in the scene is macroscopic and simulates a linear mixing model of spectra.
The Linear Mixing Model (LMM) acknowledges that reflectance spectrum associated with each pixel is a linear combination of pure materials in the recovery area, commonly known as endmembers. Endmembers can be 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).
Input Image Filename
-in image Mandatory
The hyperspectral data cube input
-out image [dtype] Mandatory
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.
-ie image Mandatory
The endmembers (estimated pure pixels) to use for unmixing. Must be stored as a multispectral image, where each pixel is interpreted as an endmember.
-ua [ucls|ncls|isra|mdmdnmf] Default value: ucls
The algorithm to use for unmixing
Unconstrained Least Square
Non-negative constrained Least Square
Image Space Reconstruction Algorithm
Minimum Dispersion Constrained Non Negative Matrix Factorization
Load parameters from XML
Load application parameters from an XML file.
Save parameters to XML
Save application parameters to an XML file.
From the command-line:
otbcli_HyperspectralUnmixing -in cupriteSubHsi.tif -ie cupriteEndmembers.tif -out HyperspectralUnmixing.tif double -ua ucls
import otbApplication app = otbApplication.Registry.CreateApplication("HyperspectralUnmixing") app.SetParameterString("in", "cupriteSubHsi.tif") app.SetParameterString("ie", "cupriteEndmembers.tif") app.SetParameterString("out", "HyperspectralUnmixing.tif") app.SetParameterOutputImagePixelType("out", 7) app.SetParameterString("ua","ucls") app.ExecuteAndWriteOutput()