The Normalized Difference Moisture Index (NDMI) was utilized by Wilson and Sader (2002) to detect moisture levels in vegetation. NDMI is sensitive to vegetation water content using NIR and SWIR bands, making it useful for drought monitoring, water stress detection, and forest disturbance mapping.

Used in crop monitoring, forest monitoring, water detection, and fire & burn mapping.

When to use

  • Permanent and seasonal water body delineation
  • Flood mapping and emergency response
  • Wetland inventory and change detection
  • Reservoir and lake water level monitoring
  • Coastal shoreline change analysis
  • vegetation water content monitoring
  • drought assessment

Limitations

  • Dark surfaces (shadows, asphalt, dark soils) can produce false positives
  • Suspended sediments and algae alter spectral response in shallow water
  • Mixed pixels at water boundaries reduce edge accuracy
  • Atmospheric correction quality directly impacts threshold selection
  • Sun glint over open water can saturate sensors and bias values
  • Requires sensors with SWIR bands — not available on all platforms

What the values mean

-1 Definitely not water
-0.3 Dry / built-up surface
0 Possible moisture / wet soil
0.3 Open water
0.6 Deep / clear water
Surface typeTypical NDMI
Built-up, asphalt-0.5 to -0.2
Bare soil, vegetation-0.2 to 0
Wet soil, flooded fields0 to 0.3
Open water, lakes0.3 to 0.7

General Formula

NIR 780-1400
SWIR1 1550-1750

Sensor-Specific Formulas

Most-used sensors — click to show code below

SensorProviderFormulaBand Mapping
USGS/NASA(B5 - B6) / (B5 + B6)NIR→B5, SWIR1→B6
ESA(B8 - B11) / (B8 + B11)NIR→B8, SWIR1→B11
MAXAR(NIR1 - SWIR2) / (NIR1 + SWIR2)NIR→NIR1, SWIR1→SWIR2

Spectral Band Visualization — Landsat 8/9

Code Examples

Adapted for Landsat 8/9 bands —

ndmi2_landsat-8-9.py

Frequently Asked Questions

What is the NDMI (Normalized Difference Moisture Index) and when should I use it?

The Normalized Difference Moisture Index (NDMI) was utilized by Wilson and Sader (2002) to detect moisture levels in vegetation. NDMI is sensitive to vegetation water content using NIR and SWIR bands, making it useful for drought monitoring, water stress detection, and forest disturbance mapping. Water indices exploit the strong absorption of shortwave infrared and near-infrared radiation by liquid water. They are critical for delineating water bodies, assessing moisture stress in vegetation, and monitoring hydrological changes over time. NDMI is particularly suited for vegetation water content monitoring, drought assessment, water stress detection. The general formula is (NIR - SWIR1) / (NIR + SWIR1), which requires NIR and SWIR1 spectral bands.

Which satellite sensors can I use to calculate NDMI?

NDMI is supported by 4 satellite sensors in our database, including Landsat 8/9, Sentinel-2, SuperView-2, WorldView 3. Each sensor uses different band designations — for example, Landsat 8/9 uses the formula (B5 - B6) / (B5 + B6), while Sentinel-2 uses (B8 - B11) / (B8 + B11). Select a sensor above to see its specific band mapping.

What spectral bands does NDMI require and why?

NDMI requires NIR (780-1400), SWIR1 (1550-1750). Water absorbs strongly in the near-infrared and shortwave infrared portions of the spectrum, creating a measurable contrast with shorter wavelengths that penetrate the water surface.

How do I calculate NDMI in Python or R?

Both Python and R code samples are provided above. In Python, use rasterio to load individual band GeoTIFF files and numpy for the arithmetic. In R, the terra package handles raster operations efficiently. The key is to load bands as floating-point arrays to avoid integer division, and to handle division-by-zero cases where the denominator equals zero. For production use, consider applying a valid data mask to exclude no-data pixels before calculation.

Can NDMI distinguish water from other dark surfaces?

NDMI is designed to enhance water features, but dark surfaces like shadows, asphalt, and dark soils can produce similar values. For reliable water mapping, consider combining NDMI with a threshold analysis and, where possible, a secondary index to reduce false positives. Time-series analysis can also help distinguish permanent water bodies from temporary dark surfaces.

NDMI vs other water indices

IndexNameHow it differs
LSWILand Surface Water IndexAlternative water index — different band combination
LWVI-1Leaf Water Vegetation Index 1Alternative water index — different band combination
LWVI-2Leaf Water Vegetation Index 2Alternative water index — different band combination
MNDWIModified Normalized Difference Water IndexRefined formulation for specific conditions

Related Water Indices

References

Wilson, E.H. and Sader, S.A. (2002) - Detection of forest harvest type using multiple dates of Landsat TM imagery. Remote Sensing of Environment, 80, 385-396

Need help choosing?

Ask our AI assistant for sensor recommendations, code examples, or how NDMI compares to other indices for your specific use case.

Ask AI →