Endmembers extraction functions


ATGP

pysptools.eea.eea.ATGP(data, q)

Automatic Target Generation Process endmembers induction algorithm

Parameters:
data: numpy array
2d matrix of HSI data ((m x n) x p)
q: int
Number of endmembers to be induced (positive integer > 0)
Returns: tuple: numpy array, numpy array
  • Set of induced endmembers (N x p).
  • Induced endmembers indexes vector.
References:
A. Plaza, C.-I. Chang, “Impact of Initialization on Design of Endmember Extraction Algorithms”, Geoscience and Remote Sensing, IEEE Transactions on, vol. 44, no. 11, pgs. 3397-3407, 2006.

FIPPI

pysptools.eea.eea.FIPPI(M, q=None, far=None, maxit=None)

Fast Iterative Pixel Purity Index (FIPPI) endmqbers induction algorithm.

Parameters:
M: numpy array
2d matrix of HSI data ((m x n) x p)
q: int [default None]
Number of endmembers to be induced, if None use HfcVd to determine the number of endmembers to induce.
far: float [default None]
False alarm rate(s), a parameter to HfcVd equal to 10**-5 by default.
maxit: `int [default None]
Maximum number of iterations. Default = 3*p.
Returns: tuple: numpy array, numpy array
  • Set of induced endmembers (N x p).
  • Array of indices into the array data corresponding to the induced endmembers.
References:
Chang, C.-I., “A fast iterative algorithm for implementation of pixel purity index”, Geoscience and Remote Sensing Letters, IEEE, vol. 3, no. 1, pags. 63-67, 2006.

NFINDR

pysptools.eea.nfindr.NFINDR(data, q, transform=None, maxit=None, ATGP_init=False)

N-FINDR endmembers induction algorithm.

Parameters:
data: numpy array
Column data matrix [nvariables x nsamples].
q: int
Number of endmembers to be induced.
transform: numpy array [default None]
The transformed ‘data’ matrix by MNF (N x components). In this case the number of components must == q-1. If None, the built-in call to PCA is used to transform the data.
maxit: int [default None]
Maximum number of iterations. Default = 3*q.
ATGP_init: boolean [default False]
Use ATGP to generate the first endmembers set instead of a random selection.
Returns: tuple: numpy array, numpy array, int
  • Set of induced endmembers (N x p)
  • Set of transformed induced endmembers (N x p)
  • Array of indices into the array data corresponding to the induced endmembers
  • The number of iterations.
References:
Winter, M. E., “N-FINDR: an algorithm for fast autonomous spectral end-member determination in hyperspectral data”, presented at the Imaging Spectrometry V, Denver, CO, USA, 1999, vol. 3753, pgs. 266-275.

PPI

pysptools.eea.eea.PPI(M, q, numSkewers, ini_skewers=None)

Performs the pixel purity index algorithm for endmember finding.

Parameters:
M: numpy array
2d matrix of HSI data ((m x n) x p).
q: int
Number of endmembers to find.
numSkewers: int
Number of “skewer” vectors to project data onto.
ini_skewers: numpy array [default None]
You can generate skewers from another source.
Returns: numpy array
Recovered endmembers (N x p).