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.

You can also write a script to perform Spectral Angle Mapper classification using the SpectralAngleMapperClassification task.

  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 file that represents the classes. Statistics from the ROIs are used as input to the Spectral Angle Mapper calculation.
  4. Specify a single Threshold Angle 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. 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. Enable the Display result check box to display the output in the view when processing is complete. Otherwise, if the check box is disabled, the result can be loaded from the Data Manager.
  7. Specify a filename and location for the Output Raster (the classification raster).
  8. Enable the Display result check box to display the output in the view when processing is complete. Otherwise, if the check box is disabled, the result can be loaded from the Data Manager.
  9. Enable the Preview check box to preview the settings before processing the data. The preview is calculated only on the area in the view and uses the resolution level at which you are viewing the image. To preview a different area in your image, pan and zoom to the area of interest and re-enable the Preview option. Depending on the algorithm being used by the tool, the preview result might be different from the final result of processing on the full extent, full resolution of the input image in the following scenarios: 1) If you zoomed out of the input raster in the view by 50%, or a percentage less than 50%, ENVI uses a downsampled image at the closest resolution level to calculate the preview, or 2) If the entire image is not visible in the view, ENVI uses the subset in the viewable area of the input image to calculate the preview.
  10. To see an ENVI Modeler version of this tool that shows how it is constructed from individual tasks, click Open in Modeler.

  11. To reuse these task settings in future ENVI sessions, save them to a file. Click the down arrow next to the OK button , select Save Parameter Values, then specify the path and filename to save to. Note that some parameter types, such as rasters, vectors, and ROIs, will not be saved with the file. To apply the saved task settings, click the down arrow and select Restore Parameter Values, then select the file where you previously saved your settings.

  12. You can run the process in the background on your computer or in the background on an ENVI Server (if available). Click the down arrow next to the OK button and select one of the following:

    • Run Task in the Background: Runs the process on your computer. This method does not use an ENVI Server. The job progress will show in the ENVI Job Console's Background Jobs tab.
    • Run Task on envi_server_name. Runs the process on the selected ENVI Server. The job progress will show in the ENVI Job Console's envi_server_name tab.

    See ENVI Job Console for details on monitoring ENVI Server jobs and viewing results. See ENVI Servers for details on configuring and using an ENVI Server.

  13. Click OK.