VertexComponentAnalysis

Given a set of mixed spectral vectors, estimate reference substances also known as endmembers using the Vertex Component Analysis algorithm.

Description

Apply the Vertex Component Analysis [1] to an hyperspectral image to extract endmembers. Given a set of mixed spectral vectors (multispectral or hyperspectral), the application estimates the spectral signature of reference substances also known as endmembers.

This application has several output images and supports “multi-writing”. Instead of computing and writing each image independently, the streamed image blocks are written in a synchronous way for each output. The output images will be computed strip by strip, using the available RAM to compute the strip size, and a user defined streaming mode can be specified using the streaming extended filenames (type, mode and value). Note that multi-writing can be disabled using the multi-write extended filename option: &multiwrite=false, in this case the output images will be written one by one. Note that multi-writing is not supported for MPI writers.

Parameters

Input Image -in image Mandatory
Input hyperspectral data cube

Output Endmembers -outendm image [dtype] Mandatory
Endmembers, stored in a one-line multi-spectral image.Each pixel corresponds to one endmembers and each band values corresponds to the spectral signature of the corresponding endmember.

Number of endmembers -ne int Default value: 1
The number of endmembers to extract from the hyperspectral image.

Random seed -rand int
Set a specific random seed with integer value.

Examples

From the command-line:

otbcli_VertexComponentAnalysis -in cupriteSubHsi.tif -ne 5 -outendm VertexComponentAnalysis.tif double

From Python:

import otbApplication

app = otbApplication.Registry.CreateApplication("VertexComponentAnalysis")

app.SetParameterString("in", "cupriteSubHsi.tif")
app.SetParameterInt("ne", 5)
app.SetParameterString("outendm", "VertexComponentAnalysis.tif")
app.SetParameterOutputImagePixelType("outendm", 7)

app.ExecuteAndWriteOutput()

See also

[1] J. M. P. Nascimento and J. M. B. Dias, Vertex component analysis: a fast algorithm to unmix hyperspectral data, in IEEE Transactions on Geoscience and Remote Sensing, vol. 43, no. 4, pp. 898-910, April 2005.J. M. P. Nascimento and J. M. B. Dias, Vertex component analysis: a fast algorithm to unmix hyperspectral data, in IEEE Transactions on Geoscience and Remote Sensing, vol. 43, no. 4, pp. 898-910, April 2005.