Use Linear Spectral Unmixing to determine the relative abundance of materials that are depicted in multispectral or hyperspectral imagery based on the materials’ spectral characteristics.

You can also write a script to perform Linear Spectral Unmixing using the LinearSpectralUnmixing task.

The reflectance at each pixel of the image is assumed to be a linear combination of the reflectance of each material (or endmember) present within the pixel. For example, if 25% of a pixel contains material A, 25% of the pixel contains material B, and 50% of the pixel contains material C, the spectrum for that pixel is a weighted average of 0.25 times the spectrum of material A, plus 0.25 times the spectrum of material B, plus 0.5 times the spectrum of material C. So, given the resulting spectrum (the input data) and the endmember spectra, Linear Spectral Unmixing solves for the abundance values of each endmember for every pixel.

The number of endmembers must be less than the number of spectral bands, and all of the endmembers in the image must be used. Spectral unmixing results are highly dependent on the input endmembers; changing the endmembers changes the results. For additional information, see Spectral Tools References and Linear Spectral Unmixing Results.

Linear Spectral Unmixing has two constraint options: unconstrained or a partially constrained unmixing. In the unconstrained method, abundances may assume negative values and are not constrained to sum-to-unity (one). ENVI also supports an optional, variable-weight, unit-sum constraint in the linear-mixing algorithm. This allows you to define the weight of a sum-to-unity constraint on the abundance fractions. It also permits proper unmixing of MNF transform data, with zero-mean bands.

You pick a weight factor (the default value is 1) for the extra constraint equation. This weighted unit-sum constraint is then added to the system of simultaneous equations in the unmixing inversion process. Larger weights in relation to the variance of the data cause the unmixing to honor the unit-sum constraint more closely. To strictly honor the constraint, the weight should be many times the spectral variance of the data.

Note: If not all endmembers are known or if you only want to map a few endmembers, use Matched Filtering (MF) or Mixture-Tuned Matched Filtering (MTMF).

  1. From the Toolbox, select Spectral > Linear Spectral Unmixing. The Unmixing Input File dialog appears.
  2. Select an input file and perform optional spatial and spectral subsetting, and/or masking, then click OK.
  3. Click OK. The Endmember Collection:Unmixing dialog appears.
  4. Select endmember spectra from a variety of sources (ASCII spectra, spectral libraries, spectral plots, statistics files, ROIs). See Import Spectra for details. Spectra from all sources are automatically resampled to match the wavelengths of the multiband image being unmixed.

  5. Click Apply. The Unmixing Parameters dialog appears.
  6. To apply a unit-sum constraint in the unmixing, use the toggle button to select Yes and enter a Weight value. This weight is added to the system of simultaneous equations in the unmixing inversion process. Larger weights cause the unmixing to honor the unit-sum constraint more closely.
  7. Select output to File or Memory.
  8. Click OK.

Linear Spectral Unmixing Results


The pixel values of these images indicate the fraction of the pixel that contains the endmember material corresponding to that image. For example, a pixel from the #1 Abundance image with a value of 0.45 indicates that 45% of the pixel contains endmember #1. If many pixels have values above 1.0 or below 0.0, this indicates that one or more of the endmembers chosen for the analysis are probably not well-characterized, or that one or more additional endmembers are missing from the analysis. View the RMS error image to help determine areas of missing or incorrect endmembers.