calc_evi: Calculate Enhanced Vegetation Index (EVI)

View source: R/calc_indices.R

calc_eviR Documentation

Calculate Enhanced Vegetation Index (EVI)

Description

Computes the Enhanced Vegetation Index (EVI), optimizing the vegetation signal with improved sensitivity in high biomass regions and reduced atmospheric aerosol influences.

Usage

calc_evi(nir, red, blue, G = 2.5, C1 = 6, C2 = 7.5, L = 1)

Arguments

nir

Near-infrared band (terra::SpatRaster or numeric).

red

Red band (terra::SpatRaster or numeric).

blue

Blue band (terra::SpatRaster or numeric).

G

Gain factor. Defaults to 2.5.

C1

Atmospheric resistance coefficient for red. Defaults to 6.0.

C2

Atmospheric resistance coefficient for blue. Defaults to 7.5.

L

Canopy background adjustment. Defaults to 1.0.

Details

EVI = G \times \frac{NIR - RED}{NIR + C1 \times RED - C2 \times BLUE + L}

Description & Purpose: EVI was developed to enhance the vegetation signal in dense canopies where NDVI saturates, while reducing canopy background noise and aerosol scattering using the blue band.

Important - Reflectance Scale: EVI constants (G = 2.5, C1 = 6.0, C2 = 7.5, L = 1.0) were calibrated for physical surface reflectance in [0, 1]. If your input data are stored in raw integer Digital Numbers (e.g., Sentinel-2 L2A [0, 10000]), divide the inputs by 10000 or use geo_index(..., scale_factor = 10000).

Value

A terra::SpatRaster (named "EVI") or numeric vector with index values.

References

Liu, H. Q., & Huete, A. (1995). A feedback based modification of the NDVI to minimize canopy background and atmospheric noise. IEEE TGRS, 33(2), 457-465.

See Also

geo_index, calc_ndvi, calc_savi

Examples

# Numeric example with surface reflectance values in [0, 1]
calc_evi(nir = 0.50, red = 0.20, blue = 0.10)

# Raster example
img <- get_example_data()
evi_rast <- calc_evi(nir = img[["nir"]], red = img[["red"]], blue = img[["blue"]])
print(evi_rast)


GeoIndexR documentation built on Oct. 10, 2026, 5:08 p.m.