Paso a Paso: Mapeo de inundaciones mediante imágenes de radar con Python

A continuación, se muestra una versión estática de Jupyter Notebook para el mapeo automático de extensiones de inundaciones basado en imágenes de radar. Se puede acceder al cuaderno mediante la plataforma de GitHub o ejecutar directamente en Google Colab, a través de los de los siguientes enlaces: GitHub stars Open In Colab

El objetivo de esta práctica recomendada es determinar la extensión de las áreas inundadas. El uso de imágenes satelitales de radar de apertura sintética (SAR) para el mapeo de la extensión de las inundaciones constituye una solución viable con un procesamiento rápido de imágenes, que proporciona información de inundaciones casi en tiempo real a las agencias de ayuda para apoyar la acción humanitaria. La alta confiabilidad de los datos, así como la ausencia de restricciones geográficas, como la accesibilidad del sitio, enfatizan el potencial de esta tecnología. Este cuaderno de Jupyter Notebook cubre toda la cadena de procesamiento desde la consulta de datos, la descarga, hasta la exportación de un producto final de máscara de inundación mediante la utilización de imágenes de acceso libre SAR Sentinel-1. El flujo de trabajo de la herramienta sigue la práctica recomendada de ONU-SPIDER sobre la cartografía de inundaciones basada en radar, tal y como se ilustra en el siguiente cuadro. Después de ingresar las especificaciones del usuario, los datos de Sentinel-1 se pueden descargar directamente desde el Copernicus Open Access Hub . Posteriormente, los datos se procesan y almacenan en una variedad de formatos de salida. Estructura del archivo El archivo Jupyter Notebook constituye el directorio de origen. Los datos adicionales están contenidos en subcarpetas. Las imágenes de Sentinel-1 deben almacenarse en una subcarpeta llamada 'entrada'. Si no se proporciona ninguna imagen, la subcarpeta se creará automáticamente al acceder y descargar datos a través de la herramienta Copernicus Open Access Hub . Si hay un archivo de área de interés (AOI) disponible (formatos compatibles: GeoJSON, SHP, KML, KMZ), debe colocarse en una subcarpeta llamada 'AOI'. Si no hay ninguno, un mapa interactivo permitirá dibujar manualmente el área de interés. Por razones de selección automática de archivos, se recomienda colocar solo un archivo AOI en la carpeta correspondiente. Sin embargo, si existen varios archivos, los archivos GeoJSON tendrán prioridad, seguidos de SHP, KML y KMZ. Los datos procesados se almacenan en una subcarpeta llamada * 'salida' *. Para ejecutar la herramienta sin interacción del usuario, todas las entradas deben estar claramente definidas. Esto significa que la subcarpeta 'entrada' debe incluir una sola imagen Sentinel-1 y la subcarpeta 'AOI' un solo archivo de área de interés AOI. Todos los demás escenarios requieren interacción manual, como descargar datos o definir un AOI. Limitaciones Existen limitaciones a la hora de detectar vegetación inundada e inundaciones en áreas urbanas debido a la retrodispersión de doble rebote. Si el agua y el no agua se distribuyen de manera muy desigual en la imagen, es posible que el histograma no tenga un mínimo local claro, lo que da lugar a resultados incorrectos en el proceso de binarización automática. Importante El cuaderno de Jupyter Notebook aprovecha la API ESA SNAP y requiere la instalación de la ágil interfaz SNAP-Python. Haga clic aquí para obtener más información. Además, las extensiones de Jupyter Notebook Codefolding, ExecuteTime y Table of Contents (2) se utilizan para un mejor rendimiento. ## Entradas de Usuario Especifique en la celda de código a continuación i) el tipo de polarización que se procesará, ii) si los datos se descargarán del Copernicus Open Access Hub con el respectivo período de detección y detalles de inicio de sesión, y iii) si los resultados intermedios deben ser graficados durante el proceso.

polarizaciones a procesar

polarisations = 'VH' # 'VH', 'VV', 'ambas'

descargar imagen del Copernicus Open Access Hub

download = {
'imageDownload'     : True,                   # 'True', 'False'
'period_start'      : [2020, 11, 5],          # formato: [año, mes, día]
'period_stop'       : [2020, 11, 13],         # formato: [año, mes, día]
'username'          : 'username',             # nombre de ususario
'password'          : 'password'              # contraseña

}

mostar resultados intermedios si se selecciona 'True'

plotResoluts = True # 'True', 'False'

Inicialización Esta sección carga los módulos de Python relevantes para el siguiente análisis e inicializa las funcionalidades básicas.

Click para iniciar

Descarga de Imagen Esta sección permite el acceso y la descarga de datos interactivos desde el Copernicus Open Access Hub . Si se proporciona un archivo AOI en la subcarpeta 'AOI', la herramienta buscará y muestrará las imágenes Sentinel-1 disponibles. Si no se proporciona un archivo AOI, la barra de búsqueda en el lado izquierdo del mapa interactivo se puede utilizar para encontrar la región deseada. A continuación, el archivo AOI se puede seleccionar y editar manualmente mediante la herramienta de dibujo. Al hacer clic en el botón Buscar debajo del mapa, se cargarán las imágenes disponibles. Si se extraen varias AOI, solo se considera la última. Al pasar el cursor sobre una imagen de Sentinel-1, se muestran el índice de mosaico y la fecha de ingestión. La siguiente tabla resume la información sobre todos los mosaicos disponibles y permite la descarga. Los datos se almacenan en la subcarpeta 'entrada' creada automáticamente. Open Access Hub mantiene un archivo en línea de al menos el último año de productos para su descarga inmediata. El acceso a productos anteriores que ya no están disponibles en línea activará automáticamente la recuperación de los archivos a largo plazo. La descarga real puede ser iniciada por el usuario una vez que se restauran los datos (dentro de las 24 horas).

Click para iniciar

Cargando... Conectado con éxito al Copernicus Open Access Hub. El producto 9d5fefa0-7d53-461c-804a-61fb01ce64b5 está en línea. Comenzar descarga. Downloading: 100%|██████████| 991M/991M [00:44<00:00, 22.3MB/s] MD5 checksumming: 100%|██████████| 991M/991M [00:02<00:00, 391MB/s] ## Procesamiento Si existe más de una imagen de Sentinel-1 en la subcarpeta 'entrada', el usuario puede seleccionar cuál se utilizará para el procesamiento. El subconjunto se genera de acuerdo con el archivo AOI en la subcarpeta 'AOI'. Si no se proporciona un archivo AOI, un mapa interactivo permite dibujar y descargar el área de interés haciendo clic en el botón 'Exportar' - dentro del mapa o cargar directamente un archivo AOI almacenado localmente. Posteriormente, se realizan los siguientes pasos de procesamiento:

  1. Aplicar el archivo de órbita: El archivo de órbita proporciona información precisa sobre la posición y la velocidad del satélite. Con base en esta información, se actualizan los vectores de estado de la órbita en los metadatos del producto. Los archivos de órbita precisos están disponibles de días a semanas después de la generación del producto. Dado que este es un paso de procesamiento opcional, la herramienta continuará el flujo de trabajo en caso de que el archivo de órbita aún no esté disponible para permitir aplicaciones de mapeo rápido. 
  2. Eliminación de ruido térmico: la corrección de ruido térmico se aplica a los productos Sentinel-1 Nivel-1 GRD que aún no se han corregido. 
  3. Calibración radiométrica: El objetivo de esta calibración de SAR es proporcionar imágenes en las que los valores de los píxeles se puedan relacionar directamente con la retrodispersión de la escena de radar. Aunque las imágenes de SAR no calibradas son suficientes para un uso cualitativo, las imágenes de SAR calibradas son esenciales para el uso cuantitativo de los datos de SAR. 
  4. Filtrado de puntos: las imágenes SAR tienen texturas inherentes llamadas puntos que degradan la calidad de la imagen y dificultan la interpretación de las características. Estos puntos son causados por la interferencia aleatoria constructiva y destructiva de las ondas de retorno desfasadas pero coherentes y retro-dispersadas por la dispersión elemental dentro de cada celda de resolución. La reducción de ruido de estos puntos se puede aplicar mediante filtrado espacial o procesamiento multilook. En este paso se utiliza un filtro de tipo Lee con un tamaño de ventana de 5 x 5. 
  5. Corrección del terreno: Debido a las variaciones topográficas de una escena y la inclinación del sensor de satélite, las distancias en las imágenes SAR pueden distorsionarse. Los datos que no se dirijan directamente a la ubicación del nadir del sensor tendrán cierta distorsión. Por lo tanto, las correcciones del terreno están destinadas a compensar estas deformaciones para permitir una representación geométrica realista en la imagen. 
  6. Binarización: para obtener una máscara de inundación binaria, se analiza el histograma para separar el agua de los píxeles que no son de agua. Debido a la geometría lateral de los sensores SAR y la superficie del agua comparativamente lisa, solo una proporción muy pequeña de retrodispersión se refleja en el sensor, lo que genera valores de píxeles comparativamente bajos en el histograma. El umbral utilizado para la separación se calcula automáticamente utilizando las implementaciones de scikit-image y un uso combinado del método mínimo y el método de Otsu . La capa GlobCover de la Agencia Espacial Europea se utiliza para enmascarar los cuerpos de agua permanentes. 
  7. Filtrado de manchas: En este paso se utiliza un filtro de mediana con un tamaño de ventana de 7 x 7.

Click para iniciar

Seleccionado: S1AIWGRDH1SDV20201111T11454820201111T114613035200041C270A8E.zip Subconjunto generado correctamente. 1. Aplica el archivo de orbita: --- 0.02 seconds --- 2. Eliminación de ruido térmico: --- 0.01 seconds --- 3. Calibración radiométrica: --- 0.03 seconds --- 4. Filtrado de ruido (Speckle): --- 0.01 seconds --- 5. Corrección Topográfica: --- 0.05 seconds --- 6. Binarización: --- 14.39 seconds --- 7. Filtrado de ruido (Speckle): --- 0.01 seconds --- 8. Graficar: --- 55.75 seconds --- ## Exportar Datos La máscara de inundación procesada se exporta como un GeoTIFF, SHP, KML y GeoJSON y se almacena en la subcarpeta 'salida'. Un mapa interactivo muestra la máscara de inundación.

Click para iniciar

Exportando... 1. GeoTIFF: --- 31.88 seconds --- 2. SHP: --- 23.53 seconds --- 3. KML: --- 0.55 seconds --- 4. GeoJSON: --- 1.68 seconds --- Archivos almacenados correctamente en /home/eouser/Desktop/Recommended Practices/salida.