Sentinel-2 OptimizedUrban Analysis

NDBI Processor

El Índice de Edificación de Diferencia Normalizada (NDBI) se utiliza para mapear áreas urbanas y superficies construidas.

Fundamentos Técnicos

Sentinel-2 Core

Las áreas urbanas tienen una mayor reflectancia en el SWIR que en el NIR. NDBI resalta superficies impermeables y concreto.

Banda Requerida 1

B11 (SWIR-1)

Sensible a superficies urbanas.

Banda Requerida 2

B08 (NIR)

Mínima reflectancia en concreto.

Fórmula Matemática
NDBI = (SWIR - NIR) / (SWIR + NIR)

Interpretación de Valores

Detección de Superficies

> 0.1Áreas urbanas y superficies construidas (Concreto, asfalto)
-0.1 a 0.1Suelos desnudos o áreas abiertas
< -0.1Vegetación (Cuanto más bajo, más densa)

Implementación

Python SDK / LayerProcessor

El procesador NDBI es fundamental para el monitoreo del crecimiento urbano y expansión de infraestructura:

class NDBIProcessor(LayerProcessor):
    """
    Normalized Difference Built-Up Index (NDBI).
    NDBI = (SWIR - NIR) / (SWIR + NIR) -> (B11 - B08)
    Positive values indicate built-up/urban areas, while negative
    values typically represent vegetation.
    """
    @property
    def name(self) -> str:
        return "ndbi"

    @property
    def required_bands(self) -> list[str]:
        return ["B11", "B08"]

    def calculate(self, bands_data: dict) -> np.ndarray:
        swir = bands_data["B11"]
        nir = bands_data["B08"]

        np.seterr(divide='ignore', invalid='ignore')
        ndbi = (swir - nir) / (swir + nir)
        return ndbi