Mapeo de Inundaciones Utilizando Google Earth Engine
Google Earth Engine es una plataforma de procesamiento geoespacial en la nube que está disponible para científicos, investigadores y desarrolladores para estudios de nuestro planeta. Google Earth Engine contiene un catálogo de imágenes satelitales y conjuntos de datos geoespaciales como Sentinel-1. Utiliza JavaScript como lenguaje de programación y se puede abrir una cuenta gratuita.
Hoy realizaremos el mapeo de inundaciones ocurridas en agosto de 2017 en Houston Texas (Estados Unidos) ocasionadas por el huracán Harvey.
Visualizar los imágenes de radar Sentinel-1
- Empiece por abrir Google Earth Engine
- Busque datos Sentinel-1
Se abrirá una ventanilla con una descripción de los datos mostrando:
-los pasos que se siguieron para procesar los datos (remoción de ruidos térmicos, calibración radiométrica, corrección topográfica)
-Bandas y resolución
-metadatos (los parámetros importantes son el modo y las propiedades orbitales descendente o ascendente)
Definición del área de interés
- Ampliamos la zona de Texas en Los Estados Unidos
- Seleccionamos el icono “draw a line” (1)
- Dibujamos un polígono similar a este sobre el área de interés (2)
- Cambiamos el nombre de “geometry” a “roi” (3) (siglas de: region of interest).
Tal como se indica a continuación.
Seleccionar los datos Sentinel-1
A través del código siguiente seleccionamos la colección de imágenes Sentinel-1 y definimos las propiedades como: Modo de Adquisición (IW); Polarización (VV y VH); Dirección de adquisición (descendente) y Resolución (10 metros)
// Load Sentinel-1 C-band SAR Ground Range collection (log scale, VV, descending)
var collectionVV = ee.ImageCollection('COPERNICUS/S1_GRD')
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV'))
.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
.filterMetadata('resolution_meters', 'equals' , 10)
.filterBounds(roi)
.select('VV');
print(collectionVV, 'Collection VV');
// Load Sentinel-1 C-band SAR Ground Range collection (log scale, VH, descending)
var collectionVH = ee.ImageCollection('COPERNICUS/S1_GRD')
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VH'))
.filter(ee.Filter.eq('orbitProperties_pass', 'DESCENDING'))
.filterMetadata('resolution_meters', 'equals' , 10)
.filterBounds(roi)
.select('VH');
print(collectionVH, 'Collection VH');
Damos clic en Run del menú superior y en la ventanilla derecha mostrará los resultados para VV y VH. El número de imágenes va a variar según el tamaño de su área de interés.
Filtramos los datos Sentinel-1 por Fecha
El siguiente código permite filtrar las imágenes de radar en una fecha determinada. En este caso seleccionamos las imágenes adquiridas antes del evento de inundación entre el 17 y 19 de agosto de 2019 y, las imágenes adquiridas durante la inundación entre el 20 y 31 de agosto de 2017.
//Filtrar los Datos Sentinel-1 por Fecha y creamos un mosaico con las imágenes //antes del evento y la imagen durante del evento.
var beforeVV = collectionVV.filterDate('2017-08-17', '2017-08-19').mosaic();
var duringVV = collectionVV.filterDate('2017-08-29', '2017-08-31').mosaic();
var beforeVH = collectionVH.filterDate('2017-08-17', '2017-08-19').mosaic();
var duringVH = collectionVH.filterDate('2017-08-29', '2017-08-31').mosaic();
//muestra las imagenes sentinel encontradas en la consola
print(beforeVV, 'Before VV');
print(duringVV, 'During VV');
print(beforeVH, 'Before VH');
print(duringVH, 'During VH');
Seleccione Run del menú superior. La ventana derecha mostrará los resultados para: imágenes antes del evento (VV y VH) e imágenes durante del evento (VV y VH).
Visualizamos las imágenes de radar en el mapa base
//Mostramos los mosaicos creados, Display map
Map.centerObject(roi, 7);
Map.addLayer(duringVV, {min:-15,max:0}, 'During flood VV', 0);
Map.addLayer(afterVV, {min:-15,max:0}, 'After flood VV', 0);
Map.addLayer(duringVH, {min:-25,max:0}, 'During flood VH', 0);
Map.addLayer(afterVH, {min:-25,max:0}, 'After flood VH', 0);
Dando clic en la casilla de cada una de las imágenes, podemos ver cada uno de los mosaicos: antes y durante la ocurrencia del evento de inundación.
Mapeo de la mancha de inundación con una composición RGB (rojo-verde-azul)
El siguiente código permite realizar una composición de color RGB, donde los canales Rojo y Azul contienen la polarización VH durante el evento y en el verde colocamos la polarización VH antes del evento. Tal como se ve a continuación.
// composición de color RGB
Map.addLayer(duringVH.addBands(beforeVH).addBands(duringVH), {min: -25, max: -8},'BVH/AVV/AVH composite', 0);
Damos clic en Run en el menú superior y luego vamos al panel de control de Layers (capas) en la parte superior derecha del mapa y seleccionamos BVH/AVV/AVH composite. El resultado es el siguiente.
El color verde muestra las áreas afectadas por inundaciones ocasionadas por el huracán Harvey. Las áreas brillantes corresponden a la ciudad de Houston. El color negro corresponde a fuentes de agua (lago, ríos, mar) existentes.
Para mayor información revisar la serie de artículos a cerca de imágenes de radar de apertura sintética que se relacionan a continuación.