Highlights built-up areas and urban development. Higher values indicate more built-up surfaces.

Used in urban mapping.

When to use

  • Built-up area mapping and urban extent monitoring
  • Impervious surface estimation for stormwater modelling
  • Urban heat island analysis (combined with thermal data)
  • Land cover change in expanding cities
  • Material classification within urban environments
  • Urban Planning
  • Land Use Classification

Limitations

  • Material heterogeneity within urban pixels produces mixed signatures
  • Roof materials vary widely (metal, asphalt, tile, vegetation) within the same city
  • Shadow effects from tall buildings distort surface reflectance
  • Confusion with bare soil in arid environments is common
  • Temporal changes from construction require frequent updates
  • Requires sensors with SWIR bands — not available on all platforms

General Formula

NIR 770-900 nm
SWIR 1550-1750 nm

Sensor-Specific Formulas

Most-used sensors — click to show code below

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

Spectral Band Visualization — Landsat 8/9

Code Examples

Adapted for Landsat 8/9 bands —

ndbi_landsat-8-9.py

Frequently Asked Questions

What is the NDBI (Normalized Difference Built-up Index) and when should I use it?

Highlights built-up areas and urban development. Higher values indicate more built-up surfaces. Urban and built-up indices distinguish impervious surfaces from natural land cover by leveraging the unique spectral properties of construction materials like concrete, asphalt, and metal roofing. NDBI is particularly suited for urban planning, land use classification, urban growth monitoring. The general formula is (SWIR - NIR) / (SWIR + NIR), which requires NIR and SWIR spectral bands.

Which satellite sensors can I use to calculate NDBI?

NDBI 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 (B6 - B5) / (B6 + B5), while Sentinel-2 uses (B11 - B8) / (B11 + B8). Select a sensor above to see its specific band mapping.

What spectral bands does NDBI require and why?

NDBI requires NIR (770-900 nm), SWIR (1550-1750 nm). These wavelength regions target the specific spectral features that this index is designed to measure.

How do I calculate NDBI 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.

NDBI vs other urban indices

IndexNameHow it differs
HHue IndexAlternative urban index — different band combination
IIntensity IndexAlternative urban index — different band combination
NHFDNon-Homogeneous Feature DifferenceAlternative urban index — different band combination
PISIPerpendicular Impervious Surface IndexAlternative urban index — different band combination

Related Urban Indices

References

Zha et al. (2003)

Need help choosing?

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

Ask AI →