Courses¶
La course est l'objet central de l'exploitation. C'est aussi celui qui se désigne le moins simplement : un identifiant de course, seul, ne suffit jamais.
Le triplet d'identification¶
Une course se désigne par trois informations :
| Élément | Pourquoi il est nécessaire |
|---|---|
| L'identifiant de course | Il vient du GTFS et nomme le trajet dans le plan de transport |
| La date de service | La même course circule chaque jour d'exploitation |
Le gtfs_id |
Un identifiant de course n'est unique qu'au sein de son GTFS ; il faut donc savoir de quel GTFS il relève |
Omettre la date revient à demander « la course 4218 » sans dire quel jour ; omettre le gtfs_id revient à demander ses horaires sans dire selon quel plan de transport. Les deux omissions produisent des résultats plausibles mais faux — c'est le piège le plus coûteux à l'intégration.
Les trois composantes forment une clé unique : le triplet désigne une et une seule exécution de course, il n'apparaît jamais en double.
Prévu et réalisé¶
Une course porte les deux temps du système à la fois.
| Où ça se lit | Ce que ça donne | |
|---|---|---|
| Prévu | Les horaires du référentiel, voir stop-times | L'heure à laquelle la course devait passer à chaque arrêt |
| Réalisé | Les remontées des appareils, voir history | L'heure à laquelle elle est effectivement passée |
L'avance-retard n'est pas une donnée stockée à part : c'est l'écart entre ces deux lectures, arrêt par arrêt. La ponctualité en est l'agrégat sur une période.
| Endpoint | Rôle |
|---|---|
GET /api/v4/groups/<group_id>/trips |
Liste les courses sur une période |
GET /api/v4/groups/<group_id>/trips/<trip_id> |
Décrit une course |
GET /api/v4/groups/<group_id>/stop-times |
Donne les horaires prévus aux arrêts |
Passages observés aux arrêts¶
Une arrivée correspond à l'entrée dans l'état arrêté ; les remontées suivantes pendant l'attente ne créent pas de nouvelle arrivée. Un départ correspond à la sortie de cet état vers l'arrêt suivant, même si des arrêts intermédiaires ont été sautés. Les oscillations GPS vers le même arrêt et les états résiduels d'une course précédente ne confirment pas un départ.
Si plusieurs passages sont observés au même arrêt, celui dont l'écart absolu à l'horaire théorique est le plus faible est retenu. L'historique de ponctualité, le suivi des courses v5 et le flux GTFS-RT appliquent cette même règle. Cela peut corriger les statistiques de ponctualité v5 et les horaires publiés en GTFS-RT, notamment lorsqu'une dérive GPS avait fait apparaître un départ en avance au terminus.
Ce que l'exploitant peut modifier¶
Le référentiel n'est pas réécrit à chaque aléa. Une perturbation se traduit par une modification de course qui se superpose au théorique sur une période : arrêt supprimé, déplacé, ajouté, course déviée ou annulée. Voir trip-updates.
Un intégrateur ne lit pas ces modifications directement — elles ne sont pas publiées dans le spec public — mais il en voit l'effet dans les flux temps réel décrits page suivante, et dans les courses réalisées.
Les versions v4 et v5¶
v4 est la version par défaut de l'API et celle que ce guide emploie.
v5 réécrit la lecture des courses sur les événements remontés par les appareils plutôt que sur un état recalculé : la course réalisée se reconstitue depuis la suite des faits observés. Ce mode s'active groupe par groupe, et ses endpoints ne sont pas publiés dans le spec public à ce jour — une intégration externe travaille donc en v4.
Et ensuite¶
Reste à comprendre d'où viennent les remontées qui alimentent le réalisé — c'est l'objet de la page Temps réel.