GTFS: un estándar para horarios de transporte público e información geográfica asociada

A lo largo de este proyecto vamos a trabajar mucho con el estándar GTFS y pensamos que sería interesante explicar qué es y para qué se utiliza.

Tipos de datos proporcionados por un feed GTFS.

Tipos de datos proporcionados por un feed GTFS. English version.

GTFS es la abreviatura de General Transit Feed Specification, una especificación desarrollada inicialmente por Google que se ha convertido en un estándar de facto y que «define un formato común para los horarios de transporte público y la información geográfica asociada a ellos». A través de estos feeds normalizados las empresas de transporte público -como por ejemplo la EMT de Madrid, Transports Metropolitans de Barcelona o TUS en Santander-  pueden ofrecer información a los desarrolladores sobre la red de transporte en su ciudad y facilitar su reutilización en aplicaciones y servicios para el ciudadano.

Un feed es un formato de datos utilizado para proporcionar a los usuarios contenidos actualizado con cierta frecuencia. Dentro del ámbito del estándar GTFS existen dos tipo:

Feeds GTFS estáticos, que son una serie de archivos CSV, comprimidos en formato ZIP, con diferentes niveles de detalle según la precisión facilitada por las empresas o agencias que lo provean.

Por otro lado se encuentran los feeds GTFS-realtime que proporcionan tres tipos de información actualizada en tiempo real sobre los servicios:

  • La posición del vehículo, con datos de eventos ya producidos («el autobús estaba en esta localización hace 1 minuto»).
  • Actualización de viaje, con información sobre eventos que ocurrirán («el autobús llegará a la parada en 4 minutos»).
  • Un servicio de alertas, con información de eventos ocurridos y que afectan al viaje («modificación de la ruta debido a la celebración de una carrera deportiva»).

Los feeds GTFS-realtime se fundamentan en el método de serialización de datos estructurados Protocol Buffers, un mecanismo útil para la comunicación entre programas o para almacenar datos. Si bien es conceptualmente similar al formato JSON, en este caso los datos se encuentran en formato binario, por lo tanto en código no legible por los humanos. Esto le confiere su mayor virtud:  rapidez en el procesado y en el envío de los datos.

Un uso común de los feeds GTFS y GTFS-realtime es crear aplicaciones móviles relacionadas con el transporte de viajeros que muestran información sobre la programación de horarios de algún servicio. No obstante, una app que obtenga cada 10 o 15 segundos un feed GTFS-realtime completo se puede encontrar con la descarga de una gran cantidad de datos que, además, el dispositivo móvil debería procesar. Esto supone un coste elevado en la conexión y un consumo de batería innecesario.

Por lo tanto, los GTFS están destinados más bien a ser consumido por un servidor intermedio que suministre en todo momento a las aplicaciones móviles solo la información relevante que necesiten. Así se reduce significativamente la cantidad de datos transferidos al dispositivo.

Arquitectura utilizada para el proyecto RISUM.

Arquitectura utilizada para el proyecto RISUM. English version.

En el caso del proyecto que estamos llevando a cabo en Santander, utilizamos los datos de posición y velocidad que proporciona la flota de autobuses del Servicio de Transporte Urbano de Santander (TUS) y los combinamos con otras fuentes de datos abiertos para caracterizar todo el sistema de transporte de la ciudad (red viaria, líneas de transporte, paradas, niveles de tráfico, etc.).

Demostración del uso de feeds GTFS-realtime mediante un panel de información OneBusAway . Imagen: Oran Viriyincy

Demostración del uso de feeds GTFS-realtime mediante un panel de información OneBusAway . Imagen: Oran Viriyincy

Los datos en tiempo real de los autobuses son proporcionados por TUS y facilitados por Organicity a través de su plataforma de experimentación. El proyecto RISUM procesa estos datos y los combina con otros para proveer los feeds GTFS con información que alimentarán a los planificadores de viajes.

Los feeds GTFS-realtime no solo pueden ser utilizados por aplicaciones móviles. Un ejemplo claro sobre el uso de los resultados de este experimento puede verse en la imagen de la izquierda, donde se observa un panel con información horaria del servicio de autobuses de la ciudad de Seattle en tiempo real. En ellos es posible la integración de todas las líneas de autobuses de la ciudad sin importar la compañía explotadora de cada una de ellas.

Guardar

Guardar

Guardar

Guardar

Guardar

Guardar