A ready-to-use curated list of Spectral Indices for Remote Sensing applications.
GitHub: github.com/awesome-spectral-indices/awesome-spectral-indices
Website: awesome-spectral-indices.github.io/awesome-spectral-indices/
Python Package: github.com/awesome-spectral-indices/spyndex
Paper: doi.org/10.1038/s41597-023-02096-0
Streamlit App: github.com/awesome-spectral-indices/espectro
Google Earth Engine: github.com/davemlz/eemont (Python), github.com/awesome-spectral-indices/spectral (JavaScript) and github.com/r-earthengine/rgeeExtra (R)
Julia Package: github.com/awesome-spectral-indices/SpectralIndices.jl
[!WARNING]
Awesome Spectral Indices is being migrated to v1. The v1 catalogue and schema are experimental and may change while the migration is in progress. Existing APIs continue to use v0 until their individual migrations are ready.
> Read v1 Explained for the current schema, implemented changes, and migration status.
[!IMPORTANT]
Call for Indices! Researchers who have published—or aim to publish—their
novel spectral indices are encouraged to add them to this repository. To add
an index, follow the Contribution Guidelines.
> If you know a spectral index that is missing, or find an error in an existing
entry, please open an
issue.
There is no deadline; the repository is continuously updated.
Table of Contents
- Citation - Properties - Formula expressions - Broad spectral and thermal bands - Radar polarizations - Hyperspectral standards - Supported functions - Constants - External variables - Multispectral - Vegetation - Water - Burn - Snow - Urban - Soil - Clouds - Multispectral + Thermal - Burn - Urban - Soil - Hyperspectral - Vegetation - Snow - Radar - Vegetation - GeologySpectral Indices
Spectral indices are widely used throughout the remote-sensing community. This repository curates classical and novel indices for different Earth-observation applications and makes their definitions available across programming languages and processing environments.
The README now follows the experimental v1 catalogue. Browse the generated CSV table, or download the raw CSV and JSON files.
Citation
If you use this work, please consider citing the following paper:
@article{montero2023standardized,
title={A standardized catalogue of spectral indices to advance the use of remote sensing in Earth system research},
author={Montero, David and Aybar, C{'e}sar and Mahecha, Miguel D and Martinuzzi, Francesco and S{"o}chting, Maximilian and Wieneke, Sebastian},
journal={Scientific Data},
volume={10},
number={1},
pages={197},
year={2023},
publisher={Nature Publishing Group UK London}
}
Properties
Each v1 catalogue entry has a case-sensitive lookup key and the following primary properties. Nested objects contain additional generated and contributor-provided information. For the complete schema and validation rules, visit v1 Explained.
| Property | Meaning |
| --- | --- |
| acronym | Required display acronym; it does not have to be unique. |
| name | Required full index name; it does not have to be unique. |
| formula | Validated v1 mathematical expression. |
| classification | Application domain, generated sensing modalities, and optional families. |
| bands | Generated spectral, thermal, and hyperspectral inputs. |
| polarizations | Generated radar-polarization inputs. |
| constants | Per-index definitions for constants used by the formula. |
| external_variables | Per-index definitions for formula inputs supplied outside spectral data. |
| reductions | Execution context for contextual reduction functions. |
| source | Source link plus generated status, metadata, and citation data. |
| contributor | Contributor GitHub profile URL or email address. |
| date_of_addition | Catalogue contribution date in YYYY-MM-DD format. |
Formula expressions
V1 formulas are validated mathematical expressions. Their variables are classified into broad spectral or thermal bands, exact or selectable-range hyperspectral inputs, radar polarizations, constants, and external variables.
Broad spectral and thermal bands
| Standard | Description | Spectral range (nm) | Sentinel-2 | Landsat-89 | Landsat-457 | MODIS |
| --- | --- | --- | --- | --- | --- | --- |
| A | Aerosols | 400–455 | B1 | B1 | — | — |
| B | Blue | 450–530 | B2 | B2 | B1 | B3 |
| G | Green | 510–600 | B3 | B3 | B2 | B4 |
| G1 | Green 1 | 510–550 | — | — | — | B11 |
| N | Near-Infrared (NIR) | 760–900 | B8 | B5 | B4 | B2 |
| N2 | Near-Infrared (NIR) 2 | 850–880 | B8A | — | — | — |
| R | Red | 620–690 | B4 | B4 | B3 | B1 |
| RE1 | Red Edge 1 | 695–715 | B5 | — | — | — |
| RE2 | Red Edge 2 | 730–750 | B6 | — | — | — |
| RE3 | Red Edge 3 | 765–795 | B7 | — | — | — |
| S1 | Short-wave Infrared (SWIR) 1 | 1550–1750 | B11 | B6 | B5 | B6 |
| S2 | Short-wave Infrared (SWIR) 2 | 2080–2350 | B12 | B7 | B7 | B7 |
| T | Thermal Infrared | 10400–12500 | — | — | B6 | — |
| T1 | Thermal Infrared 1 | 10600–11190 | — | B10 | — | — |
| T2 | Thermal Infrared 2 | 11500–12510 | — | B11 | — | — |
| WV | Water Vapour | 930–960 | B9 | — | — | — |
| Y | Yellow | 585–625 | — | — | — | — |
Radar polarizations
| Standard | Description |
| --- | --- |
| HH | Horizontal transmit, horizontal receive |
| HV | Horizontal transmit, vertical receive |
| VH | Vertical transmit, horizontal receive |
| VV | Vertical transmit, vertical receive |
Hyperspectral standards
Hyperspectral reflectance operands use integer wavelengths in nanometres.
| Standard | Meaning | Validation |
| --- | --- | --- |
| R | Reflectance at the exact integer wavelength a. | 300 <= a <= 2500 |
| R_ | Reflectance at any one wavelength in the inclusive range a to b. | 300 <= a < b <= 2500 |
Supported functions
Only the following function calls are currently accepted in v1 formulas.
Contextual spatial_* functions additionally require a matching reductions
definition.
| Function | Meaning |
| --- | --- |
| max(X, ...) | Per-pixel maximum of positional expressions. |
| min(X, ...) | Per-pixel minimum of positional expressions. |
| tanh(X) | Hyperbolic tangent of one expression. |
| log(X) | Natural logarithm of one expression. |
| kernel(X, Y) | Kernel evaluation over exactly two input expressions. |
| spatial_max(X) | Maximum of an input over the configured spatial scope. |
| spatial_min(X) | Minimum of an input over the configured spatial scope. |
| spatial_mean(X) | Arithmetic mean of an input over the configured spatial scope. |
Constants
Constant meanings are defined per index rather than globally. The following
table is generated from output/v1/constants.json and intentionally shows
only each standard, the indices sharing its description, and that contributed
description.
| Constant | Indices | Description |
| --- | --- | --- |
| a | NDWIns | Empirical parameter weighting NIR reflectance |
| alpha | BWDRVI | NIR reflectance scalar |
| alpha | NDVI4RE, RVI4RE, SAVI4RE | Parameter representing the proportion of Red Edge 3 reflectance (Sentinel-2) |
| alpha | sNIRvNDPI | Parameter to mitigate soil and snow effects. Taken from NDPI |
| alpha | NDPI, WDRVI | Weighting coefficient |
| b | NDSInw | Empirical parameter that offsets the index |
| beta | NDVI4RE, RVI4RE, SAVI4RE | Parameter representing the proportion of Red reflectance (Sentinel-2) |
| c | OCVI | Correction factor |
| c | EVI2 | Ratio of red to blue reflectances. Red = c * Blue |
| C1 | EVI, EVI2, kEVI | Coefficient 1 for the aerosol resistance term |
| C2 | EVI, EVI2, kEVI | Coefficient 2 for the aerosol resistance term |
| epsilon | EBI | Adjustment constant |
| epsilon | WCI1, WCI2, WCI3 | Adjustment constant for numerical stability |
| eta | GRARI | Mix of green and red reflectances to get properties that are between ARVI and GARI |
| fdelta | SEVI | Adjustment factor to avoid under-elimination or over-elimination |
| g | EVI, EVI2, kEVI | Gain factor |
| gamma | IAVI | Correction coefficient for upward atmospheric path radiance reaching the satellite |
| gamma | MSAVI | Primary soil line parameter. gamma = N/R (slope of the soil line, only for soil pixels/measurements) |
| gamma | NDTI4RE, SNDTI4RE, STI4RE | Weighting coefficient for the ratio SWIR1/SWIR2 (Sentinel-2) |
| gamma | ARVI, SARVI | Weighting coefficient used for reducing atmospheric effects |
| k | NIRvH2 | Slope parameter by soil. Derived by fitting a linear model on refletances against wavelengths in either the red region (675-681 nm) or the NIR region (778-800 nm) |
| L | SAVISR | Background Adjustment Factor |
| L | EVI, EVI2, GSAVI, IBI, kEVI, MNLI, NBUI, SARVI, SAVI, SAVIT | Canopy background adjustment |
| L | SNDTI | Soil adjustment factor |
| lambdaG | DVIplus, NDGI | Green central wavelength (nm) |
| lambdaN | DVIplus, FAI, FDI, NDGI, NIRvH2 | NIR central wavelength (nm) |
| lambdaN2 | CRSWIR | NIR2 central wavelength (nm) |
| lambdaR | DVIplus, FAI, FDI, NDGI, NIRvH2 | Red central wavelength (nm) |
| lambdaS1 | CRSWIR, FAI, FDI | SWIR1 central wavelength (nm) |
| lambdaS2 | CRSWIR | SWIR2 central wavelength (nm) |
| lmb | GARI, GRARI | Parameter that controls the atmospheric correction |
| n | RWI | Adjustment factor. This constant is calculated as n = median(G ** (1.0 / 2.71828)) / median(G), reducing the spatial dimension (see https://doi.org/10.1109/JSTARS.2025.3562089) |
| n | GDVI | Power operation exponent to amplify the dynamic range |
| omega | MBWI | Coefficient that maximizes the difference between water and non-water surfaces |
| sla | ATSAVI, SAVI2, TSAVI | Soil line slope. N = sla * R + slb (only for soil pixels/measurements) |
| sla | WDVI | Soil line slope. sla = N/R (only for soil pixels/measurements) |
| slb | ATSAVI, SAVI2, TSAVI | Soil line intercept. N = sla * R + slb (only for soil pixels/measurements) |
| X | ATSAVI | Negative abscissa of a reference point located on the soil line |
External variables
External variables are formula inputs supplied outside spectral data. Their descriptions are also specific to each index.
| Variable | Index | Description |
| --- | --- | --- |
| PAR | NIRvP | Photosynthetically Active Radiation |
Spectral Indices by Sensing Modality and Application Domain
Multispectral
Vegetation
- AFRI1600: Aerosol Free Vegetation Index (1600 nm)
- AFRI2100: Aerosol Free Vegetation Index (2100 nm)
- ARI: Anthocyanin Reflectance Index
- ARI2: Anthocyanin Reflectance Index 2
- ARVI: Atmospherically Resistant Vegetation Index
- AshburnVI: Ashburn Vegetation Index
- ATSAVI: Adjusted Transformed Soil-Adjusted Vegetation Index
- AVI: Advanced Vegetation Index
- BCC: Blue Chromatic Coordinate
- BNDVI: Blue Normalized Difference Vegetation Index
- bNIRv: Blue Near-Infrared Reflectance of Vegetation
- BWDRVI: Blue Wide Dynamic Range Vegetation Index
- CCI: Chlorophyll Carotenoid Index
- CIG: Chlorophyll Index Green
- CIRE: Chlorophyll Index Red Edge
- CRSWIR: Continuum Removal SWIR
- CVI: Chlorophyll Vegetation Index
- DSI: Drought Stress Index
- DSWI1: Disease-Water Stress Index 1
- DSWI2: Disease-Water Stress Index 2
- DSWI3: Disease-Water Stress Index 3
- DSWI4: Disease-Water Stress Index 4
- DSWI5: Disease-Water Stress Index 5
- DVI: Difference Vegetation Index
- DVIplus: Difference Vegetation Index Plus
- EBI: Enhanced Bloom Index
- ENDVI: Enhanced Normalized Difference Vegetation Index
- EVI: Enhanced Vegetation Index
- EVI2: Two-Band Enhanced Vegetation Index
- EVIv: Enhanced Vegetation Index of Vegetation
- ExG: Excess Green Index
- ExGR: ExG - ExR Vegetation Index
- ExR: Excess Red Index
- FCVI: Fluorescence Correction Vegetation Index
- GARI: Green Atmospherically Resistant Vegetation Index
- GBNDVI: Green-Blue Normalized Difference Vegetation Index
- GCC: Green Chromatic Coordinate
- GDVI: Generalized Difference Vegetation Index
- GEMI: Global Environment Monitoring Index
- GLI: Green Leaf Index
- GM1: Gitelson and Merzlyak Index 1
- GM2: Gitelson and Merzlyak Index 2
- GNDVI: Green Normalized Difference Vegetation Index
- GOSAVI: Green Optimized Soil Adjusted Vegetation Index
- GRARI: Atmospheric Resistant Green-Red Index
- GreenDVI: Green Difference Vegetation Index
- GRNDVI: Green-Red Normalized Difference Vegetation Index
- GRVI: Green Ratio Vegetation Index
- GSAVI: Green Soil Adjusted Vegetation Index
- GVMI: Global Vegetation Moisture Index
- IAVI: New Atmospherically Resistant Vegetation Index
- IKAW: Kawashima Index
- IPVI: Infrared Percentage Vegetation Index
- IRECI: Inverted Red-Edge Chlorophyll Index
- IRGBVI: Improved-Red-Green-Blue Vegetation Index
- KDI: Kochia Detection Index
- kEVI: Kernel Enhanced Vegetation Index
- kIPVI: Kernel Infrared Percentage Vegetation Index
- kNDVI: Kernel Normalized Difference Vegetation Index
- kRVI: Kernel Ratio Vegetation Index
- kVARI: Kernel Visible Atmospherically Resistant Index
- MCARI: Modified Chlorophyll Absorption in Reflectance Index
- MCARI1: Modified Chlorophyll Absorption in Reflectance Index 1
- MCARI2: Modified Chlorophyll Absorption in Reflectance Index 2
- MCARI705: Modified Chlorophyll Absorption in Reflectance Index (705 and 750 nm)
- MCARIOSAVI: MCARI/OSAVI Ratio
- MCARIOSAVI705: MCARI/OSAVI Ratio (705 and 750 nm)
- MGRVI: Modified Green Red Vegetation Index
- MI: Mangrove Index
- mND705: Modified Normalized Difference (705, 750 and 445 nm)
- MNDVI: Modified Normalized Difference Vegetation Index
- MNLI: Modified Non-Linear Vegetation Index
- MRBVI: Modified Red Blue Vegetation Index
- MSAVI: Modified Soil-Adjusted Vegetation Index
- MSAVI2: Modified Soil-Adjusted Vegetation Index 2
- MSI: Moisture Stress Index
- MSR: Modified Simple Ratio
- MSR705: Modified Simple Ratio (705 and 750 nm)
- mSR705: Modified Simple Ratio (705 and 445 nm)
- MTCI: MERIS Terrestrial Chlorophyll Index
- MTVI1: Modified Triangular Vegetation Index 1
- MTVI2: Modified Triangular Vegetation Index 2
- MVI: Mangrove Vegetation Index
- ND705: Normalized Difference (705 and 750 nm)
- NDDI: Normalized Difference Drought Index
- NDGI: Normalized Difference Greenness Index
- NDII: Normalized Difference Infrared Index
- NDMI: Normalized Difference Moisture Index
- NDPI: Normalized Difference Phenology Index
- NDREI: Normalized Difference Red Edge Index
- NDTI4RE: 4-band Red Edge Normalized Difference Tillage Index
- NDTillI: Normalized Difference Tillage Index
- NDVI: Normalized Difference Vegetation Index
- NDVI4RE: 4-band Red Edge Normalized Difference Vegetation Index
- NDVI705: Normalized Difference Vegetation Index (705 and 750 nm)
- NDVISR: Normalized Difference Vegetation Index with Simple Ratio
- NDYI: Normalized Difference Yellowness Index
- NGRDI: Normalized Green Red Difference Index
- NIRv: Near-Infrared Reflectance of Vegetation
- NIRvH2: Hyperspectral Near-Infrared Reflectance of Vegetation
- NIRvP: Near-Infrared Reflectance of Vegetation and Incoming PAR
- NLI: Non-Linear Vegetation Index
- NMDI: Normalized Multi-band Drought Index
- NormG: Normalized Green
- NormNIR: Normalized NIR
- NormR: Normalized Red
- NPCI: Normalized Pigments Chlorophyll Ratio Index
- NRFIg: Normalized Rapeseed Flowering Index Green
- NRFIr: Normalized Rapeseed Flowering Index Red
- OCVI: Optimized Chlorophyll Vegetation Index
- OSAVI: Optimized Soil-Adjusted Vegetation Index
- RCC: Red Chromatic Coordinate
- RDVI: Renormalized Difference Vegetation Index
- REDSI: Red-Edge Disease Stress Index
- RENDVI: Red Edge Normalized Difference Vegetation Index
- RGBVI: Red Green Blue Vegetation Index
- RGRI: Red-Green Ratio Index
- RI: Redness Index
- RVI: Ratio Vegetation Index
- RVI4RE: 4-band Red Edge Ratio Vegetation Index
- S2REP: Sentinel-2 Red-Edge Position
- SARVI: Soil Adjusted and Atmospherically Resistant Vegetation Index
- SAVI: Soil-Adjusted Vegetation Index
- SAVI2: Soil-Adjusted Vegetation Index 2
- SAVI4RE: 4-band Red Edge Soil Adjusted Vegetation Index
- SAVISR: Soil-Adjusted Vegetation Index with Simple Ratio
- SeLI: Sentinel-2 LAI Green Index
- SEVI: Shadow-Eliminated Vegetation Index
- SI: Shadow Index
- SIPI: Structure Insensitive Pigment Index
- SLAVI: Specific Leaf Area Vegetation Index
- SNDTI: Soil-Adjusted Normalized Difference Tillage Index
- SNDTI4RE: 4-band Red Edge Soil-Adjusted Normalized Difference Tillage Index
- sNIRvLSWI: SWIR-enhanced Near-Infrared Reflectance of Vegetation for LSWI
- sNIRvNDPI: SWIR-enhanced Near-Infrared Reflectance of Vegetation for NDPI
- sNIRvNDVILSWIP: SWIR-enhanced Near-Infrared Reflectance of Vegetation for the NDVI-LSWI Product
- sNIRvNDVILSWIS: SWIR-enhanced Near-Infrared Reflectance of Vegetation for the NDVI-LSWI Sum
- sNIRvSWIR: SWIR-enhanced Near-Infrared Reflectance of Vegetation
- SR: Simple Ratio
- SR2: Simple Ratio (800 and 550 nm)
- SR555: Simple Ratio (555 and 750 nm)
- SR705: Simple Ratio (705 and 750 nm)
- SRVI: Symbolic Regression Vegetation Index
- STI: Simple Tillage Index
- STI4RE: 4-band Red Edge Soil Tillage Index
- TCARI: Transformed Chlorophyll Absorption in Reflectance Index
- TCARIOSAVI: TCARI/OSAVI Ratio
- TCARIOSAVI705: TCARI/OSAVI Ratio (705 and 750 nm)
- TCI: Triangular Chlorophyll Index
- TDVI: Transformed Difference Vegetation Index
- TGI: Triangular Greenness Index
- TMTCbrightness: Thematic Mapper Tasseled Cap Brightness Feature
- TMTCfifth: Thematic Mapper Tasseled Cap Fifth Feature
- TMTCfourth: Thematic Mapper Tasseled Cap Fourth Feature
- TMTCgreenness: Thematic Mapper Tasseled Cap Greenness Feature
- TMTCsixth: Thematic Mapper Tasseled Cap Sixth Feature
- TMTCwetness: Thematic Mapper Tasseled Cap Wetness Feature
- TriVI: Triangular Vegetation Index
- TRRVI: Transformed Red Range Vegetation Index
- TSAVI: Transformed Soil-Adjusted Vegetation Index
- TTVI: Transformed Triangular Vegetation Index
- TVI: Transformed Vegetation Index
- VARI: Visible Atmospherically Resistant Index
- VARI700: Visible Atmospherically Resistant Index (700 nm)
- VI700: Vegetation Index (700 nm)
- VIG: Vegetation Index Green
- WCI1: Wheat Canopy Index (Growth Stage 1)
- WCI2: Wheat Canopy Index (Growth Stage 2)
- WCI3: Wheat Canopy Index (Growth Stage 3)
- WDRVI: Wide Dynamic Range Vegetation Index
- WDVI: Weighted Difference Vegetation Index
Water
- ANDWI: Augmented Normalized Difference Water Index
- AWEInsh: Automated Water Extraction Index
- AWEIsh: Automated Water Extraction Index with Shadows Elimination
- CWI: Coastal Water Index
- FAI: Floating Algae Index
- FDI: Floating Debris Index
- FWEI: Flood/Water Extraction Index
- LSWI: Land Surface Water Index
- MBWI: Multi-Band Water Index
- MLSWI26: Modified Land Surface Water Index (MODIS Bands 2 and 6)
- MLSWI27: Modified Land Surface Water Index (MODIS Bands 2 and 7)
- MNDWI: Modified Normalized Difference Water Index
- MuWIR: Revised Multi-Spectral Water Index
- NDCI: Normalized Difference Chlorophyll Index
- NDPonI: Normalized Difference Pond Index
- NDTI: Normalized Difference Turbidity Index
- NDVIMNDWI: NDVI-MNDWI Model
- NDWI: Normalized Difference Water Index
- NDWIns: Normalized Difference Water Index with no Snow Cover and Glaciers
- NWI: New Water Index
- OSI: Oil Spill Index
- PI: Plastic Index
- RNDVI: Reversed Normalized Difference Vegetation Index
- RWI: Rescaled Water Index
- S2WI: Sentinel-2 Water Index
- SCoWI: Subtractive Coastal Water Index
- SRWI: Symbolic Regression Water Index
- SWM: Sentinel Water Mask
- TWI: Triangle Water Index
- WI1: Water Index 1
- WI2: Water Index 2
- WI2015: Water Index 2015
- WRI: Water Ratio Index