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 to estimate 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). Parameters ---------- This section describes in details the parameters available for this application. Table [#]_ presents a summary of these parameters and the parameters keys to be used in command-line and programming languages. Application key is *HyperspectralUnmixing* . .. [#] 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. Example ------- 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: :: #!/usr/bin/python # 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) HyperspectralUnmixing.SetParameterString("ua","ucls") # The following line execute the application HyperspectralUnmixing.ExecuteAndWriteOutput() Limitations ~~~~~~~~~~~ None Authors ~~~~~~~ This application has been written by OTB-Team. See Also ~~~~~~~~ These additional resources can be useful for further information: | VertexComponentAnalysis