The Sequential Maximum Angle Convex Cone (SMACC) spectral tool finds spectral endmembers and their abundances throughout an image. This tool is designed for use with previously calibrated hyperspectral data. In comparison to ENVI’s Spectral Hourglass Wizard, SMACC provides a faster and more automated method for finding spectral endmembers, but it is more approximate and yields less precision.

Endmembers are spectra that are chosen to represent pure surface materials in a spectral image. Endmembers that represent radiance or reflectance spectra must satisfy a positivity constraint, in which the abundance images contain no values less than zero. Other physically-based constraints may be imposed, such as a sum-to-unity constraint (the pixels are weighted mixtures of the endmembers) or a sum-to-unity or less constraint (the pixels are weighted mixtures of the endmembers plus black). If the hyperspectral data are calibrated to either radiance or thermal IR emissivity, you should use a sum-to-unity unmixing constraint. If the data are calibrated to reflectance, you should use either a positivity only or sum-to-unity or less constraint. SMACC allows you to select of any of these constraints.

SMACC uses a convex cone model (also known as Residual Minimization) with these constraints to identify image endmember spectra. Extreme points are used to determine a convex cone, which defines the first endmember. A constrained oblique projection is then applied to the existing cone to derive the next endmember. The cone is increased to include the new endmember. The process is repeated until a projection derives an endmember that already exists within the convex cone (to a specified tolerance) or until the specified number of endmembers are found.

In other words, SMACC first finds the brightest pixel in the image, then it finds the pixel most different from the brightest. Then, it finds the pixel most different from the first two. The process is repeated until SMACC finds a pixel already accounted for in the group of the previously found pixels, or until it finds a specified number of endmembers. The spectra of pixels that SMACC finds become the endmembers of the resulting spectral library.

Unlike convex methods that rely on a simplex analysis, the number of endmembers is not restricted by the number of spectral channels. Although endmembers derived from SMACC are unique, a one-to-one correspondence does not exist between the number of materials in an image and the number of endmembers. SMACC derives endmembers from pixels in an image. Each pixel may contain only one material or it may contain a high percentage of a single material with unique combinations of other materials. Each material identified in an image is described by a subset spanning its spectral variability. SMACC provides an endmember basis that defines each of these material subsets. SMACC also provides abundance images to determine the fractions of the total spectrally integrated radiance or reflectance of a pixel contributed by each resulting endmember.

Mathematically, SMACC uses the following convex cone expansion for each pixel spectrum (endmember), defined as H:


i is the pixel index

j and k are the endmember indices from 1 to the expansion length, N

R is a matrix that contains the endmember spectra as columns

c is the spectral channel index

A is a matrix that contains the fractional contribution (abundance) of each endmember j in each endmember k for each pixel

The 2D matrix representation of a spectral image is factored into a convex 2D basis (a span of a vector space) times a matrix of positive coefficients. In the image matrix (R), the row elements represent individual pixels, and each column represents the spectrum of that pixel. The coefficients in A are the fractional contributions or abundances of the basis members of the original matrix. The basis forms an n-D convex cone within its subset. The convex cone of the data is the set of all positive linear combinations of the data vectors, while the convex hull is the set of all weighted averages of the data. The factor matrices are then determined sequentially. At each step, a new convex cone is formed by adding the selected vector from the original matrix that lies furthest from the cone defined by the existing basis.


Gruninger, J, A. J. Ratkowski and M. L. Hoke. “The Sequential Maximum Angle Convex Cone (SMACC) Endmember Model”. Proceedings SPIE, Algorithms for Multispectral and Hyper-spectral and Ultraspectral Imagery, Vol. 5425-1, Orlando FL, April, 2004.

Use the SMACC Spectral Tool

  1. From the Toolbox, select Spectral > SMACC Endmember Extraction. The Select Input Image dialog appears.
  2. Select an input file.
  3. Select OK. The SMACC Endmember Extraction Parameters dialog appears.
  4. Enter the Number of Endmembers. This field specifies the number of endmembers to extract from the image. Only positive integers are allowed. The default value is 30.
  5. Enter an RMS Error Tolerance. This value specifies the unmixing RMS error tolerance. If set, the SMACC process exits as soon as the RMS error reaches this value. It exits regardless of whether or not it reaches the specified number of endmembers. The recommended starting value is 0.01 for reflectance data and 1.0 for radiance data. The default value is 0.0, which returns all of the requested endmembers. You should consider data units when choosing the tolerance. For example, RMS errors for reflectance should be lower than for most radiance units.
  6. Choose an option for Unmixing Constraint for Endmember Abundances.
    • Positivity Only (default): This option constrains the endmember spectra to positive values for any wavelength. This option is typically used for images corrected to reflectance because a negative reflectance value has no physical meaning. This is the best constraint for unmixing reflectance spectra under conditions of variable illumination.
    • Sum to Unity or Less: This option constrains the sum of the fractions of each material calculated for each pixel to be one or less. With this constraint, a pixel cannot be more than 100% filled. Use this constraint when you want a strict physical interpretation of material and shadow fractions of the abundances of reflectance data. If you select this constraint, the output abundance cube contains number of endmembers+1 bands. The first resulting band is defined as Shadow Abundance.
    • Sum to Unity: This option constrains the sum of the fractions calculated for each pixel to equal 100%. This constraint fills every pixel to 100%. Use this constraint when a zero endmember is not physically plausible or when you want to find very dark endmembers, such as shadow endmembers. This option is recommended for unmixing spectra such as radiance or thermal IR emissivity.
  7. Select or deselect Coalesce Redundant Endmembers. This option coalesces any endmembers that are within the specified spectral angle mapper threshold (SAM Coalesce Value) into one endmember. The most extreme spectra are identified and used to represent the entire coalesced group of endmembers. You should not select this option if you are trying to distinguish spectrally similar materials. If you select this option, you must enter a SAM Coalesce Value, which is a threshold value for spectral similarity. The default value is 0.100000.
  8. Enter an output filename for Endmember Location ROIs. SMACC generates an ROI file with a single region corresponding to the location of each endmember pixel.
  9. Optionally output the Abundance Image to File or Memory. If you choose File and enter an output filename, the resulting file is generated with a band for each endmember. If you selected the Sum to Unity or Less option, the first band corresponds to the shadow endmember. Generating abundance images is optional. If you choose File but do not enter an output filename, abundance images are not generated.
  10. Under Select Output Spectral Library, choose output to File or Memory.
  11. Click OK in the SMACC Endmember Extraction Parameters dialog to start the SMACC process.

ENVI adds the resulting output to the Layer Manager. Additionally, two ENVI plot windows appear:

  • Maximum Relative Error Plot: This plot contains the RMS error of each respective endmember.
  • Endmembers Spectral Library Plot: This plot shows the spectral signature of each of the endmembers resulting from the SMACC Endmember Extraction process. You can save this collection of endmember spectra as a spectral library, which you can then use in other spectral analyses.