Configurer un traitement Import GTFS

Le GTFS (General Transit Feed Specification) est le format standard de description d'une offre de transport en commun : lignes, arrêts, itinéraires et horaires. Un jeu GTFS se présente toujours sous la forme d'une archive ZIP contenant une douzaine de fichiers texte, publiée par l'autorité de transport et mise à jour à chaque changement de l'offre. Le plugin Import GTFS télécharge cette archive et la convertit. Sa particularité, qui le distingue de tous les autres plugins : un seul ZIP produit plusieurs jeux de données — les tracés des lignes, les arrêts et les horaires de passage — reliés à un jeu parent.

💡 Ce cours ne décrit que ce qui est propre à ce plugin. Pour la mécanique commune à tous les traitements — créer un traitement, choisir l'action, planifier, suivre les exécutions, gérer les permissions et les notifications — consultez le cours Programmer des mises à jour automatiques de données.

1. Prérequis

Il vous faut l'adresse de téléchargement de l'archive GTFS. Le point d'entrée en France est transport.data.gouv.fr, le Point d'Accès National aux données de transport, où chaque réseau publie son GTFS.

Cherchez-y votre réseau, puis, dans la section Données statiques, repérez la ressource au format GTFS [1]. Le bouton Télécharger [2] porte l'adresse à recopier : faites un clic droit dessus et copiez le lien, plutôt que de télécharger le fichier.

Fiche d'une ressource GTFS sur transport.data.gouv.fr
La ressource GTFS du réseau Kicéo sur transport.data.gouv.fr.

Préférez cette adresse à celle du fichier hébergé par le réseau lui-même : c'est un permalien, il continue de désigner la bonne archive après chaque republication — ce qui est précisément ce qu'attend un traitement périodique.

La fiche indique aussi la date de dernière modification et un éventuel nombre d'avertissements de validation : de quoi juger de la fraîcheur et de la qualité de la source avant de la brancher.

2. Configuration

Le formulaire du plugin tient en deux onglets. Le premier, Jeu de données, est commun à tous les traitements. Tout ce qui est propre au GTFS se trouve dans l'onglet Paramètres.

Onglet Paramètres du traitement Import GTFS
L'onglet *Paramètres* : l'adresse de l'archive et les options de téléchargement.

2.1 L'adresse de l'archive

Collez l'adresse relevée à la section précédente dans le champ l'Url d'accès aux données sources (source zip) [1]. Les protocoles acceptés sont HTTP, HTTPS et SFTP.

Les champs Utilisateur et Mot de passe [2] ne servent qu'aux sources protégées, typiquement un dépôt SFTP privé. Un GTFS publié sur transport.data.gouv.fr est public : laissez-les vides.

2.2 Les options de téléchargement

Télécharger le fichier zip [3] indique que la source est une archive à décompresser, et non un dossier de fichiers déjà extraits. Pour un GTFS récupéré sur transport.data.gouv.fr, cochez cette case.

Supprimer les fichiers existants [4] vide le répertoire de travail avant chaque exécution. Laissez-la décochée en temps normal ; elle est utile si la structure de l'archive change et que d'anciens fichiers risquent de subsister.

3. Résultat

3.1 Les jeux de données produits

C'est ici que le plugin GTFS se distingue de tous les autres : une exécution ne produit pas un jeu de données, mais quatre.

Les quatre jeux de données produits par l'import GTFS
Une archive GTFS en entrée, quatre jeux de données en sortie.
  • [1] Le jeu parent — en métadonnées seules, sans lignes. Il porte l'archive GTFS d'origine en pièce jointe et sert de point de rattachement aux trois autres.
  • [2] - shapes — les tracés des lignes, en géométries. Chaque enregistrement est un itinéraire, avec le nom court et le nom long de la ligne ainsi que sa couleur officielle.
  • [3] - stops — les arrêts, en points géolocalisés, avec leur nom, leur code et les lignes qui les desservent.
  • [4] - stop-times — les horaires de passage : quel véhicule dessert quel arrêt, à quelle heure et dans quel ordre. C'est de loin le plus volumineux des trois.

Les trois jeux enfants reprennent l'identifiant du parent, suffixé du nom du fichier d'origine.

⚠️ L'archive contient une douzaine de fichiers, mais le plugin n'en publie que trois. Les autres (agency.txt, routes.txt, trips.txt, calendar.txt…) ne disparaissent pas pour autant : leur contenu utile est recopié dans les jeux produits. Le nom et la couleur des lignes se retrouvent dans shapes, les lignes desservies dans stops, l'origine, la destination et les jours de circulation dans stop-times. Ne cherchez donc pas un jeu « lignes » ou un jeu « calendrier » : l'information y est déjà.

Si vous repassez le traitement en mettre à jour un jeu de données, désignez le jeu parent (celui en métadonnées seules) : les trois enfants suivent automatiquement.

3.2 La carte du réseau

Le jeu - shapes étant géographique, il s'affiche directement sur une carte, sans configuration. Voici le réseau Kicéo tel qu'il ressort de l'archive — 548 tracés autour de Vannes et du Golfe du Morbihan.

Carte des tracés du réseau urbain Kicéo
Les tracés du réseau Kicéo, issus du jeu de données *shapes*.

Le jeu - stops se prête au même traitement et donne la carte des arrêts. À partir de là, les visualisations de la plateforme s'appliquent normalement.

🗺️ Ces trois jeux sont faits pour être exploités ensemble : les tracés des lignes, les arrêts et les horaires se superposent sur une même carte. Le cours Visualiser des données GTFS sur une carte reprend là où celui-ci s'arrête : poser les concepts arrêt de bus et ligne de bus, puis configurer l'atelier cartographique en calques.

Si vous avez des remarques sur ce cours, n'hésitez pas à nous les communiquer.