Normalized Difference Moisture Index
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
| Surface type | Typical NDMI |
|---|---|
| Built-up, asphalt | -0.5 to -0.2 |
| Bare soil, vegetation | -0.2 to 0 |
| Wet soil, flooded fields | 0 to 0.3 |
| Open water, lakes | 0.3 to 0.7 |
General Formula
Sensor-Specific Formulas
Most-used sensors — click to show code below
| Sensor | Provider | Formula | Band 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 —
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
| Index | Name | How it differs |
|---|---|---|
| LSWI | Land Surface Water Index | Alternative water index — different band combination |
| LWVI-1 | Leaf Water Vegetation Index 1 | Alternative water index — different band combination |
| LWVI-2 | Leaf Water Vegetation Index 2 | Alternative water index — different band combination |
| MNDWI | Modified Normalized Difference Water Index | Refined formulation for specific conditions |
Related Water Indices
References
Need help choosing?
Ask our AI assistant for sensor recommendations, code examples, or how NDMI compares to other indices for your specific use case.