Référence GTFS-realtime

Un flux GTFS-realtime permet aux agences de transports en commun de fournir aux utilisateurs des informations en temps réel sur les perturbations de leur service (stations fermées, lignes non opérationnelles, retards importants, etc.), la position de leurs véhicules et les heures d'arrivée prévues.

La version 2.0 des spécifications du flux est discutée et documentée sur ce site.

Définition des termes

Required

Dans la version 2.0 ou ultérieure du flux GTFS-realtime, la colonne Required décrit les champs qui doivent être définis par un producteur, afin que les données relatives aux transports en commun soient valides et cohérentes dans une application d'utilisation du flux.

Les valeurs suivantes sont utilisées dans le champ Required :

  • Required : ce champ doit être défini par le producteur de flux GTFS-realtime.
  • Conditionally required : ce champ est obligatoire sous certaines conditions, qui sont décrites dans le champ Description. En dehors de ces conditions, le champ est facultatif.
  • Optional : ce champ est facultatif et ne doit pas être obligatoirement mis en œuvre par les producteurs. Cependant, si les données sont disponibles dans les systèmes de localisation automatique des véhicules sous-jacents (par exemple, VehiclePosition timestamp), il est recommandé aux producteurs de définir ces champs facultatifs lorsque cela est possible.

Remarque : Les exigences sémantiques n'ont pas été définies dans la version 1.0 du flux GTFS-realtime, par conséquent les flux gtfs_realtime_version 1 peuvent ne pas répondre à ces exigences (voir la proposition des exigences sémantiques pour en savoir plus).

Cardinality

Le champ Cardinality représente le nombre d'éléments susceptibles d'être indiqués dans un champ particulier, avec les valeurs suivantes :

Référez-vous toujours aux champs Required et Description pour déterminer si un champ est "Required", "Conditionally required" ou "Optional". Veuillez mentionner gtfs-realtime.proto pour la cardinalité de Protocol Buffer.

Types de données Protocol Buffer

Les types de données Protocol Buffer suivants sont utilisés pour décrire les éléments du flux :

  • message : type complexe
  • enum : liste de valeurs fixes

Champs expérimentaux

Les champs indiqués comme étant expérimental sont susceptibles d'être modifiés et n'ont pas encore été officiellement mis en œuvre dans la spécification. Un champ expérimental peut être officiellement mis en œuvre à l'avenir.

Index des éléments

Éléments

message FeedMessage

Désigne le contenu d'un message de flux. Chaque message du flux consiste en une réponse à une requête HTTP GET appropriée. Un flux en temps réel est toujours défini par rapport à un flux GTFS existant. Tous les identifiants d'entité sont résolus dans le cadre du flux GTFS.

Champs

Nom du champ Type Required Cardinality Description
header FeedHeader Required One Métadonnées relatives à ce flux et au message du flux.
entity FeedEntity Conditionally required Many Contenu du flux. Si des informations en temps réel sont disponibles pour le système de transports en commun, ce champ doit être défini. Si ce champ est vide, les utilisateurs doivent supposer qu'aucune information n'est disponible pour le système.

message FeedHeader

Désigne les métadonnées relatives à un flux incluses dans les messages du flux.

Champs

Nom du champ Type Required Cardinality Description
gtfs_realtime_version string Required One Version des spécifications du flux. La version actuelle est 2.0.
incrementality Incrementality Required One
timestamp uint64 Required One Cet horodatage détermine l'heure à laquelle le contenu de ce flux a été créé (à l'heure du serveur). Valeur exprimée à l'heure POSIX (autrement dit, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC). Pour éviter tout décalage entre les systèmes produisant et consommant des informations en temps réel, il est fortement conseillé de définir l'horodatage en fonction de l'heure du serveur. L'utilisation de serveurs Stratum 3 ou même de strate inférieure est tout à fait acceptée, étant donné que les décalages de quelques secondes au plus sont tolérés.

enum Incrementality

Détermine si la récupération en cours est incrémentielle.

  • FULL_DATASET : cette mise à jour de flux écrase toutes les informations en temps réel précédentes pour le flux. Par conséquent, cette mise à jour doit fournir un aperçu complet de toutes les informations en temps réel connues.
  • DIFFERENTIAL : actuellement, ce mode n'est pas pris en charge et le comportement n'est pas spécifié pour les flux qui utilisent ce mode. La liste de diffusion du flux GTFS-realtime fait l'objet d'une discussion au sujet de la spécification complète du comportement relatif au mode DIFFERENTIAL. La documentation sera mise à jour lorsqu'une décision aura été prise.

Valeurs

Valeur
FULL_DATASET
DIFFERENTIAL

message FeedEntity

Désigne une définition (ou mise à jour) d'une entité dans le flux de transports en commun. Si l'entité n'est pas supprimée, au moins l'un des champs '"trip_update", "vehicle" ou "alert" doit être défini.

Champs

Nom du champ Type Required Cardinality Description
id string Required One Identifiant de flux unique pour cette entité. Les identifiants sont utilisés uniquement pour fournir un support à l'incrémentalité. Les entités réelles référencées par le flux doivent être spécifiées par des sélecteurs explicites (voir EntitySelector ci-dessous pour en savoir plus).
is_deleted bool Optional One Détermine si cette entité doit être supprimée. Ce champ doit être défini uniquement pour les flux dont le champ "Incrementality" est défini sur DIFFERENTIAL. Ce champ ne doit PAS être défini pour les flux dont le champ "Incrementality" est défini sur FULL_DATASET.
trip_update TripUpdate Conditionally required One Données sur les retards au départ d'un trajet en temps réel. Au moins l'un des champs "trip_update", "vehicle" ou "alert" doit être défini. Ils ne peuvent pas tous être vides.
vehicle VehiclePosition Conditionally required One Données relatives à la position en temps réel d'un véhicule. Au moins l'un des champs "trip_update", "vehicle" ou "alert" doit être défini. Ils ne peuvent pas tous être vides.
alert Alert Conditionally required One Données relatives à l'alerte en temps réel. Au moins l'un des champs "trip_update", "vehicle" ou "alert" doit être défini. Ils ne peuvent pas tous être vides.

message TripUpdate

Mise à jour en temps réel de la progression d'un véhicule sur un trajet. Veuillez également consulter la discussion générale sur les entités des mises à jour de trajet.

En fonction de la valeur du champ "ScheduleRelationship", le champ "TripUpdate" peut indiquer :

  • un trajet qui respecte les horaires indiqués ;
  • un trajet qui suit un itinéraire, sans horaire fixe ;
  • un trajet qui a été ajouté ou supprimé en fonction des horaires.

Les mises à jour peuvent être appliquées à des arrivées/départs futurs prévus, ou à des événements passés qui se sont déjà produits. Dans la plupart des cas, les informations relatives à des événements passés sont une valeur mesurée, par conséquent, leur valeur d'incertitude recommandée est 0. Il peut néanmoins exister des cas où cette règle ne s'applique pas, il est donc autorisé d'indiquer une valeur d'incertitude différente de 0 pour les événements passés. Si l'incertitude d'une mise à jour n'est pas 0, soit la mise à jour est une prédiction approximative pour un trajet qui ne s'est pas terminé, soit la mesure n'est pas précise ou la mise à jour constituait une prédiction du passé qui n'a pas été vérifiée après la fin de l'événement.

Sachez que la mise à jour peut décrire un trajet déjà effectué. Si c'est le cas, une mise à jour du dernier arrêt du trajet est suffisante. Si l'heure d'arrivée au dernier arrêt est dans le passé, le client en déduira que l'ensemble du trajet est dans le passé (il est néanmoins possible, bien que cela soit sans conséquence, d'effectuer des mises à jour pour les arrêts précédents). Cette option est la plus pertinente pour un trajet qui s'est terminé plus tôt que prévu, même si selon les horaires indiqués, le trajet est toujours en cours à l'heure actuelle. La suppression des mises à jour pour ce trajet peut faire croire au client que le trajet est toujours en cours. Sachez que le fournisseur du flux est autorisé à supprimer définitivement les mises à jour antérieures, mais qu'il n'y est pas obligé. Il s'agit de l'unique cas où cette pratique s'avère concrètement utile.

Champs

Nom du champ Type Required Cardinality Description
trip TripDescriptor, Required One Le trajet auquel ce message s'applique. Une limite d'une entité "TripUpdate" est définie pour chaque instance de trajet réelle. Si aucune entité n'est définie, cela signifie qu'aucune information de prédiction n'est disponible. Cela ne signifie pas que le trajet se déroule selon les horaires prévus.
vehicle VehicleDescriptor Optional One Informations supplémentaires sur le véhicule qui effectue le trajet.
stop_time_update StopTimeUpdate Conditionally required Many Mises à jour de StopTimes (futures, c'est-à-dire les prédictions et dans certains cas, passées, autrement dit celles qui se sont déjà produites). Les mises à jour doivent être triées en fonction des champs "stop_sequence" et s'appliquer à tous les arrêts suivants, jusqu'au prochain champ "stop_time_update" défini. Au moins un champ "stop_time_update" doit être défini pour le trajet, à moins que le champ "trip.chedule_relationship" ne présente la valeur CANCELED. Si le trajet est annulé, aucun champ "stop_time_updates" ne doit être défini.
timestamp uint64 Optional One Heure à laquelle la progression en temps réel du véhicule a été mesurée. Valeur exprimée à l'heure POSIX (c'est-à-dire le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC).
delay int32 Optional One Écart actuel entre les horaires prévus et réels du trajet. Le champ "delay" doit être défini uniquement lorsque la prédiction est donnée par rapport à un horaire existant dans le flux GTFS.
La valeur du champ "delay" (exprimée en secondes) peut être positive (le véhicule est en retard) ou négative (le véhicule est en avance). La valeur 0 signifie que le véhicule est exactement à l'heure.
Les informations relatives au retard, mentionnées dans le champ "StopTimeUpdate" prévalent sur celles qui sont indiquées dans le champ "trip-level". Ainsi le retard d'un trajet est uniquement propagé jusqu'au prochain arrêt présentant une valeur de retard spécifiée dans le champ "StopTimeUpdate".
Il est fortement conseillé aux fournisseurs de flux d'indiquer une valeur dans le champ "TripUpdate.timestamp", afin de spécifier l'heure de la dernière mise à jour de la valeur de retard, de manière à indiquer la fraîcheur des données.
Attention : Ce champ est encore expérimental et susceptible d'être modifié. À l'avenir, il pourra être officiellement mis en œuvre.

message StopTimeEvent

Désigne les informations de délai pour un seul événement prévu (arrivée ou départ). Le délai correspond à un retard et/ou une heure estimée, ainsi qu'à l'incertitude.

  • Le champ "delay" doit être utilisé lorsqu'une prédiction est donnée par rapport à un horaire existant dans GTFS.
  • Le champ "time" doit être défini, peu importe qu'il y ait un horaire prévu ou non. Si les champs "time" et "delay" sont tous les deux renseignés, c'est le champ "time" qui prévaut (bien que normalement, le champ "time", s'il est défini pour un trajet prévu, doive être égal à l'heure prévue dans le flux GTFS + delay).

Le champ "uncertainty" s'applique de façon égale aux champs "time" et "delay". Le champ "uncertainty" indique de manière approximative l'erreur attendue pour le retard réel (sachez toutefois que son incidence précise sur les statistiques n'est pas déterminée pour le moment). Il est possible que le champ "uncertainty" soit défini à 0, notamment pour des trains qui sont pilotés avec un contrôle de temporisation effectué par ordinateur.

Champs

Nom du champ Type Required Cardinality Description
delay int32 Conditionally required One La valeur du champ "delay" (exprimée en secondes) peut être positive (le véhicule est en retard) ou négative (le véhicule est en avance). La valeur 0 signifie que le véhicule est exactement à l'heure. Au moins l'un des champs "delay" ou "time" doit être indiqué dans StopTimeEvent. Ces champs ne peuvent pas être tous les deux vides.
time int64 Conditionally required One Événement en tant qu'heure absolue. Valeur exprimée à l'heure POSIX (autrement dit, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC). Au moins l'un des champs "delay" ou "time" doit être indiqué dans StopTimeEvent. Ces champs ne peuvent pas être tous les deux vides.
uncertainty int32 Optional One Si le champ "uncertainty" est omis, l'incertitude est considérée comme inconnue. Pour indiquer une prédiction totalement certaine, définissez le champ "uncertainty" à 0.

message StopTimeUpdate

Désigne une mise à jour en temps réel des événements d'arrivée et/ou de départ pour un arrêt donné d'un trajet. Veuillez également consulter la discussion générale sur les mises à jour de l'heure des arrêts dans la documentation TripDescriptor et trip updates entities.

Les mises à jour peuvent concerner les événements passés et futurs. Le producteur peut ignorer les événements passés (sans y être obligé). La mise à jour concerne un arrêt spécifique, via les champs "stop_sequence" ou "stop_id". Par conséquent, l'un de ces champs doit nécessairement être défini. Si le même "stop_id" est desservi plusieurs fois par un trajet, le champ "stop_sequence" doit être défini dans tous les éléments StopTimeUpdate de ce "stop_id".

Champs

Nom du champ Type Required Cardinality Description
stop_sequence uint32 Conditionally required One Doit être identique à celui du fichier "stop_times.txt" dans le flux GTFS correspondant. L'un des champs "stop_sequence" ou "stop_id" doit être défini dans StopTimeUpdate. Ces champs ne peuvent pas être tous les deux vides. Le champ "stop_sequence" est obligatoire pour les trajets qui desservent le même "stop_id" plusieurs fois (lors d'une boucle par exemple), afin d'identifier l'arrêt concerné par cette prédiction.
stop_id string Conditionally required One Doit être identique à celui du fichier "stops.txt" dans le flux GTFS correspondant. L'un des champs "stop_sequence" ou "stop_id" doit être défini dans StopTimeUpdate. Ces champs ne peuvent pas être tous les deux vides.
arrival StopTimeEvent Conditionally required One Si le champ "schedule_relationship" est vide ou défini à SCHEDULED, le champ "arrival" ou "departure" doit être indiqué dans StopTimeUpdate. Ces champs ne peuvent pas être tous les deux vides. Ces champs peuvent être tous les deux vides si le champ "schedule_relationship" est défini à SKIPPED. Si le champ "schedule_relationship" est défini à NO_DATA, les champs "arrival" et "departure" doivent être vides.
departure StopTimeEvent Conditionally required One Si le champ "schedule_relationship" est vide ou défini à SCHEDULED, le champ "arrival" ou "departure" doit être indiqué dans StopTimeUpdate. Ces champs ne peuvent pas être tous les deux vides. Ces champs peuvent être tous les deux vides si le champ "schedule_relationship" est défini à SKIPPED. Si le champ "schedule_relationship" est défini à NO_DATA, les champs "arrival" et "departure" doivent être vides.
schedule_relationship ScheduleRelationship Optional One La relation par défaut est SCHEDULED.

enum ScheduleRelationship

Désigne la relation entre ce StopTime et les horaires statiques.

Valeurs

Valeur Commentaire
SCHEDULED Le véhicule progresse en respectant les horaires statiques de ses arrêts, bien qu'il ne soit pas forcément conforme aux horaires prévus. Il s'agit du comportement par défaut. Au moins l'un des champs "arrival" et "departure" doit être défini. Si les horaires de cet arrêt contiennent à la fois les heures d'arrivée et de départ, il en va de même pour cette mise à jour.
SKIPPED L'arrêt est ignoré, c'est-à-dire que le véhicule ne desservira pas cet arrêt. Les champs "arrival" et "departure" sont facultatifs.
NO_DATA Aucune donnée n'est indiquée pour cet arrêt. Cela signifie qu'aucune information en temps réel n'est disponible. Lorsque la valeur NO_DATA est définie, elle est propagée aux arrêts suivants. Il s'agit donc de la manière recommandée pour identifier l'arrêt à partir duquel vous ne disposez pas d'informations en temps réel. Lorsque la valeur NO_DATA est définie, aucun des champs "arrival" ou "departure" ne doit être rempli.

message VehiclePosition

Indique les informations relatives à la position d'un véhicule donné en temps réel.

Champs

Nom du champ Type Required Cardinality Description
trip TripDescriptor, Optional One Le trajet que ce véhicule dessert. Ce champ peut être vide ou partiel si le véhicule ne peut pas être identifié avec une instance de trajet donnée.
vehicle VehicleDescriptor Optional One Informations supplémentaires sur le véhicule qui effectue le trajet. Chaque entrée doit présenter un identifiant de véhicule unique.
position Position Optional One Position actuelle de ce véhicule.
current_stop_sequence uint32 Optional One L'index de l'ordre des arrêts de l'arrêt actuel. La signification du champ "current_stop_sequence" (c'est-à-dire l'arrêt qu'il désigne) est déterminée par le champ "current_status". Si le champ "current_status" est absent, la valeur IN_TRANSIT_TO est supposée.
stop_id string Optional One Identifie l'arrêt actuel. La valeur doit être la même que celle indiquée dans le fichier "stops.txt" dans le flux GTFS correspondant.
current_status VehicleStopStatus Optional One L'état exact du véhicule au niveau de l'arrêt actuel. Ce champ est ignoré si le champ "current_stop_sequence" est absent.
timestamp uint64 Optional One Heure à laquelle la position du véhicule a été mesurée. Valeur exprimée à l'heure POSIX (autrement dit, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC).
congestion_level CongestionLevel Optional One
occupation_status OccupancyStatus Optional One Taux d'occupation du véhicule.
Attention : Ce champ est encore expérimental et susceptible d'être modifié. À l'avenir, il pourra être officiellement mis en œuvre.

enum VehicleStopStatus

Valeurs

Valeur Commentaire
INCOMING_AT Le véhicule est sur le point d'arriver à l'arrêt (le symbole du véhicule clignote généralement sur l'affichage de l'arrêt).
STOPPED_AT Le véhicule est immobilisé à l'arrêt.
IN_TRANSIT_TO Le véhicule a quitté l'arrêt précédent et poursuit sa route.

enum CongestionLevel

Désigne les difficultés de circulation auxquelles est soumis le véhicule.

Valeurs

Valeur
UNKNOWN_CONGESTION_LEVEL
COURIR DOUCEMENT
STOP_AND_GO
CONGESTION
SEVERE_CONGESTION

enum OccupancyStatus

Désigne le taux d'occupation du véhicule.

Attention : Ce champ est encore expérimental et susceptible d'être modifié. À l'avenir, il pourra être officiellement mis en œuvre.

Valeurs

Valeur Commentaire
EMPTY Le véhicule est considéré comme étant vide selon la plupart des mesures, et compte peu ou pas de passagers. Ceux-ci sont acceptés à bord.
MANY_SEATS_AVAILABLE Le véhicule présente un grand pourcentage de sièges disponibles. C'est le producteur qui détermine le pourcentage suffisant de sièges inoccupés sur la totalité des sièges disponibles pour appartenir à cette catégorie.
FEW_SEATS_AVAILABLE Le véhicule présente un faible pourcentage de sièges disponibles. C'est le producteur qui détermine le pourcentage suffisamment faible de sièges inoccupés sur la totalité des sièges disponibles pour appartenir à cette catégorie.
STANDING_ROOM_ONLY Le véhicule peut accueillir uniquement des passagers debout pour le moment.
CRUSHED_STANDING_ROOM_ONLY Le véhicule peut accueillir uniquement des passagers debout pour le moment et l'espace qui leur est réservé est limité.
FULL Le véhicule est considéré comme complet selon la plupart des mesures. Toutefois, un petit nombre de passagers est susceptible d'être accepté à bord.
NOT_ACCEPTING_PASSENGERS Le véhicule ne prend plus de passagers.

message Alert

Désigne une alerte indiquant un incident sur le réseau de transports en commun.

Champs

Nom du champ Type Required Cardinality Description
active_period TimeRange Optional Many Heure à laquelle l'alerte doit être diffusée auprès des utilisateurs. Si ce champ n'est pas défini, l'alerte sera diffusée tant qu'elle apparaît dans le flux. Si plusieurs plages sont indiquées, l'alerte sera diffusée durant chacune d'entre elles.
informed_entity EntitySelector Required Many Entités dont les utilisateurs doivent être informés de cette alerte. Au moins un champ "informed_entity" doit être défini.
cause Cause Optional One
effect Effect Optional One
url TranslatedString Optional One URL qui fournit des informations supplémentaires sur l'alerte.
header_text TranslatedString Required One En-tête de l'alerte. Cette chaîne de texte brut sera mise en évidence (en gras par exemple).
description_text TranslatedString Required One Description de l'alerte. Cette chaîne de texte brut présentera le même format que le corps de l'alerte (ou affichée sur une demande "expand" explicite par l'utilisateur). Les informations contenues dans la description doivent être ajoutées à celles de l'en-tête.

enum Cause

Détermine le motif de cette alerte.

Valeurs

Valeur
UNKNOWN_CAUSE
OTHER_CAUSE
TECHNICAL_PROBLEM
STRIKE
DEMONSTRATION
ACCIDENT
HOLIDAY
WEATHER
MAINTENANCE
CONSTRUCTION
POLICE_ACTIVITY
MEDICAL_EMERGENCY

enum Effect

Désigne l'effet entraîné par ce problème sur l'entité concernée.

Valeurs

Valeur
NO_SERVICE
REDUCED_SERVICE
SIGNIFICANT_DELAYS
DETOUR
ADDITIONAL_SERVICE
MODIFIED_SERVICE
OTHER_EFFECT
UNKNOWN_EFFECT
STOP_MOVED

message TimeRange

Indique un intervalle de temps. L'intervalle est considéré comme actif à l'heure t si t est supérieure ou égale à l'heure de début et inférieure à l'heure de fin.

Champs

Nom du champ Type Required Cardinality Description
start uint64 Conditionally required One Heure de début, exprimée à l'heure POSIX (c'est-à-dire, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC). Si ce champ n'est pas défini, l'intervalle commence à l'infini négatif. Si le champ "TimeRange" est défini, l'un des champs "start" ou "end" doit être indiqué. Ces champs ne peuvent pas être tous les deux vides.
end uint64 Conditionally required One Heure de fin, exprimée à l'heure POSIX (c'est-à-dire, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC). Si ce champ n'est pas défini, l'intervalle se termine à l'infini positif. Si le champ "TimeRange" est défini, l'un des champs "start" ou "end" doit être indiqué. Ces champs ne peuvent pas être tous les deux vides.

message position

Désigne la position géographique d'un véhicule.

Champs

Nom du champ Type Required Cardinality Description
latitude float Required One Distance angulaire entre la position et l'équateur, exprimée en degrés, dans le système de coordonnées WGS84.
longitude float Required One Distance angulaire entre la position et le méridien de référence, exprimée en degrés, dans le système de coordonnées WGS84.
bearing float Optional One Azimut, exprimé en degrés, mesuré dans le sens horaire à partir du nord géographique, où 0 indique le nord et 90 indique l'est. Il peut s'agir du relèvement au compas, de la direction vers le prochain arrêt, ou de la position intermédiaire. Cette valeur ne doit pas être déduite de l'ordre des positions précédentes, susceptibles d'être calculées par les clients grâce aux données précédentes.
odometer double Optional One Valeur du compteur kilométrique, exprimée en mètres.
speed float Optional One Vitesse instantanée du véhicule, exprimée en mètres par seconde.

message TripDescriptor

Désigne un descripteur qui identifie une instance de trajet GTFS, ou toutes les instances d'un trajet sur un itinéraire. Le champ "trip_id" (et si nécessaire, "start_time") est défini afin d'indiquer une instance de trajet unique. Si le champ "route_id" est également défini, il doit être identique à celui auquel le trajet donné correspond. Par ailleurs, le champ "route_id" doit être défini pour spécifier tous les trajets d'un itinéraire donné. Notez que si le champ "trip_id" est inconnu, les identifiants d'ordre des stations figurant dans TripUpdate ne sont pas suffisants, et les champs "stop_id" doivent également être définis. En outre, les heures absolues d'arrivée/de départ doivent être indiquées.

Champs

Nom du champ Type Required Cardinality Description
trip_id string Conditionally required One La valeur du champ "trip_id" provient du flux GTFS auquel ce sélecteur fait référence. Ce champ permet à lui seul d'identifier de manière unique les trajets n'étant pas calculés en fonction de la fréquence (trajets non définis dans le fichier GTFS "frequencies.txt"). Les champs "trip_id", "start_time", et "start_date" sont tous obligatoires pour les trajets calculés en fonction de la fréquence, qui sont définis dans le fichier GTFS "frequencies.txt". Le champ "trip_id" peut être omis pour les trajets basés sur les horaires (trajets non définis dans le fichier GTFS "frequencies.txt"), uniquement si le trajet peut être identifié de manière unique par une combinaison des champs "route_id", "direction_id", "start_time" et "start_date" et si tous ces champs sont définis.
route_id string Conditionally required One La valeur du champ "route_id" provient du flux GTFS auquel ce sélecteur fait référence. Si le champ "trip_id" est omis, alors le champ "route_id" doit être défini.
direction_id uint32 Conditionally required One La valeur du champ "direction_id" provient du fichier "trips.txt" du flux GTFS. Elle indique la direction des trajets auxquels ce sélecteur fait référence. Si le champ "trip_id" est omis, alors le champ "direction_id" doit être défini.
Attention : Ce champ est encore expérimental et susceptible d'être modifié. À l'avenir, il pourra être officiellement mis en œuvre.
start_time string Conditionally required One Heure de début initialement prévue de cette instance de trajet. Lorsque la valeur du champ "trip_id" correspond à un trajet non calculé en fonction de la fréquence, ce champ doit être omis ou égal à la valeur indiquée dans le flux GTFS. Lorsque la valeur du champ "trip_id" correspond à un trajet calculé en fonction de la fréquence, défini dans le fichier GTFS "frequencies.txt", le champ "start_time" est obligatoire et doit être défini pour les mises à jour du trajet et les positions du véhicule. Si le trajet correspond à l'enregistrement GTFS "exact_times" = 1, la valeur du champ "start_time" doit être un multiple (y compris zéro) de la valeur "headway_secs", et ultérieure à la valeur "start_time" du fichier "frequencies.txt" de la période correspondante. Si le trajet correspond à "exact_times" = 0, alors la valeur du champ "start_time" peut être arbitraire, et est initialement prévue pour être le premier départ du trajet. Une fois définie, la valeur "start_time" de ce trajet calculé en fonction de la fréquence où "exact_times" = 0, doit être considérée comme étant immuable, même si la première heure de départ est modifiée. Ce changement d'heure peut être indiqué dans StopTimeUpdate. Si le champ "trip_id" est omis, une valeur "start_time" doit être définie. Le format et la sémantique de ce champ sont identiques à ceux du champ "start_time" du fichier GTFS "frequencies.txt", par exemple, 11:15:35 ou 25:15:35.
start_date string Conditionally required One Date de début de cette instance de trajet, exprimée au format AAAAMMJJ. Pour les trajets planifiés (non définis dans le fichier GTFS "frequencies.txt"), ce champ doit être indiqué pour identifier les trajets qui présentent un retard si important qu'ils risquent d'entrer en conflit avec les trajets planifiés du jour suivant. Prenons l'exemple d'un train qui part à 8:00 et 20:00 chaque jour. Imaginons que celui-ci a 12 heures de retard, il y aurait alors deux trajets distincts à la même heure. Ce champ peut être défini, mais il n'est pas obligatoire pour les horaires qui ne risquent pas d'entrer en conflit dans ces situations, par exemple un véhicule qui part toutes les heures, et qui n'affectera pas les horaires s'il présentait un retard d'une heure. Ce champ est obligatoire pour les trajets calculés en fonction de la fréquence, qui sont définis dans le fichier GTFS "frequencies.txt". Si le champ "trip_id" est omis, une valeur "start_date" doit être indiquée.
schedule_relationship ScheduleRelationship Optional One

enum ScheduleRelationship

Désigne la relation entre ce trajet et les horaires statiques. Si un trajet est effectué conformément aux horaires temporaires, ne figurant pas dans le flux GTFS, il ne doit pas être marqué comme SCHEDULED, mais comme ADDED.

Valeurs

Valeur Commentaire
SCHEDULED Trajet qui est effectué conformément aux horaires GTFS ou qui est suffisamment proche du trajet planifié pour être associé à celui-ci.
ADDED Trajet supplémentaire qui a été ajouté à des horaires en cours, pour notamment remplacer un véhicule endommagé ou répondre à une hausse soudaine du nombre de passagers.
UNSCHEDULED Trajet qui ne présente pas d'horaires associés. Cette valeur est utilisée pour identifier les trajets définis dans le fichier GTFS "frequencies.txt" où "exact_times" = 0. Cette valeur ne doit pas être utilisée pour décrire des trajets non définis dans le fichier GTFS "frequencies.txt", ni ceux définis dans le fichier GTFS "frequencies.txt" où "exact_times" = 1.
CANCELED Trajet qui était prévu dans les horaires mais qui a été supprimé.

message VehicleDescriptor

Désigne les informations relatives à l'identification du véhicule effectuant le trajet.

Champs

Nom du champ Type Required Cardinality Description
id string Optional One Système interne d'identification du véhicule. Ce champ doit être unique pour chaque véhicule. Il est utilisé pour suivre le véhicule au fil de son évolution dans le système. Cet identifiant ne doit pas être visible pour l'utilisateur final, contrairement aux valeurs du champ label.
label string Optional One Libellé visible pour l'utilisateur, c'est-à-dire un élément qui doit être affiché aux passagers afin de leur permettre d'identifier le bon véhicule.
license_plate string Optional One Plaque d'immatriculation du véhicule.

message EntitySelector

Désigne un sélecteur d'une entité figurant dans un flux GTFS. Les valeurs de ces champs doivent correspondre à celles des champs appropriés dans le flux GTFS. Au moins un spécificateur doit être indiqué. Si plusieurs sont définis, la correspondance doit être appliquée à tous les spécificateurs donnés.

Champs

Nom du champ Type Required Cardinality Description
agency_id string Conditionally required One Au moins un spécificateur doit être indiqué. Tous les champs figurant dans EntitySelector ne peuvent pas être vides en même temps.
route_id string Conditionally required One Au moins un spécificateur doit être indiqué. Tous les champs figurant dans EntitySelector ne peuvent pas être vides en même temps.
route_type int32 Conditionally required One Au moins un spécificateur doit être indiqué. Tous les champs figurant dans EntitySelector ne peuvent pas être vides en même temps.
trip TripDescriptor, Conditionally required One Au moins un spécificateur doit être indiqué. Tous les champs figurant dans EntitySelector ne peuvent pas être vides en même temps.
stop_id string Conditionally required One Au moins un spécificateur doit être indiqué. Tous les champs figurant dans EntitySelector ne peuvent pas être vides en même temps.

message TranslatedString

Désigne un message internationalisé contenant des versions linguistiques d'un extrait de texte ou d'une URL. L'une des chaînes issues d'un message sera sélectionnée. La résolution est effectuée comme suit : si la langue de l'interface utilisateur correspond au code de langue d'une traduction, la première traduction correspondante est sélectionnée. Si la langue d'une interface utilisateur par défaut (le français par exemple) correspond au code de langue d'une traduction, la première traduction correspondante est sélectionnée. Si certaines traductions présentent un code de langue non spécifié, celles-ci sont sélectionnées.

Champs

Nom du champ Type Required Cardinality Description
translation Translation Required Many Au moins une traduction doit être indiquée.

message Translation

Désigne une chaîne localisée mappée vers une langue.

Champs

Nom du champ Type Required Cardinality Description
text string Required One Chaîne UTF-8 contenant le message.
language string Conditionally required One Code de langue BCP-47. Ce champ peut être omis si la langue est inconnue ou si aucune internationalisation n'a été effectuée pour le flux. Une seule traduction est autorisée à présenter un indicateur de langue non spécifié. Si plusieurs traductions sont indiquées, la langue doit être spécifiée.