calc_savi: Calculate Soil Adjusted Vegetation Index (SAVI)

View source: R/calc_indices.R

calc_saviR Documentation

Calculate Soil Adjusted Vegetation Index (SAVI)

Description

Computes the Soil Adjusted Vegetation Index (SAVI) to minimize soil brightness and background influences, using a canopy background adjustment factor L.

Usage

calc_savi(nir, red, L = 0.5)

Arguments

nir

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

red

Red band (terra::SpatRaster or numeric).

L

Soil adjustment factor. Defaults to 0.5.

Details

SAVI = \frac{NIR - RED}{NIR + RED + L} \times (1 + L)

Description & Purpose: In arid, semi-arid, or sparsely vegetated regions, exposed soil background alters red and NIR reflectance, distorting standard vegetation indices like NDVI. SAVI introduces a soil line calibration constant L that stabilizes the index.

Parameter L:

  • L = 0.5 (default): Optimal for intermediate to moderate vegetation cover.

  • L = 1.0: Recommended for very low / sparse vegetation cover.

  • L = 0.25: Recommended for higher vegetation densities.

  • When L = 0, SAVI is mathematically identical to NDVI.

Value

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

References

Huete, A. R. (1988). A soil-adjusted vegetation index (SAVI). Remote Sensing of Environment, 25(3), 295-309.

See Also

geo_index, calc_osavi, calc_msavi, calc_ndvi

Examples

# Numeric scalar calculation
calc_savi(nir = 0.7, red = 0.2, L = 0.5)

# Raster layer calculation
img <- get_example_data()
savi_rast <- calc_savi(nir = img[["nir"]], red = img[["red"]], L = 0.5)
print(savi_rast)


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