Modelando rutas de autobuses para feeds GTFS

Uno de los retos al que se enfrenta nuestro experimento es disponer de la descripción correctamente todas las rutas de autobuses del servicio de transporte urbano de Santander. Es decir, trazar la ruta que los autobuses realicen incluyendo las variantes horarias si las tienen (ruta diurna o nocturna, por ejemplo), localizar de forma precisa las paradas y asociar cada una de ellas a un identificativo de ruta específico.

Organicity ofrece la Assets discovery API que permite enumerar y explorar todos los activos disponibles de la plataforma OrganiCity. Entre esos recursos se encuentran busLine, busRoute y busstation que deberían detallar las líneas de autobuses, rutas y paradas del sistema de transporte de autobuses urbanos de Santander. No obstante, comprobamos que los resultados que proporciona la API no eran correctos por lo que tuvimos que realizar una digitalización completa de estos tres tipos de elementos a partir de los archivos PDF que el TUS ofrece en su página web.

Miembros de una relación para la ruta 16 del TUS.

Para ello, elegimos trabajar con JOSM (Java OpenStreetMap Editor), el editor gráfico más completo para crear y modificar datos de OpenStreetMap (OSM). La razones fueron varias:

  • JOSM es una herramienta muy versátil, ligera y rápida para crear datos geoespaciales con la que tenemos mucha experiencia incluso en su uso fuera del ámbito de OpenStreetMap debido a su rapidez para generar cartografía vectorial. Está muy orientado a facilitar la labor de digitalización, permite la validación básica de topología con la detección y corrección semiasistida de determinados errores, posee potentes e ingeniosas herramienta de dibujo y facilita acceder a servicios WMS de manera muy rápida.
  • JOSM dispone de una gran cantidad de complementos que amplían sus capacidades como editor de datos geográficos, incluyendo el tratamiento de archivos GTFS estáticos.
  • JOSM permite establecer y validar relaciones, primitivas esenciales para construir rutas de autobuses en OSM.
  • Los datos creados pueden ser subidos fácilmente a la base de datos geográfica de OpenStreetMap y están disponibles de forma libre.

El proceso conlleva la creación de lo que en OSM se denomina relaciones: conjuntos de etiquetas y listas ordenadas de elementos geográficos que modelan las relaciones lógicas o geográficas entre objetos.

Existen varios tipos de relaciones, entre ellas la denominada route, que nos permite crear una selección ordenada de cada uno de los miembros que componen la línea de autobús (tramos de vía por donde circula y las paradas asignadas) y la asignación de los atributos (etiquetas) que definen la ruta: identificador de la línea, denominación, operador, paradas de cabecera, etc.

El resultado es un mapa de detalle de todo el sistema de transporte urbano de Santander que permite conocer el recorrido completo y las detenciones en cada línea, así como saber en un determinado tramo de calle o parada de autobús cuáles son las líneas que pasan por ella.

Ha sido necesario programar en Python un software para volcar los datos a una base de datos SpatiaLite y reorganizar la dirección de los arcos que conforman la líneas de autobuses. El objetivo es obtener un archivo shapes.txt que describe las trayectorias físicas que toman los vehículos a través de una secuencia ordenada de puntos. Aunque esta información es opcional, nos permite mostrar correctamente las rutas de tránsito en un mapa, mejorando el conjunto de datos GTFS.

Mapa de OpenStreetmap con las rutas de autobús creadas.

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar