Rutas en PostGIS con la nueva versión de Pgrouting (parte 3/4): osm2pgrouting

 

En esta serie de artículos sobre Pgrouting muestro el funcionamiento básico de esta biblioteca de rutas que trabaja sobre PostGIS.

Trato de actualizar el capítulo F.11 del libro de PostGIS, que al utilizar la versión anterior de pgrouting se ha quedado obsoleto.

Este material ha sido realizado por José Carlos Martínez y se publica mediante licencia Creative Commons cc_byncsa


Utilización de datos OSM

Los datos OSM por su naturaleza y por ser datos cartográficos libres son ideales para utilizarlos en programas de cálculo de rutas. En el apartado F 10, pág. 301 se estudió como importar datos OSM a PostGIS utilizando los cargadores osm2pgsql y osmosis.

También acabamos de ver que la función pgr_createTopology de pgrouting crea topología de red de una capa lineal, siempre que no existan intersecciones entre los tramos (ver pág. 309), y es precisamente esta condición la que no cumple los datos OSM. Efectivamente un tramo (way) OSM puede estar formado por más de dos nodos, donde los nodos intermedios pueden formar parte de otros tramos, por lo tanto es necesario partir dichos tramos para que únicamente sus nodos inicial y final sean los que conectan con otros tramos.

La figura siguiente (izquierda) muestra como en la cartografía OSM importada con oms2pgsql los tramos lineales OSM (ways) se cruzan entre sí sin crear nodos en las intersecciones, por el contrario la cartografía de la figura de la derecha muestra como la cartografía OSM importada con osm2pgrouting ha partido dichos tramos lineales creando nuevos registros en la tabla. Los dos tramos lineales (2 filas) de la figura de la izquierda (tramos resaltados) se han transformado en 9 tramos lineales (9 filas) en la figura de la derecha.

pgrouting5

Nodificación de cartografía OSM

Osm2pgrouting

El comando de utilidad osm2pgrouting[1] se puede instalar desde repositorios de terceros en distribuciones Ubuntu o mediante paquetes rpm para distribuciones Fedora. En MS Windows este comando se distribuye ya de forma oficial con la instalación de PostGIS. En otras distribuciones de Linux así como para obtener una versión más reciente puede ser necesaria su compilación a partir del código fuente.

Osm2pgrouting se ejecuta desde línea de comandos en una terminal del sistema. Las opciones del comando son:

  • file <fichero osm>: Nombre del fichero xml OSM a importar.
  • conf <fichero de configuración>: Ruta al archivo de configuración de osm2pgrouting. Generalmente este archivo es xml y se distribuye al instalar osm2pgrouting.
  • –skipnodes
    : Si es true no importa los nodos OSM.
  • clean
    : Elimina las tablas instaladas en un proceso de osm2pgrouting

 Opciones de conexión a PostgreSQL:

  • d <base de datos>: Nombre de la base de datos en la cual cargar las capas OSM.
  • u <usuario>: Usuario de la base de datos.
  • passwd <contraseña>: Contraseña de la conexión a la base de datos.
  • h <host>: Host de la máquina donde está el servidor de PostgreSQL. Por defecto es 127.0.0.1.
  • p <puerto>: Número de puerto para la conexión. Por defecto es 5432.

IDE Exprés con GeoNode

geonode

En esta entrada quiero mostraros un vídeo sobre GeoNode. GeoNode es un Gestor de contenido geoespacial que trata de montar todos los componentes de una Infraestructura de datos espacial de forma rápida y mediante un sencillo interfaz web.

Es gratuito y por lo tanto lo podemos instalar en nuestros propios servidores sin coste adicional.

En el último módulo del curso online de IDEs además de diseñar una página web desde cero en HTML5 y CSS3 comento algunos paquetes como OpenGeoSuite y GeoNode, y también os doy mi opinión sobre ellos.

Lo vemos al final del curso porque utiliza casi todas las tecnologías que hemos visto de forma individual y hemos aprendido a instalar, configurar y comprender de forma independiente.

En el vídeo al que hago referencia en esta entrada no solo os comento como funciona de forma práctica GeoNode sino que trato de identificar sus componentes. Lo bueno de este tipo de aplicaciones es que en unos minutos es posible montar una IDE, con su visualizador web incluido (bastante atractivo, basado en Geoexplorer), lo malo es que al menor problema, personalización o funcionalidad avanzada el usuario tendrá que recurrir a sus conocimientos para la gestión de alguna de sus componentes en las que se basa como Geoserver, PostGIS, pyCSW, Simbología SLD, GeoExplorer, creación adecuada de metadatos, etc.

En el vídeo se utiliza la distribución de OSGEO Live 8, aunque actualmente ya está disponible la OSGEO Live 9 con la versión de GeoNode 2.4 (es prácticamente igual a la vista en el vídeo). Si alguien se lanza a probarla aconsejo utilizar la última versión de OSGEO disponible.

Por cierto, aunque existe un instalable para MS Windows instala versiones de PostgreSQL y PostGIS muy antiguas, lo mejor para probarlo sin duda OSGEO Live.

Bueno, aquí os dejo el vídeo. Perdón es un poco largo (30 min.)

Especialmente interesante es GeoShape, que es otra aplicación web que se basa en GeoNode pero aporta importantes mejores, como un visualizador online basado en OpenLayers 3 mejorado (sustituyendo el basado en GeoExplorer de GeoNode), una solución para dispositivos móviles y lo más innovador que es la gestión de versionado espacial a atraves de un repositorio GeoGig.

Tenéis un vídeo del FOSS4G 2004 sobre GeoShape aquí.