Skip to main content

NDBI

Summary

Calculates the Normalized Difference Built-up Index (NDBI) from a multiband raster object and returns a raster object with the index values.

Discussion

The Normalized Difference Built-up Index (NDBI) uses the NIR and SWIR bands to emphasize manufactured built-up areas. It is ratio based to mitigate the effects of terrain illumination differences as well as atmospheric effects.

\(NDBI \space = \space (SWIR \space - \space NIR) \space / \space (SWIR \space + \space NIR)\)

For information about other multiband raster indexes, see the Band Arithmetic raster function.

The referenced raster dataset for the raster object is temporary. To make it permanent, you can call the raster object's save method.

Syntax

NDBI(raster, {swir_band_id}, {nir_band_id})

Parameter Explanation Data Type

raster

The input raster.

Raster

swir_band_id

The band ID of the shortwave infrared band. The ID index uses one-based indexing.

The default value is 6.

Integer

nir_band_id

The band ID of the near-infrared band. The ID index uses one-based indexing.

The default value is 5.

Integer

Return value

Data Type Explanation

Raster

The output raster object with the NDBI values.

Code sample

NDBI example

Calculates the Normalized Difference Built-up Index for a Landsat 8 image.

from arcpy.sa import *
out_ndbi_raster = NDBI("landsat8.tif", 6, 5)
out_ndbi_raster.save("C:/arcpyExamples/outputs/NDBI.tif")
NDBI example

Calculates the Normalized Difference Built-up Index for a Landsat 8 image.

# Import system modules
import arcpy
from arcpy.sa import *

# Set the analysis environments
arcpy.env.workspace = "C:/arcpyExamples/data"

# Set the local variables
in_raster = "landsat8.tif"

# Run NDBI function
out_ndbi_raster = NDBI(in_raster, 6, 5)

# Save the output
out_ndbi_raster.save("C:/arcpyExamples/outputs/NDBI.tif")