text: Hyperspectral data is often used to determine what materials are present in a scene.  Materials of interest could include roadways, vegetation, and specific targets (i.e. pollutants, hazardous materials, etc.).  Trivially, each pixel of a hyperspectral image could be compared to a material database to determine the type of material making up the pixel.  However, many hyperspectral imaging platforms have low resolution (>5m per pixel) causing each pixel to be a mixture of several materials.  The process of unmixing one of these mixed pixels is called hyperspectral image unmixing or simply hyperspectral unmixing.
  A solution to hyperspectral unmixing is to reverse the mixing process.  Generally, two models of mixing are assumed: linear and nonlinear.
  Linear mixing models the ground as being flat and incident sunlight on the ground causes the materials to radiate some amount of the incident energy back to the sensor.  Each pixel then, is modeled as a linear sum of all the radiated energy curves of materials making up the pixel.  Therefore, each material contributes to the sensor's observation in a positive linear fashion.  Additionally, a conservation of energy constraint is often observed thereby forcing the weights of the linear mixture to sum to one in addition to being positive.  The model can be described mathematically as follows:
  where  represents a pixel observed by the sensor,  is a matrix of material reflectance signatures (each signature is a column of the matrix), and  is the proportion of material present in the observed pixel.  This type of model is also referred to as a simplex.
  With  satisfying the two constraints:
  1. Abundance Nonnegativity Constraint (ANC) - each element of x is positive.
  2. Abundance Sum-to-one Constraint (ASC) - the elements of x must sum to one.
  Non-linear mixing results from multiple scattering often due to non-flat surface such as buildings and vegetation.
  There are many algorithms to unmix hyperspectral data each with their own strengths and weaknesses.  Many algorithms assume that pure pixels (pixels which contain only one materials) are present in a scene.
  Some algorithms to perform unmixing are listed below:
  * Pixel Purity Index  Works by projecting each pixel onto one vector from a set of random vectors spanning the reflectance space.  A pixel receives a score when it represent an extremum of all the projections.  Pixels with the highest scores are deemed to be spectrally pure.
  * N-FINDR 
  * Gift Wrapping Algorithm
  * Independent Component Analysis Endmember Extraction Algorithm - works by assuming that pure pixels occur independently than mixed pixels.  Assumes pure pixels are present.
  * Vertex Component Analysis - works on the fact that the affine transformation of a simplex is another simplex which helps to find hidden (folded) vertices of the simplex. Assumes pure pixels are present.
  * Principal component analysis - could also be used to determine endmembers, projection on principal axes could permit endmember selection [Smith, Johnson et Adams (1985), Bateson et Curtiss (1996)]
  * Multi endmembers spatial mixture analysis based on the SMA algorithm
  * Spectral phasor analysis based on Fourier transformation of spectra and plotting them on a 2D plot.
  Non-linear unmixing algorithms also exist: support vector machines or analytical neural network.
  Probabilistic methods have also been attempted to unmix pixel through Monte Carlo unmixing algorithm.
  Once the fundamental materials of a scene are determined, it is often useful to construct an abundance map of each material which displays the fractional amount of material present at each pixel.  Often linear programming is done to observed ANC and ASC.