Spectral indices are combinations of spectral reflectance from two or more wavelengths that indicate the relative abundance of features of interest. Vegetation indices are the most popular type, but other indices are available for burned areas, man-made (built-up) features, water, and geologic features.
You can also write a script to compute spectral indices using the SpectralIndices task or SpectralIndex task. You can also write your own mathematical expressions for custom indices using the Band Math tool. Or, use the Band Ratios tool to create color composites of band ratios.
See the following sections:
Spectral Indices Available in ENVI
See the Alphabetical List of Spectral Indices.
The following topics provide definitions and equations for each spectral index, grouped by feature type:
Preprocessing
This section provides guidelines on processing your imagery to ensure optimal accuracy in computing spectral indices. Not all of these steps may be necessary, depending on the data source.
Correct for Atmospheric Effects
Before computing spectral indices, raw pixel values (also called digital numbers or DN values) must be calibrated into physically meaningful units. The three most common radiometric corrections are radiance, top-of-atmosphere (TOA) reflectance, and apparent surface reflectance. Some literature suggests that spectral indices computed from any of these data types are technically correct, although each will yield different index results for the same surface conditions. However, the general consensus is that calibration to apparent surface reflectance yields the most accurate results with spectral indices. This is especially important for hyperspectral sensors such as AVIRIS and EO-1 Hyperion. Calibrating imagery to surface reflectance also ensures consistency when comparing indices over time and from different sensors.
The ENVI Radiometric Calibration tool calibrates imagery from most modern spaceborne sensors to radiance and TOA reflectance. An atmospheric correction tool such as FLAASH or QUAC can further remove the effects of atmospheric scattering and gas absorptions to produce surface reflectance data. Unless otherwise noted, ENVI's spectral indices assume that images have been calibrated to surface reflectance.
See the following tutorials for instructions on using FLAASH to correct hyperspectral and multispectral imagery:
Other tools such as Dark Subtraction, Empirical Line Correction, Flat Field Correction, and IAR Reflectance Correction provide a quick way to correct for atmospheric effects. These may be sufficient for preparing multispectral data for spectral indices, but they are not rigorous, model-based methods such as FLAASH.
Scale Reflectance Data
Data values in a reflectance image represent the percentage of reflectance (0 to 100), using floating-point values from 0 to 1.0. FLAASH and QUAC automatically scale reflectance data by 10,000 to produce integer data, which consumes less disk space than floating-point data. For example, a pixel value of 3900 represents a reflectance value of 0.39 or 39% reflectance in that band.
For normalized ratio-based indices such as NDVI and its derivatives, you do not have to scale the data values further. However, other indices may require you to scale the pixel values from 0 to 1.0. To do this, import the reflectance image from FLAASH or QUAC into the Apply Gain and Offset tool (or the ApplyGainOffset task in the ENVI API). Set the Gain Values for all bands to 0.0001. Keep the default value of 0 for Offset Values for all bands. Save this as a new image.
Create Masks
You should mask out unwanted features from your image before computing spectral indices. This will ensure the most accurate results. You can choose to do this before or after atmospheric correction. See the Masks topic for details.
Some images (for example, Landsat) contain background pixels that should be masked out prior to atmospheric correction. In these cases, you can create a mask using a Data Ignore Value.
Clouds should be removed from imagery before computing spectral indices. Here are some different options for masking clouds:
- Draw polygon regions of interest (ROIs) around clouds and other highly saturated features. Then create a masked image, where the pixels within the ROIs are masked out and set to values of "NoData." See Options for Creating a Mask.
- Use the Calculate Cloud Mask Using Fmask tool to create a cloud mask for Landsat, Sentinel-2, and some NPP VIIRS datasets.
Clip High Reflectance Values
Images that were corrected for atmospheric effects using FLAASH or QUAC may have a few pixels with reflectance values below 0 or above 100 percent. These pixels did not model well during the atmospheric correction process and could be caused by clouds or other highly saturated features in the image. These anomalous pixels can produce spectral index values that fall outside of the expected range.
You can check the range of data values by right-clicking on the image in the Layer Manager and selecting Quick Stats. In the Statistics View dialog, look for the Basic Stats table. Here is an example from a four-band reflectance image whose pixel values were previously scaled from 0 to 1:
You can see that the maximum values exceed 1.0 in all four bands. To fix this issue, use the ENVI Modeler to create a simple model that sets pixels above 1.0 to a value of 1.0. The model should use the High Clip node (and optionally, a low Clip node if any values fall below 0). In the High Clip node parameter dialog, enter an array of Threshold values of 1.0, according to the number of bands in your image. Here is an example for a four-band image:
Select the File option, then specify an output filename and location. Then run the model.
After the model runs, right-click on the clipped raster in the Layer Manager and select Quick Stats. Verify that the maximum data value is 1.0 for all bands.
Create a Layer Stack (Metaspectral Datasets Only)
Some datasets are organized into different band groups, with different spatial resolutions. ASTER, Landsat and Sentinel-2 are common examples. These are called metaspectral datasets in ENVI. The Data Manager shows the different band groups. Here is an example from a Sentinel-2 dataset:
All of the broadband greenness vegetation indices use a combination of blue, green, red, and near-infrared (NIR) wavelengths. When running the Spectral Indices tool for any of these indices, you only need to select the visible-NIR band group as input.
However, the following groups of spectral indices rely on a combination of visible, red edge, NIR, shortwave-infrared (SWIR), and/or thermal bands:
When working with a metaspectral dataset, you should create a layer stack of the different band groups if you want to compute these spectral indices. By doing this, all of the bands will be available in one file. The Burn Indices Tutorial shows an example of how to do this with Landsat imagery. Also refer to the Build Layer Stack help topic for more information.
Run the Spectral Indices Tool
The Spectral Indices tool creates an image that consists of one or more spectral indices, each as a separate band. Follow these steps:
- From the Toolbox, select Band Algebra > Spectral Indices.
- Select an input image. The image must contain wavelength metadata.
- The Spectral Indices dialog lists the indices that are available to compute, based on the wavelengths of the input raster. (See Band Assignments for details.) Select one or more indices to compute, using the Ctrl or Shift key.
-
To write the output to disk, select the File radio button and specify a filename and location. To produce output in memory only, select the Virtual radio button.
-
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 view and uses the resolution level at which you are viewing the image. See Preview for details on the results. To preview a different area in your image, pan and zoom to the area of interest and re-enable the Preview option.
- 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.
-
To reuse these task settings in future ENVI sessions, save them to a file. Click the down arrow next to the OK button and select Save Parameter Values, then specify the location 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 stored your settings.
- To run the process in the background, click the down arrow next to the OK button and select Run Task in the Background. If an ENVI Server has been set up on the network, the Run Task on remote ENVI Server name is also available. 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 ENVI Servers for more information.
- Click OK. By default, the first spectral index in the output image is displayed. Open the Data Manager to list and display individual spectral index bands.
Band Assignments
The broadband spectral index equations use terms such as "Red" or "NIR" (near-infrared). For example, NDVI uses the following equation:
This allows for some flexibility in applying the indices across a wide variety of sensors, since each sensor may have slightly different band centers for red and NIR. Unless otherwise noted, ENVI uses the following definitions for each wavelength range:
|
Minimum |
Center |
Maximum |
Blue
|
400 nm |
470 nm |
500 nm |
Green
|
500 nm |
550 nm |
600 nm |
Red
|
600 nm |
650 nm |
700 nm |
NIR
|
760 nm |
860 nm |
960 nm |
SWIR1
|
1550 nm |
1650 nm |
1750 nm |
SWIR2
|
2080 nm |
2220 nm |
2350 nm |
Imagery used for spectral indices must include definitions of the center wavelengths for each band. Using NDVI as an example, ENVI:
- Finds the center wavelengths for each band of the input file.
- Determines if the center wavelengths fall within the ranges listed above (600-700 nm for red, 760-960 nm for NIR).
- If more than one band meets the criteria for Step 2, it chooses the band nearest 650 nm for the Red term and the band nearest 860 nm for the NIR term.
Some spectral indices were designed for specific sensors. For example, the WorldView Built-Up Index uses WorldView-2 Coastal and Red Edge bands. In these cases, ENVI uses the appropriate bands from each sensor to compute the indices.
Narrowband Definitions
Other indices are designed for use with imaging spectrometers and therefore use specific wavelengths. An example is the Modified Red Edge NDVI:
In this case, ENVI assigns the band whose center wavelength is closest to each term of the equation. It allows a narrow tolerance of values for each wavelength term. If no bands fall within the allowable ranges for each wavelength, ENVI issues an error message saying the image does not contain the appropriate wavelengths for that index.
A frequently asked question is, "Why aren't the narrowband indices available for use with common sensors such as Landsat or WorldView? Shouldn't you expand the wavelength ranges of these indices to accommodate multispectral sensors?" This is by design. Narrowband indices are designed to measure the signal from specific wavelengths, and they will not be accurate if they do not adhere to the equations presented in the literature. These indices are only available for use when the sensor has bands that fall within the acceptable wavelength ranges.
The following table lists the ranges that ENVI allows for specific wavelengths used in equations. Values are in nanometers (nm).
|
Minimum |
Maximum |
wv2coastal
|
396 |
458 |
ρ430
|
380 |
480 |
ρ445
|
435 |
448 |
ρ450
|
425 |
475 |
blue
|
400 |
500 |
wv2blue
|
442 |
515 |
tm1
|
450 |
520 |
ρ500
|
480 |
520 |
ρ510
|
500 |
515 |
ρ531
|
525 |
535 |
wv2green
|
506 |
586 |
ρ550
|
540 |
560 |
green
|
500 |
600 |
ρ560
|
520 |
600 |
tm2
|
520 |
600 |
ρ570
|
560 |
575 |
wv2yellow
|
584 |
632 |
red
|
600 |
700 |
wv2redcenter
|
624 |
694 |
tm3
|
630 |
690 |
ρ670
|
620 |
720 |
ρ680
|
650 |
690 |
ρ699
|
650 |
735 |
ρ700
|
680 |
730 |
rededge
|
690 |
740 |
ρ705
|
697 |
708 |
ρ710
|
660 |
760 |
ρ715
|
714 |
716 |
ρ715 wide (VREI2)
|
710 |
719 |
ρ720
|
718 |
722 |
wv2rededge
|
699 |
749 |
ρ726
|
725 |
727 |
ρ734
|
730 |
736 |
ρ740
|
730 |
750 |
ρ747
|
742 |
748 |
ρ750
|
730 |
780 |
ρ750 narrow (RENDVI)
|
730 |
760 |
ρ795
|
720 |
800 |
ρ800
|
780 |
865 |
ρ800 wide (ARVI)
|
750 |
870 |
ρ819
|
815 |
824 |
ρ820
|
780 |
860 |
wv2nir1
|
765 |
901 |
tm4
|
760 |
900 |
ρ850
|
800 |
900 |
ρ857
|
854 |
860 |
ρ860
|
841 |
876 |
nir
|
760 |
960 |
ρ900
|
860 |
910 |
wv2nir2
|
856 |
1043 |
ρ970
|
965 |
975 |
ρ983
|
933 |
1033 |
ρ990
|
830 |
995 |
ρ1094
|
1044 |
1144 |
ρ1205
|
1155 |
1255 |
midir
|
1230 |
1250 |
cirrus
|
1360 |
1385 |
ρ1510
|
1500 |
1515 |
ρ1599
|
1590 |
1620 |
ρ1640
|
1628 |
1652 |
ρ1649
|
1645 |
1655 |
swir1
|
1550 |
1750 |
ρ1650
|
1600 |
1700 |
tm5
|
1550 |
1750 |
ρ1680
|
1670 |
1690 |
ρ1754
|
1750 |
1758 |
ρ2000
|
1980 |
2040 |
ρ2100
|
2085 |
2110 |
ρ2130
|
2105 |
2155 |
ρ2165
|
2145 |
2185 |
ρ2200
|
2170 |
2220 |
ρ2205
|
2185 |
2225 |
swir2
|
2080 |
2350 |
tm7
|
2080 |
2350 |
ρ2260
|
2235 |
2285 |
ρ2300
|
2294 |
2306 |
ρ2330
|
2295 |
2365 |
ρ2395
|
2360 |
2430 |
ρ8300
|
8125 |
8475 |
ρ8650
|
8475 |
8825 |
ρ9100
|
8925 |
9275 |
ρ10600
|
10250 |
10950 |
thermal
|
10400 |
12500 |
tm6
|
10400 |
12500 |
ρ11300
|
10950 |
11650 |
References
Gu, Z., et al. "Using Multiple Radiometric Correction Images to Estimate Leaf Area Index." International Journal of Remote Sensing 32 (2011): 9441-9454.
Guyot, G., and G. Xing-Fa. "Effect of Radiometric Corrections on NDVI-Determined from SPOT-HRV and Landsat-TM Data." Remote Sensing of Environment 49, no. 3 (1994): 169-180.
Hadjimitsis, D., et al. "Atmospheric Correction for Satellite Remotely Sensed Data Intended for Agricultural Applications: Impact on Vegetation Indices." Natural Hazards Earth System Science 10 (2010): 89-95.
Jackson, R., and A. Huete. "Interpreting Vegetation Indices." Preventive Veterinary Medicine 11 (1991): 185-200.
Price, J. "Calibration of Satellite Radiometers and the Comparison of Vegetation Indices." Remote Sensing of Environment 21 (1987): 15-27.
Ray, T. "A FAQ on Vegetation in Remote Sensing." http://www.yale.edu/ceo/Documentation/rsvegfaq.html, updated 13 October 1994. Accessed February 2014.
Steven, M., et al. "Intercalibration of Vegetation Indices from Different Sensor Systems." Remote Sensing of Environment 88 (2003): 412-422.
See Also
Band Math, Band Ratios, Burn Indices Tutorial, ENVI Modeler Example: Sentinel-2 NDVI Color Slice Classification