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 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.
Un dossier GTFS est découpé en plusieurs fichiers .txt.
Parmi les fichiers texte il y a ceux-ci :
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.
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).
Rennes (réseau STAR) : https://data.explore.star.fr/explore/dataset/tco-busmetro-horaires-gtfs-versions-td/table/
Strasbourg (reseau CTS) : https://transport.data.gouv.fr/datasets/gtfs-strasbourg/
Vous pouvez retrouver ces dossiers sur transport.data.gouv.
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.
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.
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
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.