análisis de redes para la gestión de riesgos naturales
Post on 28-Mar-2015
391 Views
Preview:
DESCRIPTION
TRANSCRIPT
¿Quienes somos?
● Fernando Llorens● Unidad de Geomática● Consultora ambiental● Alumno master● Cartografía/SIG
Profesorado
● José Manuel Mira● Unidad de Geomática● SIG de la UA● Análisis Geográfico
Regional● Geodatabases● Publicación webGIS
Aspectos sobre emergencias
● Análisis escalar● Legislación
● Actuaciones → planes ● Responsables● Actores → policía, bomberos, protección civil
● Herramientas
Sahana
● Creado a partir del maremoto de 2004 en Sri Lanka
● Proyecto de código abierto (AMP: Apache-MySQL-PHP)
● Conjunto integrado de aplicaciones de manejo de desastres modulares y basados en web
● Funciona on-line y off-line
Modulos:
● Registro de personas extraviadas● Registro de organización● Registro de albergues de emergencia● Sistema de Petición/Ayuda● Sistema de coordinación de voluntarios
Ushahidi
● significa ‘testigo’ en kiswahili)● Inicialmente un mashup de GMaps para
denunciar el fraude electoral en Kenya (2007-2008)
● Enlace con redes sociales: SMS, MMS, e-mails
● Usuario-> concepto de crowdsourcing para el activismo y la transparencia social, → modelos de ‘mapeo social’ o ‘mapeo activista’
El ejemplo de Haiti● El mapa social más completo → OSM● Fotos geoposicionadas →
http://www.flickr.com/map?&fLat=18.5417&fLon=-72.3146&zl=5● http://vimeo.com/9182869
Metodología para gestión de emergencias
● Uso de redes● Definición de una red topológica
● Creación● Problemas con los datos
● Análisis de redes (network analyst)● Resultados● Decisiones
Cartografía para emergencias
● Nos preocupa conocer donde se ha producido una emergencia o prevenir una emergencia → cartografía de riesgos
● Necesitamos saber como organizar nuestros recursos:● ¿Como llegar? → asistencia bomberos● ¿A donde llevarlos? → cobertura hospitalaria
suceso
Bomberos
¿por qué una red?
¿qué es una red?
● Ver presentación Anton Patrushev● http://2010.foss4g.org/presentations_show.php?id=3284
… y de donde saco los datos
● Opción A: cómpralos● TeleAtlas →Tomtom compra TeleAtlas● Navteq → Nokia compra Navteq
● Opción B: Házlo tu mismo● Opción C: Redes sociales + OpenSource →
OSM + Postgresql + PgRouting
Análisis de redes
● Camino mínimo - TSP● Área de influencia o de servicio● Evento más cercano (closest facility)● Conectividad● Árbol de recubrimiento mínimo
Routing … a mano
- 2 rotondas* nacional de 115 m* autovía 580 m- 1 ctra nacional de 2 carriles 675 m- 1 red local (UA) de 700 m- 8 pasos de cebra, de los cuales 2 son guardias tumbados
Mi coche se ha incendiado¿cuanto tardan en llegar
los bomberos?
Cálculos
● Tiempo = 3600 * d / v * 1000● Tiempo de 600 metros a 60 km/h
3600 * 600 60 * 100 = 54 segundos
Prácticas● Instalación Piloto de Redes de GvSIG
● http://www.gvsig.org/web/projects/gvsig-desktop/official/extensiones/
● Añadir red● callejero.shp
● Añadir eventos:● Bomberos → bomberos.shp● Hospitales → hospitales.shp● Centros de salud → centros_salud.shp
● Otros: puentes → puentes.shp
Camino óptimo
1)Añadir paradas
1)Sobre red
2)Sobre nodo
2)Añadir barreras (opcional)
3)Solucionar ruta
Práctica
● Ir desde la Universidad hacia el Hospital de San Juan
● Un terremoto de magnitud X ha destrozado el puente de la autovía a su paso por Villafranqueza.
● Resolver el problema
Estudio de accesibilidad
● Cartografiar el área cubierta por una estación de bomberos con estos costes:● 30 segundos, 1, 2,3, 5 minutos
● Repetir el proceso con los 2 hospitales públicos
Closest facility
● Tenemos un incidente en una determinada localización.
● ¿A qué hospital lo llevamos?
Opciones closest facility
● Añadir costes a los nodos destino● Ejemplo: tenemos que evacuar a 200 heridos
de una determinada área, y hay que llevarlos a los hospitales, pero cada uno de ellos tiene una carga máxima
● No contemplado en el Piloto de Redes de gvSIG
Ejercicio: Riesgo de inundación
● Añadir WMS Praticova:● http://cartoweb.cma.gva.es/arcgis/services/ordena
cion_territorial/MapServer/WMSServer ● Colocar transparencia → Propiedades del raster
→ transparencia● Colocar barreras en zonas inundables● Ejecutar cálculo de camino óptimo
Ejercicio: PgRouting
● PostGIS → intersección con zonas de riesgos para obtener tramos bloqueados
● Ejecutar cálculo de rutas que no pasen por dichos tramos
● Ver los resultados en Qgis → Plugin RT SQL Layer
● Posibilidad de cambiar el coste con facilidad● Andando, en bici, aumentar/reducir velocidades
Práctica
● Accesibilidad peatonal de los centros de salud
SELECT 60 as time, ST_ConvexHull(ST_Collect(c.the_geom)) FROM callejero c,(SELECT * FROM driving_distance('SELECT gid AS id,source,target,
walk AS cost FROM callejero',2105,60,false,false) ) AS aWHERE a.edge_id = c.gid;
Análisis de redes con pgRouting
● Construir una red → receta
OSM data
Postgresql
Postgis
Osmosis
Osm2pgrouting
Mi red●
OSM data
● Planet OSM → sólo 16,04 Gb (11/03/2011)● Sólo un pedacito
● Europa → 7,3 Gb● España → 298 Mb
http://download.geofabrik.de/osm/
Finalmente ...
● Resultado → Geodatabase con redes y funcionalidades
● Vamos a verlo → pgAdmin● Tus credenciales
● Host → 172.16.224.239● Database → osmali● User: clase● Password: clase
… marchando una de rutas
-- Shortest Path Dijkstra--==========================-- análisis del grafoselect * from shortest_path ('select gid as id, source, target, longitud as cost from callejero', 5140, 918, false, false);
5140
918
… un grafo no, quiero una ruta-- Geometría con Dijkstra SELECT * FROM dijkstra_sp('callejero', 5140, 918);
● Cargar geotablas:● Callejero● vertices_tmp
● Simbolización → Añadir etiquetas● Callejero → gid → rango escala 1/5.000● vertices_tmp → id → rango escala 1/5.000
Añadir temas
Añadir plugin RT SQL Layer
● Menú → Complementos → Obtener complementos de Python
● Repositorios → Añadir repositorios de terceros
● RT SQL Layer → instalar
Shortest Path (A*)-- GrafoSELECT * FROM shortest_path_astar('SELECT gid AS id, source, target, longitud AS cost, x1, y1, x2, y2 FROM callejero',5140, 918, false, -- directed: true if the graph is directed false --has_reverse_cost: if true, the reverse_cost column will be used. );-- considerando reverse_costSELECT * FROM shortest_path_astar('SELECT gid AS id, source, target, longitud AS cost, reverse_cost, x1, y1, x2, y2 FROM callejero', 5140, 918, true, true); -- GeometríaSELECT c.gid, c.name, c.the_geom FROM callejero c,(SELECT * FROM shortest_path_astar('SELECT gid AS id, source, target, longitud AS cost, reverse_cost, x1, y1, x2, y2 FROM callejero', 5140, 918, true, true) ) AS aWHERE a.edge_id = c.gid;
Shortest Path shooting Star (A*)-- grafo (de arco a arco)-- origen gid 8940 -> Bomberos San Vicente-- destino gid 3189 -> Hospital San JuanSELECT * FROM shortest_path_shooting_star('SELECT gid as id, source, target, longitud as cost, x1, y1, x2, y2, rule, to_cost FROM callejero', 8940, 13189, true, false); -- GeometríaSELECT c.gid, c.name, c.the_geom FROM callejero c,(SELECT * FROM shortest_path_shooting_star('SELECT gid as id, source, target, longitud as cost, x1, y1, x2, y2, rule, to_cost FROM callejero', 8940, 13189, true, false) ) AS aWHERE a.edge_id = c.gid;
Restricciones
-- no se puede pasar por el tramo de autovía de VillfranquezaSELECT * FROM shortest_path_shooting_star('SELECT gid as id, source, target, longitud as cost,x1, y1, x2, y2, rule, to_cost FROM callejero WHERE gid != 1684 ', 8940, 13189, true, false);
Interoperabilidad
● Objetivo: crear un polígono irregular que identificará una zona afectada por un determinado riesgo, y por tanto cerrada al tráfico.
● Práctica con OpenJUMP● Abrir OpenJUMP. Cargar la shp de
“callejeros.shp”● Crear una capa nueva● Digitalizar un polígono → copia el WKT
… el chorizoSELECT c.gid, c.name, c.the_geom, cost FROM callejero c,(SELECT * FROM shortest_path_shooting_star('SELECT gid as id, source, target, longitud as cost,x1, y1, x2, y2, rule, to_cost FROM callejero WHERE gid NOT IN (select gid from callejero where st_intersects(the_geom,st_geometryFromText(''POLYGON (( 722060.714442849 4252039.9267600365, 721439.4394791735 4251894.319461773, 721194.1209771362 4251592.425137858, 721283.3134526977 4251268.312531858, 721847.2719218795 4250806.330164393, 722320.4013476011 4250724.109169322, 722750.3230544064 4250488.5664153695, 722979.3008968151 4250575.059246554, 723144.3631126079 4251094.193875381, 722769.9191731527 4251650.329502188, 722537.5948336222 4251901.799008963, 722060.714442849 4252039.9267600365 ))'',25830)) and the_geom && st_geometryFromText(''POLYGON (( 722060.714442849 4252039.9267600365, 721439.4394791735 4251894.319461773, 721194.1209771362 4251592.425137858, 721283.3134526977 4251268.312531858, 721847.2719218795 4250806.330164393, 722320.4013476011 4250724.109169322, 722750.3230544064 4250488.5664153695, 722979.3008968151 4250575.059246554, 723144.3631126079 4251094.193875381, 722769.9191731527 4251650.329502188, 722537.5948336222 4251901.799008963, 722060.714442849 4252039.9267600365 ))'',25830)) ', 8940, 13189, true, false)) AS aWHERE a.edge_id = c.gid;
top related