Skip to content

Vegetation indices (NDVI, GNDVI, NDRE)

Vegetation indices are calculated values that reflect the condition of the crop (healthy, stressed, weed, diseased). DroneField computes them from a multispectral drone (P4M, M3M): NDVI, GNDVI, NDRE, EVI and VARI — and also from a plain RGB drone (P4R, M3E, Mavic, …): VDVI, NGRDI, ExG and VARI.

The layer is called MS index in multispectral projects and RGB index when the project has only RGB images.

NDVI — Normalized Difference Vegetation Index

Section titled “NDVI — Normalized Difference Vegetation Index”

The classic “how good is the stand” measure. From the NIR (Near Infrared) and Red bands:

NDVI = (NIR - R) / (NIR + R)

Range: −1 … +1. Positive values indicate photosynthesis; around 0 indicates bare soil, water or shadow; negative values are rare on ground imagery.

NDVI works best on dense stands. A saturated canopy (>0.85) is no longer differentiated — everything “very green” gets pushed to ~1.0.

Uses Green instead of Red:

GNDVI = (NIR - G) / (NIR + G)

More sensitive to chlorophyll content and nitrogen stress. Better at separating healthy and very-mature plants than NDVI.

Uses the Red Edge band instead of Red:

NDRE = (NIR - RE) / (NIR + RE)

The most accurate index for mature, dense stands — it does not saturate where NDVI does. The go-to index for precision N fertilisation. Use this on mature corn, wheat or rapeseed.

Video: NDVI or NDRE? Pick the wrong index and dense crops all look “healthy” while problems hide under the canopy:

These indices use only the visible red, green and blue colours of the RGB orthomosaic, so any camera drone can produce them.

IndexFormulaGood for
VDVI(2G − R − B) / (2G + R + B)general greenness; the default in RGB projects
NGRDI(G − R) / (G + R)green vs. yellow / brown — yellowing, desiccation
ExG2g − r − b (r, g, b = colour shares)separating green plants from soil — emergence, weed patches
VARI(G − R) / (G + R − B)greenness, less sensitive to haze (RGB projects only)
  • They are generated on first use: switch the RGB index layer on (or click a greyed RGB index button) and the bands are prepared from the orthomosaic once — the airplane progress bar shows the progress. After that they switch instantly.
  • In a multispectral project they appear in a second RGB row under NDVI … VARI.
  • RGB indices measure greenness, not the near-infrared response of living tissue: they react well to colour (soil, yellowing, weeds) but saturate earlier on dense canopy and cannot replace NDRE for nitrogen decisions.
  • Their values are small (mostly ≈ 0 … 0.3). Because the colour ramp is fixed to absolute values, RGB index maps mostly show orange to yellow-green tones — the deep greens of a dense NDVI map are rare. Use the Range slider to isolate the patches you are interested in.
  • AI analysis needs multispectral bands — in RGB-only projects the AI buttons are hidden.

Reading the values — what each range means

Section titled “Reading the values — what each range means”

Guide values for beginners. Each row splits the index into four bands, from bare ground to dense, healthy crop:

IndexNo plants (soil, water, dry residue)Sparse, early or stressedMediumDense, healthy
NDVI< 0.150.15–0.350.35–0.65> 0.65 (saturates above ~0.85)
GNDVI< 0.20.2–0.40.4–0.6> 0.6
NDRE< 0.10.1–0.20.2–0.35> 0.35
EVI< 0.10.1–0.250.25–0.5> 0.5
VARI< 00–0.10.1–0.25> 0.25
VDVI (RGB)< 00–0.050.05–0.15> 0.15
NGRDI (RGB)< 00–0.050.05–0.12> 0.12
ExG (RGB)< 00–0.050.05–0.2> 0.2

How to use the table:

  • The numbers are guide values. Camera, calibration, light, crop and growth stage all shift them. What matters most is the pattern within one field and one flight — the lower and higher patches relative to each other.
  • Show one class. Drag the Range slider to a row of the table to show only that class — everything outside the range becomes transparent. The colours themselves do not change: they are fixed to absolute index values (see Colour ramp).
  • Auto range. When you switch index, the range is set to this field’s own 2nd–98th percentile, so only the extreme outliers are hidden.
  • Water and shadow give negative or very low values in every index; don’t read shadows of trees or buildings as stress.
  • Dense crops: if NDVI is above ~0.8 almost everywhere, switch to NDRE — it still shows differences where NDVI is saturated.
  • RGB indices depend on sunlight and camera colour settings more than multispectral ones: fly in steady light and compare only flights made under similar conditions.

Indices are part of the processing flow:

  1. In the processing settings, leave Multispectral processing on (it switches on automatically when the project contains multispectral bands).
  2. At the end of processing the band files (band_G, band_R, band_RE, band_NIR, …) are written to the Layers/ folder; every index (NDVI, GNDVI, NDRE, EVI, VARI) is computed from them on the fly.
  3. The map shows a new MS index layer (NDVI is active by default; you switch between indices in the side panel).

When the index layer is on, a floating panel appears at the bottom-right of the map:

  • AI analysis — AI-assisted zoning and a draft spray plan from the Luna assistant (see AI vegetation analysis)
  • Index selector — multispectral: NDVI, GNDVI, NDRE, EVI, VARI, plus an RGB row VDVI, NGRDI, ExG; RGB-only projects: VDVI, NGRDI, ExG, VARI
  • Range — a two-handle slider that sets which values are shown
  • Preset ranges — one-click settings (multispectral projects)
  • Colour ramp — legend underneath
  • Export — Save as PNG, Save as JPEG, Save as GeoTIFF (QGIS)

The full index range (−1 … +1) is usually too wide for visual interpretation. DroneField offers three one-click presets:

The presets are NDVI thresholds, so they appear only in multispectral projects, and clicking one switches the panel to NDVI.

For detecting stressed or sparse canopy (water, nutrient, disease). Range: 0.10 … 0.30.

Use it for finding weak patches, gaps and stressed spots in a stand.

Fine-grained view of the developed, healthy canopy. Range: 0.50 … 0.90.

Use it for dense stands — e.g. pea before flowering — to see where development is faster / slower.

Focuses on near-zero and negative values. Range: −1.00 … 0.00.

Use it for standing water detection, bare-soil patches.

The colours are tied to fixed index values over the full −1 … +1 scale — the same value always gets the same colour, in every index and every project:

Index valueColourTypical meaning
−1.0 … −0.8BlackWater, deep shadow
around −0.5MaroonWater, wet soil
around −0.2RedBare soil
around 0.0Pale redSoil, dry residue
around 0.3OrangeSparse or stressed vegetation
around 0.6Light greenHealthy vegetation
1.0Dark greenStrong, dense canopy

Colours blend smoothly between these points.

The Range slider does not stretch the colours — it acts as a filter: pixels whose value falls outside min … max become transparent, the rest keep their fixed colour. Useful for:

  • Showing only one class from the table above (e.g. drag the handles to NDRE 0.10–0.20 to see only the weak zones)
  • Hiding soil and water so only the crop remains on the map

When you switch index, the range is set automatically to the field’s own 2nd–98th percentile. Changes take effect immediately on the map.

If processing ran without multispectral bands (e.g. a quick orthomosaic only), or an RGB index has not been generated yet, its button in the panel is greyed out (↓). Hover over it — the tooltip lists the missing bands (e.g. “NDRE – processing needed (missing bands: RE, NIR)”).

Click the greyed button and processing starts right away:

  • multispectral indices — only the missing bands are processed, existing work is not redone;
  • RGB indices — the bands are generated once from the RGB orthomosaic.

Faster than rerunning the whole processing.

The panel’s Export button offers three formats. Each exports the coloured map exactly as shown (index, range, transparency).

The visualisation is saved as an image with the colour ramp. No georeference — a simple picture, fine for email or presentations.

A georeferenced 8-bit RGBA .tif of the same coloured map:

  • Georeferenced in WGS84, EPSG:4326
  • Loads directly in QGIS, ArcGIS and other GIS programs, on top of your other layers
  • It holds colours, not index values — you cannot re-classify it

For the raw values (Float32), use the band files in the project’s Layers/ folder — band_G.tif, band_R.tif, band_RE.tif, band_NIR.tif (multispectral) or rgb_band_R.tif, rgb_band_G.tif, rgb_band_B.tif (RGB indices) — and compute the index in QGIS with the Raster Calculator.

See Exporting to QGIS for details.

Exports go into the project’s Exports/ folder, named after the index and the range (×100, n = negative):

Exports/
├─ NDVI_010-030.png
├─ NDVI_010-030.jpg
├─ NDRE_020-035.tif
└─ ...
  • Don’t base decisions on NDVI alone — no index tells the whole story. Soil sampling and ground inspection always complement it.
  • Don’t compare two different drones — P4M and M3M filter spectra differently; values are not 1:1 comparable.
  • Don’t mix morning and afternoon flights within one project — changing solar angle shifts index values.