i.pysptools.unmix extracts endmembers from imagery group and performs spectral unmixing using pysptools.

The module is a wrapper around the pysptools Python library, that integrates its functionality for Endmember Extraction and Spectral Unmixing into GRASS GIS.

It requires that the Python libraries pysptools and scikit-learn are installed.

Supported algorithms for Endmember Extraction are:

Supported algorithms for Spectral Unmixing are:


Number of endmembers to extract (endmember_n) is supposed to be lower than the number of bands in the imagery group. Only the PPI method can extract more endmembers than there are bands in the imagery group.


# List bands
bands=`g.list type=raster pattern=lsat7_2002* separator=','`

# Create imagery group group=lsat_2002 input="$bands"

# Extract Endmembers and perform spectral unmixing using pysptools
i.pysptools.unmix input=lsat_2002 endmembers=endmembers endmember_n=5 \
output=spectrum.txt prefix=lsat_spectra --v

# Compare to result from i.spec.unmix
i.spec.unmix group=lsat7_2002 matrix=sample/spectrum.dat result=lsat7_2002_unmix \
error=lsat7_2002_unmix_err iter=lsat7_2002_unmix_iterations



Chang, C.-I. 2006: A fast iterative algorithm for implementation of pixel purity index. Geoscience and Remote Sensing Letters, IEEE, 3(1): 63-67.

Plaza, A. & Chang, C.-I. 2006: Impact of Initialization on Design of Endmember Extraction Algorithms. Geoscience and Remote Sensing, IEEE Transactions. 44(11): 3397-3407.

Winter, M. E. 1999: N-FINDR: an algorithm for fast autonomous spectral end-member determination in hyperspectral data. Presented at the Imaging Spectrometry V, Denver, CO, USA, (3753): 266-275.




Stefan Blumentrath, Norwegian Institute for Nature Research (NINA), Oslo, Norway
Zofie Cimburova, Norwegian Institute for Nature Research (NINA), Oslo, Norway