Spectral Angle Mapper (SAM) is a physically-based spectral classification that uses an n-D angle to match pixels to reference spectra. The algorithm determines the spectral similarity between two spectra by calculating the angle between the spectra and treating them as vectors in a space with dimensionality equal to the number of bands. This technique, when used on calibrated reflectance data, is relatively insensitive to illumination and albedo effects. Endmember spectra can be directly extracted directly from an image as region of interest (ROI) mean spectra. SAM compares the angle between the endmember spectrum vector and each pixel vector in n-D space. Smaller angles represent closer matches to the reference spectrum. Pixels further away than the specified maximum angle threshold in radians are not classified.

SAM classification assumes reflectance data. However, if you use radiance data, the error is generally not significant because the origin is still near zero.

Reference: Kruse, F. A., A. B. Lefkoff, J. B. Boardman, K. B. Heidebrecht, A. T. Shapiro, P. J. Barloon, and A. F. H. Goetz. "The Spectral Image Processing System (SIPS) - Interactive Visualization and Analysis of Imaging spectrometer Data." Remote Sensing of Environment 44 (1993): 145-163.

  1. From the Toolbox, select Classification > Supervised Classification > Spectral Angle Mapper Classification. The Spectral Angle Mapper Classification dialog appears.
  2. Select an Input Raster and perform optional spatial and spectral subsetting, and/or masking.
  3. Select the Input ROIs that represent the classes. Statistics from the ROIs are used as input to the spectral angle calculation.
  4. Optional: Specify a single Threshold Value to use for all classes. This value should be in radians. It represents the maximum acceptable angle between the endmember spectrum vector and the pixel vector (in # of bands dimensional space). ENVI does not classify pixels with an angle larger than this value.
  5. Optional: Specify a filename and location for the Output Rule Raster. A rule raster is a greyscale image that shows intermediate classification results, where each band represents a rule raster for each class. With SAM classification, pixel values of the rule raster represent the spectral angle in radians from the reference spectrum for each class. Lower spectral angles represent better matches to the endmember spectra. Areas that satisfied the selected radian threshold criteria are carried over as classified areas into the classified image.
  6. Specify a filename and location for the Output Raster (the classification raster).
  7. Enable the Display result check box to display the output rule raster and/or output rule raster in the Image window when processing is complete. Otherwise, if the check box is disabled, the raster can be loaded from the Data Manager.
  8. Enable the Preview check box to see a preview of the settings before you click OK to process the data. The preview is calculated only on the area in the Image window. See Preview for details on the results. To preview a different area in your image, pan and zoom to the area of interest and reenable the Preview option.
  9. To run the process on a local or remote ENVI Server, click the down arrow and select Run Task in the Background or Run Task on remote ENVI Server name. The ENVI Server Job Console will show the progress of the job and will provide a link to display the result when processing is complete. See the ENVI Servers topic for more information.

  10. Optional: Click Open in Modeler to see a model-based version of this tool that shows how the tool is constructed from individual tasks.
  11. Click OK. ENVI adds the resulting output to the Data Manager and, if the Display Result check box was enabled, adds the layer to the Layer Manager and displays the output in the Image window.