DESARROLLO EN PYTHON + GRASS + FLO2D: UNA HISTORIA EN PROCESO 22 de noviembre de 2017 Verónica Fierro Gustavo Barbet MOMENTO DE SEGURIDAD Atención esquina Antonio Varas - Eliodoro Yáñez El día de ayer 21/11/2017 fue atropellada una señora en la esquina de Antonio Varas y Eliodoro Yáñez… PEATONES: • Prestar especial atención al semáforo ya que la luz verde para peatones es de menor duración a la de vehículos • Estar atento a las condiciones del tránsito, idealmente tener contacto visual con el vehículo que doblará • Tener cuidado con el cruce de ciclistas por ciclovía VEHÍCULOS: • Estar atento al cruce de peatones y ciclistas • Disminuir velocidad al doblar © Arcadis 2015 Temas 1. Introducción / Historia 2. GRASS + Python: hidrología 3. GRASS + Python + FLO2D: modelación hidráulica bi-dimensional 1. INTRODUCCIÓN / HISTORIA Análisis Espacial y Sistemas de Información Geográfica (SIG) Un Sistema de Información Geográfica es una herramienta capaz de integrar, almacenar, editar, analizar, compartir y mostrar la información geográficamente referenciada. Permitiendo establecer una relación entre datos (información) y puntos específicos en la tierra © Arcadis 2015 GRASS GRASS es un software SIG de licencia libre que puede soportar información tanto de tipo raster como vectorial y posee herramientas para procesar esta información • Visualizar en 2D y 3D • Representar de archivos raster y vectoriales • Más de 350 funciones • Manipular imágenes • Importar y exportar la mayor parte de los formatos comerciales • Extensible y programable © Arcadis 2015 Tipos de datos Raster Vectores • • • • Representación mediante puntos, líneas o polígonos. Estructura de datos más compleja, pero ocupar menos memoria Permite tener límites bien definidos Ej: Río, estaciones meteorológicas © Arcadis 2015 • • • • Representación mediante celdas con información Estructura de datos sencilla, pero ocupa más memoria Precisión depende del tamaño de la celda Ej: Modelación de elevación digital (DEM) ¿QUÉ ES PYTHON? Lenguaje de programación + Intérprete Algo de historia… Curso: Hidroinformática aplicada • Uso de Python + GRASS • Automatización de tareas 2014 Curso: Introducción al SIG Libre • • • • Creación de herramientas de trabajo en hidrología Automatización de tareas Creación de herramienta de creación de grillas de modelación en FLO2D 2016 2017 2016 • Desarrollo: Python+GRASS+FLO2D Análisis de información georreferenciada en GRASS Capacitación: Uso de FLO2D • Creación de grillas mediante Global Mapper + Octave • Operación FLO2D ? 2018… … ¿qué sigue? … Análisis hidrológico © Arcadis 2015 21 February 2020 10 2. PYTHON + GRASS: HERRAMIENTAS DE ANÁLISIS HIDROLÓGICO ¿ Qué hacemos con GRASS? • Delimitar cuencas y determinar parámetros geomorfológicos de cuencas mediante comandos del tipo: “r.slope.aspect elevation=Altura slope=slope aspect=aspect format=percent” “r.univar slope” • Con resultados del tipo Trabajo rutinario © Arcadis 2015 Gasto de tiempo innecesario Rutina para determinar parámetros geomorfológicos Ventajas: Interfaz gráfica de fácil uso Información de salida de uso directo Ahorra tiempo © Arcadis 2015 ¿Qué necesitamos? 1. Raster de elevaciones Ej: DEM regiones 2. Vector (shape) con el área de la cuenca 3. Rutina python © Arcadis 2015 Importante! Mantener una ruta de trabajo ¿ Cómo funciona la rutina? 1. Correr rutina en ventana de comandos de GRASS 2. Opción de importar vector Seleccionar archivo a importar 3. Elegir archivos de trabajo © Arcadis 2015 LISTO! ¿ Qué tenemos como resultado? Archivo resumen con parámetros geomorfológicos: • Área • Alturas mínima, máxima y media • Pendiente media de la cuenca Gráfico Curva Hipsométrica de la cuenca © Arcadis 2015 3. PYTHON + GRASS + FLO2D: MODELACIÓN HIDRÁULICA / INTEGRACIÓN OTRO SOFTWARES FLO 2D Modelo numérico para simulación hidráulica en 2 dimensiones • Modelación de topografías complejas • Modelación de zonas de baja pendiente (desembocaduras) • Delimitación de zonas de inundación © Arcadis 2015 • En 2 dimensiones porque considera dos dimensiones principales de movimiento FLO 2D © Arcadis 2015 … hablando de topografías complejas FLO 2D © Arcadis 2015 … hablando de topografías complejas FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D Cada celda tiene al menos información de: • Elevación • Manning • Posición (X,Y) Elemento que define el límite de la modelación Elemento por donde puede “salir el agua” © Arcadis 2015 FLO 2D Número ID de la celda Elemento donde “aparece el agua” © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D © Arcadis 2015 FLO 2D ¿dónde parte la historia? En capacitación: 1. Metodología para generar la malla de modelación + 2. Operación de FLO2D Trabajo de información georreferenciada: raster de topografía, etc. Generación de archivos de entrada en formato FLO2D Trabajo rutinario Gasto de tiempo notable © Arcadis 2015 Cambiar la resolución de análisis significa rehacer todo FLO 2D Archivos de entrada © Arcadis 2015 FLO 2D + GRASS + Python Archivos de entrada + © Arcadis 2015 FLO 2D + GRASS + Python Pruebas mini raster © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca © Arcadis 2015 Todo parte con el DEM: digital elevation model FLO 2D + GRASS + Python Pruebas con Tinguiririca Exportación raster formato .xyz © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca = © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca: Éxito!! © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca: Éxito!! © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca: Éxito!! © Arcadis 2015 FLO 2D + GRASS + Python Pruebas con Tinguiririca: Algunos números 180 Tiempo generación grilla 160 Tiempo de cómputo FLO 2D Tiempo [min] 140 120 y = 0,0002x1,4238 R² = 0,9997 100 80 60 y = 3E-05x1,4469 R² = 0,9986 40 20 0 0 © Arcadis 2015 5000 10000 Celdas [u] 15000 20000 FLO 2D + GRASS + Python Pruebas con Tinguiririca: Algunos números 180 Tiempo generación grilla 160 Tiempo de cómputo FLO 2D Teimpo [min] 140 120 100 y = 83,743x-2,842 R² = 0,9997 80 60 40 20 y = 20,147x-2,888 R² = 0,9985 0 0 © Arcadis 2015 0,5 1 1,5 2 Resolución [m] 2,5 3 3,5 FLO 2D + GRASS + Python Ideas / conclusiones 1.- El trabajo con raster es simple / transparente i. En términos de programación, casi todo se resuelve con un: for i = 1 : N_celdas 2.- Modificar la resolución de análisis es simplísimo: i. Es posible generar modelos de prueba simple rápidamente ii. Es posible darle precisión con facilidad, iii. El punto i. da una intuición de los tiempos de cálculo 3.- La rutina es medio ineficiente para generar la malla: ¿valdrá la pena optimizar? 4.- General: la modelación en 2D es más costosa computacionalmente, pero sus resultados son más “transparente” / más “simples”: Resultado(i) = (Vel_x(i), Vel_y(i), Vel(i), h(i)) © Arcadis 2015 FLO 2D + GRASS + Python ¿Qué sigue? 1. La salida de datos de FLO2D no es amena Trabajo con datos de salida: Animaciones, mapas vectoriales, etc © Arcadis 2015 Velocidad Velocidad Velocidad Profundidad total en x en y Elevación de agua agua FLO 2D + GRASS + Python ¿Qué sigue? 2. Aprovechar las bases de datos que existen © Arcadis 2015 Raster de cobertura de suelo de Chile: hidrología + hidráulica FLO 2D + GRASS + Python ¿Qué sigue? 3. Profundizar en FLO2D … © Arcadis 2015 • • • • Uso elementos especiales (levee) Manejo de reología (Cristóbal) ¿Qué pasa con lo 3D? … ¿CONSULTAS ?