Importer des GTFS dans ArangoDB - Partie 1

illustration de l'article

Préambule

Mon objectif est d’afficher des arrêts de bus ou de train avec les horaires disponibles à une date. J’utiliserai les fichiers GTFS d’île de France Mobilité disponibles en “open-data” dans une bdd ArangoDB.

GTFS ?

GTFS est un format de fichier contenant des données de transports collectifs.

GTFS est un acronyme signifiant General Transit Feed Specification (spécification générale pour les dossier relatifs aux transports en commun).

GTFS fut développé par Google et Trimet, un organisme de transports collectifs dans l’Oregon, et conçu par Tim et Bibiana McHugh pour permettre l’import des horaires avec des fichiers CSV dans Google Maps.

Un dossier GTFS contient plusieurs fichiers ressemblant au format CSV (les valeurs des champs sont séparées par des virgules), avec une extension .txt, à l’intérieur d’un fichier ZIP de sorte à pouvoir transférer, télécharger et importer facilement les horaires, les tarifs les lignes de transports, le mode de transport, la société, les arrêts.

Ainsi il est possible d’importer un tel dossier dans une base de données graph pour pouvoir y faire des requêtes afin de récupérer les informations sur un voyage, un véhicule, une ligne ou un point d’arrêt.

GTFS n’est pas une norme officielle en France. Ce format a été repris par la communauté open-source et est utilisé la plupart du temps pour les données en open data. Les formats d’échanges officiels en France sont NEPTUNE et NETEX (norme Européenne) pour les données théoriques et SIRI pour les données en temps réel. Pour en savoir plus, le site de CHOUETTE contient toutes infos sur ces différents formats.

Le format du dossier de données

Un dossier GTFS est découpé en plusieurs fichiers .txt.

Parmi les fichiers texte il y a ceux-ci :

  • agency.txt: Cela va être une société de transport (RATP, SNCF, OPTILE …)
  • calendar.txt
  • calendar_dates.txt
  • routes.txt: Ce sont les itinéraires des lignes (RER A, Metro 6, …).
  • stop_extensions.txt
  • stops.txt: Ce sont les arrêts.
  • stop_times.txt: les horaires pour chaque station ou arrêt.
  • transfers.txt: temps de transfert (à pieds) entre deux stop.
  • trips.txt: Ce sont les trajets (ELBA, ZEUS, …).

Il y a plusieurs autres fichiers qui sont optionnels et peuvent ne pas être présents.

Vous pouvez avoir un aperçu de ce que peuvent contenir les différents fichiers sur la page github de Google Transit.

GTFS Diagram

Voici quelques liens GTFS de métropoles françaises :

Cette archive contient des fichier assez lourds. Le fichier stop_times.txt est ici le plus volumineux. Il contient plusieurs millions de lignes.

(~ 9 millions de lignes pour l’ensemble des horaires pour les différents modes de transport de l’organisme IDF mobilités).

Vous pouvez retrouver ces dossiers sur transport.data.gouv.

Données en temps réel

Un dossier GTFS fournit des données qui sont dites statiques. C’est à dire que le dossier contient les horaires théoriques ayants cours pendant une période précise. Le dossier peut être mis à jours plus ou moins fréquemment suivant les organismes et ne s’adaptent pas aux changements horaires de dernière minute.

écran

Il existe, malheureusement, des aléas dans les transports en commun qui bousculent les horaires théoriques. GTFS propose donc un format pour publié les changements horaires en temps réel.

Le dossier GTFS pour le temps réel GTFS Realtime, fait référence aux données présentes dans le dossier GTFS statique et utilise le protocol buffer language.

Attention cependant tous ceux qui utilisent les dossier GTFS statiques n’utilisent pas obligatoirement GTFS realtime pour transmettre les données en temps réel.

Comment créer et tester les données

Il existe de nombreux outils pour vérifier l’intégrité ou encore visualiser les données d’une archive GTFS.

Par exemple gtfs-validator

ou encore ScheduleViewer

Pour avoir de la documentation en français sur les différentes normes de données dans les transports en commun voir le site de CHOUETTE sur l’échange de données dans les transports collectifs : http://www.chouette.mobi/

La documentation Google https://developers.google.com/transit/gtfs

Comment utiliser les données ?

Et bien c’est ce que vont montrer les prochaines parties de l’article.

Dans la seconde partie, le but sera d’importer un dossier GTFS statique dans une base de données graph comme ArangoDB.

Dans la troisième partie, le but sera de montrer la récupération de données et l’affichage sur une carte les horaires des points d’arrêts.

Date

Auteur

Avatar Grégoire Joncour

Grégoire Joncour

Développeur

Catégories

data

Tags

#gtfs #transports