SAVI: The Vegetation Index That Accounts for Bare Soil
Quick Answer: NDVI overestimates vegetation in sparse canopies because bare soil between plants contributes to the spectral signal. SAVI adds a soil brightness correction factor (L) to the NDVI formula: SAVI = ((NIR - Red) / (NIR + Red + L)) × (1 + L). With L=0.5 as the standard default, SAVI reduces soil noise by 25-50% compared to NDVI. Use SAVI in arid/semi-arid regions, early-season crops, and anywhere vegetation cover is below ~40%.
During a dryland agriculture project in North Africa, I computed NDVI for a set of newly planted fields. The values ranged from 0.15 to 0.30 — seemingly indicating light vegetation cover everywhere. But ground photos showed a mix: some fields had healthy seedlings, others were bare soil with virtually no green matter.
The problem was soil. The red, sandy soil had moderate NIR reflectance, pushing NDVI values upward even where no vegetation existed. NDVI was seeing dirt and calling it crops.
Why NDVI Struggles with Sparse Vegetation
NDVI works beautifully when vegetation is dense enough to dominate the pixel's spectral signature. In a mature wheat field or a tropical forest, the canopy covers the soil completely, and NDVI reliably tracks vegetation density and health.
But when vegetation is sparse — cover below about 40% — each pixel captures a mixture of plant and soil reflectance. The problem: different soils have different spectral signatures.
Dark soils (high organic content) have low red and low NIR reflectance. NDVI tends to underestimate vegetation over dark soils.
Bright soils (sandy, calcareous) have moderate red and moderate NIR reflectance. NDVI tends to overestimate vegetation over bright soils.
The same vegetation density can produce NDVI values that differ by 0.1–0.2 purely due to the underlying soil, which is large enough to completely confound any analysis in sparse-vegetation environments.
The SAVI Solution
Alfredo Huete published the Soil Adjusted Vegetation Index in 1988, specifically addressing this problem. The formula:
SAVI = ((NIR − Red) / (NIR + Red + L)) × (1 + L)
The addition of L in the denominator shifts the origin of the vegetation index, reducing the influence of soil background reflectance. When L = 0, SAVI reduces to NDVI. When L = 1, the index maximally corrects for soil effects.
Choosing the L Factor
The standard recommendation is L = 0.5, which works well for intermediate vegetation densities. But the optimal value depends on conditions:
| Vegetation Density | Recommended L | Scenario |
|---|---|---|
| Very low (< 15%) | 1.0 | Desert margins, newly cleared land |
| Low (15–30%) | 0.5 | Semi-arid rangelands, early crops |
| Moderate (30–60%) | 0.25 | Established croplands, open woodland |
| High (> 60%) | 0 (use NDVI) | Dense forest, mature crops |
In practice, most analysts use L = 0.5 as a universal default. The improvement over NDVI is significant even without optimization: soil-induced variation drops by 25–50%.
SAVI vs NDVI: A Concrete Example
Consider two adjacent pixels in a semi-arid landscape:
- Pixel A: Sparse shrubs on bright sandy soil. NIR = 0.30, Red = 0.18
- Pixel B: Same shrub density on dark clay soil. NIR = 0.22, Red = 0.10
NDVI calculation:
- Pixel A: (0.30 − 0.18) / (0.30 + 0.18) = 0.25
- Pixel B: (0.22 − 0.10) / (0.22 + 0.10) = 0.375
NDVI says Pixel B has 50% more vegetation. In reality, both have the same vegetation — the soil is the only difference.
SAVI calculation (L = 0.5):
- Pixel A: ((0.30 − 0.18) / (0.30 + 0.18 + 0.5)) × 1.5 = 0.184
- Pixel B: ((0.22 − 0.10) / (0.22 + 0.10 + 0.5)) × 1.5 = 0.220
SAVI narrows the gap from 0.125 (NDVI) to 0.036 (SAVI). The soil signal is substantially suppressed.
MSAVI: The Self-Adjusting Variant
The Modified SAVI (MSAVI2) eliminates the need to manually select L by calculating it automatically for each pixel:
MSAVI2 = (2 × NIR + 1 − √((2 × NIR + 1)² − 8 × (NIR − Red))) / 2
The formula looks intimidating but it's straightforward to compute. MSAVI2 adaptively adjusts the soil correction based on the amount of vegetation present in each pixel — applying more correction where vegetation is sparse and less where it's dense.
In my experience, MSAVI2 produces slightly better results than SAVI with a fixed L = 0.5, particularly in landscapes with highly variable vegetation density. The improvement is most noticeable at the sparse end of the spectrum.
When to Use SAVI Instead of NDVI
The decision is usually straightforward:
Use SAVI when:
- Vegetation cover is below ~40%
- The study area includes exposed soil (agricultural fields before full canopy closure, rangelands, savannas)
- You're mapping vegetation in arid or semi-arid environments
- Soil types vary across your study area
- You need to compare vegetation density across sites with different soil backgrounds
Stick with NDVI when:
- Vegetation is dense and fully covers the soil
- You're working in forests with closed canopy
- Temporal comparison is more important than absolute accuracy (NDVI's longer heritage makes it more comparable across studies)
- You need to compare with published NDVI thresholds or datasets
Beyond SAVI
The vegetation index literature is enormous, with dozens of indices designed for specific conditions:
- OSAVI (Optimized SAVI): Uses L = 0.16, optimized for moderate-to-high vegetation. Better in agricultural settings with some soil visibility.
- TSAVI (Transformed SAVI): Uses soil line parameters derived from the specific image, making it theoretically optimal but requiring additional calibration.
- EVI (Enhanced Vegetation Index): Adds a blue band correction for atmospheric effects alongside soil correction. Widely used in global monitoring (MODIS products).
Each has its niche, but for the common scenario of "I have sparse vegetation and NDVI is giving me unreliable numbers," SAVI with L = 0.5 solves the immediate problem with minimal complexity.
The existence of these indices reflects a broader truth about remote sensing: the "best" approach depends on your specific conditions. There's no universal vegetation index, just as there's no universal satellite. The skill is in matching the tool to the problem — and knowing when NDVI isn't enough.
