Seguimiento de la expansión urbana mediante imágenes satelitales

Laboratorio D de UC Berkeley.13 de mayo de 2025

Leïla Njee Bugha , becaria de ciencia de datos de D-Lab

Las ciudades africanas serán el epicentro de la urbanización a mediados de este siglo. Las mejores estimaciones proyectan una duplicación de la población para 2050, y dos tercios de ese aumento se concentrarán en las ciudades. Por ello, es urgente que los países y las ciudades implementen una planificación urbana que fomente el desarrollo económico. Sin embargo, en países de ingresos bajos y medios, incluso tan grandes como Nigeria, existe una grave escasez de censos o recuentos de población fiables y frecuentes, y una gestión directa del desarrollo urbano limitada.

Las imágenes satelitales pueden ayudarnos en este sentido, revelando cómo se ha producido el desarrollo a lo largo del tiempo e identificando áreas con probabilidades de desarrollo futuro durante períodos más largos que los que cubren las fuentes de datos más tradicionales. Las imágenes satelitales han demostrado su utilidad para la economía del desarrollo, ya que pueden ayudarnos a estudiar cuestiones económicas clave incluso en entornos donde los datos no son fácilmente accesibles al depender de información capturada desde el espacio.

En esta publicación, mostraré cómo he utilizado la teledetección junto con la clasificación supervisada para observar la evolución de las ciudades nigerianas entre 2000 y 2020. La clasificación forestal aleatoria me permite identificar los tipos de cobertura del suelo, más específicamente el entorno construido a partir de imágenes satelitales básicas y utilizando herramientas de Ujaval Gandhi’s Spatial Thoughts , podemos usar esta clasificación para calcular qué áreas y uso del suelo se han perdido debido a la creciente urbanización en el período de tiempo estudiado.

Encontrar las imágenes satelitales adecuadas

Hay muchísimas imágenes satelitales disponibles; una forma sencilla de acceder a ellas y familiarizarse con ellas es a través del catálogo de datos del Editor de Código GEE. Para cada ráster, el catálogo de datos GEE identifica las bandas específicas que contienen los datos y también señala posibles problemas y correcciones necesarias en las imágenes seleccionadas.

En este caso, utilicé LandSat 7, que data del año 2000. Para obtener la mejor imagen posible de un año determinado, corrijo los problemas mencionados (como la reflectancia de la superficie o la eliminación de nubes) y luego agrego las imágenes de un año determinado calculando la mediana de estas imágenes. Esto me permite obtener una imagen lo más nítida posible.

Ejecución de la clasificación supervisada

El objetivo de este ejercicio es pasar de la imagen satelital anterior a una imagen que identifique el uso específico del suelo para cada uno de los 30 m de píxeles. Para ello, utilizo una clasificación supervisada, lo que significa que indico al algoritmo de aprendizaje automático las diferentes categorías que quiero identificar en las nuevas imágenes, basándome en una categorización existente. Dado que me centro únicamente en el entorno construido, solo tengo cuatro categorías: terreno baldío (sin explotar), vegetación, urbano y agua.

Los datos existentes sobre cobertura del suelo suelen tener categorías más específicas, como la Base de Datos Nacional de Cobertura del Suelo de EE. UU., que cuenta con 16 categorías, incluidas 4 para suelo urbano, o se recopilan con una resolución espacial y temporal más precisa, como la base de datos Dynamic World, con una resolución diaria de 10 m. Desafortunadamente, fuentes como Dynamic World solo se basan en años más recientes (a partir de 2015) y es más probable que los mapas de cobertura del suelo más completos cubran países de ingresos más altos.

Creación de categorías.
En lugar de basarme en datos de entrenamiento existentes, creo manualmente mi propia clasificación mediante el muestreo de observaciones para cada categoría de interés (desnuda, urbana, agua y vegetación) en la imagen original de Landsat 7 de 2020. Para ello, utilizo alfileres o pequeños polígonos en la ventana del mapa GEE; para cada categoría, creo una nueva geometría a la que le asigno un valor específico, pero con un nombre de clase similar para todas las geometrías de las cuatro clases. Para garantizar la precisión del muestreo, también comparo el mismo objeto (en este caso, la ciudad de Lagos) en diferentes estaciones.

Después de construir mis 4 geometrías para desnudo, urbano, agua y vegetación, se pueden fusionar en una variable que será utilizada por el clasificador.

Mejora de la imagen.
El clasificador es un clasificador de bosque aleatorio con 50 árboles que utiliza las geometrías fusionadas como muestra de entrenamiento. En este caso, en lugar de utilizar la imagen mediana de LandSat 7 generada anteriormente junto con mi colección de observaciones para cada categoría, también incluyo más información en la imagen para mejorar la clasificación.

En este caso, dado que me interesa distinguir entre agua, vegetación y entorno construido, incluyo bandas adicionales compuestas por índices que ayudan a resaltar estas diferentes características, como el NDVI, el NDBI, el mNDWI y el BSI. Estos índices son diferencias normalizadas entre los valores de las diferentes bandas de la imagen: por ejemplo, el NDVI (índice de vegetación de diferencia normalizada) es la diferencia normalizada entre los valores de las bandas NIR (infrarrojo cercano) y roja. Se utiliza con mayor frecuencia en teledetección como indicador de vegetación. Esto se basa en que la vegetación sana absorbe la banda roja y se refleja en la banda infrarroja cercana, por lo que valores altos del índice (cercanos a 1) indican vegetación. Las demás diferencias normalizadas utilizan el mismo principio para identificar agua (NDWI modificado) y entorno construido (NDBI e índice de superficie construida, que también es una diferencia normalizada, pero que combina múltiples bandas: infrarrojo cercano y azul por un lado, y rojo e infrarrojo de onda corta 1 por el otro).

Además, se pueden incluir en la imagen que se clasificará bandas que rastrean otros parámetros, como la pendiente. Todas estas se añaden a las bandas originales de la imagen mediana, y la imagen resultante se denomina a continuación » compuesta» .

var addIndices = function ( imagen ){ 

var ndvi = imagenormalizedDifference ([ "SR_B4" , "SR_B3" ]). rename ([ "ndvi" ]);

var ndbi = imagenormalizedDifference ([ "SR_B5" , "SR_B4" ]). rename ([ "ndbi" ]);

var mndwi = imagenormalizedDifference ([ "SR_B2" , "SR_B5" ]). rename ([ "mndwi" ]);

var bsi = expresiónimagen (

"(( X + Y ) - (A + B)) /(( X + Y ) + (A + B))" ,{

'X' : selección de imágenes ( "SR_B5" ), //swir1

'Y' : selección de imágenes ( "SR_B3" ), //rojo

'A' : selección de imágenes ( "SR_B4" ), // nir

'B' : selección de imágenes ( "SR_B1" ), // azul

}). cambiar nombre ( "bsi" );

devolver imageaddBands (ndvi). agregarBandas (ndbi). agregarBandas (mndwi). agregarBands (bsi);

};


var compuesto = addIndices (landsat7_2020);

Ejecución del clasificador.
Esto se explica mejor en el código a continuación, pero utilizamos aprendizaje automático (un primer clasificador aleatorio más adelante) para detectar la cobertura del suelo. Utilizando la muestra de entrenamiento que construimos anteriormente y con base en la imagen inicial aumentada con las bandas adicionales, el clasificador de bosque aleatorio intentará detectar (con cierto margen de error) en una nueva imagen las mismas categorías que se identificaron en la muestra de entrenamiento. Para el investigador, las únicas variables de elección aquí son el número de árboles, donde cada árbol puede considerarse como una muestra de datos extraída de la imagen para aplicar el algoritmo.

// Crea un clasificador de bosque aleatorio con 50 árboles. 

var classifier = eeClassifiersmileRandomForest ({

numberOfTrees : 50

}). train ({ // Entrena el clasificador.

// Usa los píxeles muestreados.

features : training,

// Esta es la clase que queremos predecir.

classProperty : "class" ,

// Las bandas que usará el clasificador para entrenamiento y clasificación.

inputProperties : compositebandNames ()

});


// Aplica el clasificador en la imagen de 2020.

var classified20 = compositeclassify (classifier);

Tras ejecutar el clasificador, podemos crear un nuevo mapa con la imagen clasificada. El resultado final se muestra a continuación: el rojo representa el entorno construido, el verde la vegetación y el azul el agua de la imagen compuesta de 2020. Dado que utilizamos los píxeles de Lagos de 2020 para entrenar el clasificador, esta clasificación no es tan interesante como observar lo ocurrido en 2010 y 2000, y dónde se están produciendo cambios en el entorno construido. Podemos aplicar este mismo clasificador para clasificar imágenes de 2010 y 2000.

Las siguientes imágenes muestran Lagos en 2010 (arriba) y en 2000 (abajo), según la clasificación de bosque aleatorio y la muestra de entrenamiento de 2020.

Para observar los cambios de forma más sistemática, podemos representar gráficamente la diferencia entre ambos mapas. Recordemos que cada píxel corresponde a un valor específico (desnudo, urbano, agua, vegetación) gracias a la clasificación. Hay varias maneras de hacerlo: la más sencilla es tabular la diferencia entre 2010 y 2020 y representarla gráficamente. Podemos obtener un mapa que muestre solo las áreas que han cambiado de clasificación entre 2010 y 2020.

Dado que esto no nos dice mucho sobre los cambios en el entorno construido ni sobre qué tipos de uso del suelo se han convertido en suelo urbano, podemos intentar determinar con exactitud qué suelo se ha convertido en urbano con el tiempo (véase el código a continuación). Además, podemos usar la función ee.Reducer.frequencyHistogram() para crear una matriz de transición, con la salvedad de que la matriz nos proporcionará un recuento (el número de píxeles que cambiaron de una categoría a otra), lo cual podría no ser una información útil.

## como previamente habíamos asignado el valor de  0 a una de las categorías, reasignamos nuevos valores aquí 

var classified10_new = classified10remap ([ 0 , 1 , 2 , 3 ],[ 1 , 2 , 3 , 4 ]);

var classified20_new = classified20remap ([ 0 , 1 , 2 , 3 ],[ 1 , 2 , 3 , 4 ]);


## esto nos permite realizar un seguimiento de la clase en 2010 y en 2020 , multiplicando el valor de la clase en 2010 por 100 ## el primer dígito nos da la clase en 2010 y el último la clase en 2020 var envt2020 = classified10_newmultiply ( 100 ). add (classified20_new). rename ( "transitions20" ); ## usamos esta nueva variable para identificar la tierra que no era urbana en 2010 (el primer número no es 2 ) y se ha vuelto urbana en 2020 (el dígito de las unidades es igual a 2 ) var urbandiff20_10 = envt2020eq ( 102 ). or ( envt2020eq ( 302 )). or ( envt2020eq ( 402 )); ## esta segunda variable rastrea la tierra que permaneció urbana entre 2010 y 2020 var urban20102020 = envt2020eq ( 202 ); ## esto agrega el mapa para visualizar los cambios, como se ve a continuación MapaddLayer ( urbandiff20_10clip (lagos),{ min : 0 , max : 1 , palette :[ "white" , "#7a0177" ]}, "newly urban - in 2020" );

Resumiendo la clasificación

Para finalizar correctamente la clasificación, queremos comprobar la precisión, es decir si el clasificador ha identificado correctamente las diferentes categorías en nuestras imágenes clasificadas.

Normalmente, esto se puede lograr tomando el conjunto de datos de entrenamiento y dividiéndolo en dos partes: una se utiliza para entrenar al clasificador y la otra como muestra de validación. En este caso, dado que los datos de entrenamiento se crearon directamente y existe una escasez de mapas de cobertura terrestre de Nigeria que se remonten al año 2000, la solución es encontrar otra fuente de información que sirva como validación.

Referencias

  1. https://spatialthoughts.com/(enlace externo)
  2. https://www.linkedin.com/pulse/cálculo de ndvi-ndbi-ndwi-utilizando-landsat-7-8-tek-bahadur-kshetri(link is external)
  3. Lall, Somik Vinay, J. Vernon Henderson y Anthony J. Venables. 2017. “Las ciudades de África: Abriendo puertas al mundo”. Banco Mundial, Washington, D. C. Licencia: Creative Commons Attribution CC BY 3.0

Laboratorio D de UC Berkeley

Comparte en tus perfiles

Facebook
Twitter
LinkedIn

Artículos Relacionados:

La banalidad del mal según Hannah Arendt

David Rubio, 02/07/2025. Psicología y Mente Cientos de libros, películas y documentales sobre el nazismo después, todavía constituye un “pasado desconocido”: casi nadie olvida “la gran catástrofe ocurrida en el corazón de Europa” a mediados del siglo XX, pero pocos, también, parecen haberla comprendido. Porque “los crímenes más execrables” de la historia reciente de la

Seguir leyendo »

LOS DESLAVES EN NUESTROS PAISES LATINOAMERICANOS

Gian Franco Morassutti F. Abril de 2017gfmorassutti@gmail.com En vista de los eventos ocurridos en el Río Piura en el Norte de Perú a finales del mes de Marzo de 2.017, asi como en la Ciudad de Mocoa, capital del Departamento del Putumayo, en el suroccidente de Colombia a principios del mes de Abril de 2.017,

Seguir leyendo »

Colaboración científica internacional: vital pero vulnerable

A medida que los desafíos globales se vuelven más complejos, los cimientos de la colaboración científica internacional se ven cada vez más amenazados. En esta declaración, el Consejo Directivo del Consejo Científico Internacional subraya la urgente necesidad de proteger y fortalecer la cooperación científica global, esencial no solo para el avance del conocimiento y la

Seguir leyendo »