Spectral Indices

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:

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:

  1. From the Toolbox, select Band Algebra > Spectral Indices.
  2. Select an input image. The image must contain wavelength metadata.
  3. 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.
  4. 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.

  5. 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.

  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. To reuse these task settings in future ENVI sessions, save them to a file. Click the down arrow 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.

  8. To run the process in the background, click the down arrow 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.
  9. 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:

  1. Finds the center wavelengths for each band of the input file.
  2. Determines if the center wavelengths fall within the ranges listed above (600-700 nm for red, 760-960 nm for NIR).
  3. 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