Why two specific colours
A satellite measures how much light a patch of ground reflects in different bands. Two matter here:
- Red (~0.65 µm) — chlorophyll absorbs it for photosynthesis, so a healthy leaf reflects little red.
- Near-infrared (NIR) (~0.85 µm) — the leaf's internal cell structure scatters it strongly, so a healthy leaf reflects a lot of NIR.
So "lots of NIR, little red" = vigorous vegetation. Bare soil reflects red and NIR about equally; water reflects almost no NIR. NDVI captures that contrast in one normalised number:
Dividing by the sum normalises it — it cancels out whether the scene is bright or dim (sun angle, haze, shadow), so it ranges a tidy −1 to +1 and is comparable across days and places. Roughly: < 0 water/snow · 0–0.2 bare soil/rock · 0.2–0.5 grass/shrub/sparse crop · 0.6–0.9 dense healthy canopy.
Play with it
Move the two reflectance sliders, or pick a surface. Watch the swatch and the NDVI gauge respond.
Why it matters
- Deforestation — clearing forest drops NDVI; that's the "greenness" signal in the BACI result. (A subtlety: oil-palm is itself green, so converting forest→palm loses less NDVI than forest→pasture — the size of the drop tells you what kind of change happened.)
- Drought & crop stress — NDVI falls weeks before a failing harvest is obvious, so it underpins famine early-warning.
- Phenology — its seasonal rise and fall tracks green-up and senescence, the pulse of an ecosystem.
Do it yourself — run it right here
NDVI is one line. Run it on a few surfaces, then edit the numbers — push the forest's NIR up and watch NDVI barely move (saturation):
On a real raster it's identical, just element-wise over arrays: ndvi = (nir - red) / (nir + red) with red = ds["B04"]; nir = ds["B05"] from an HLS/Landsat granule, then mask values outside −1…1.
The honest caveats
- Saturation — in very dense canopy NDVI flattens near its ceiling, so it stops distinguishing "lush" from "extremely lush". (EVI adds the blue band to fix this.)
- Soil & atmosphere — bright soil and haze nudge it; use surface-reflectance (atmospherically corrected) products and cloud masks.
- It's a proxy — it measures greenness, not biomass or carbon directly; pair it with lidar (GEDI) for structure.