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 en temps réel. Par conséquent, les flux dont la valeur gtfs_realtime_version
est définie sur 1
ne s'y conforment peut-être pas (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 :
- One : un seul élément peut être indiqué dans ce champ. Cette valeur correspond aux cardinalités obligatoires et facultatives du Protocol Buffer.
- Many : un grand nombre d'éléments (0, 1 ou plus) peuvent être indiqués dans ce champ. Cette valeur correspond à la cardinalité répétée du Protocol Buffer.
Référez-vous toujours aux champs Required et Description pour déterminer si un champ est "Required", "Conditionally required" ou "Optional". Veuillez ajouter une référence à gtfs-realtime.proto
pour la cardinalité du 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 sur ce flux et le 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). Elle est 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 timestamp 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, elle doit fournir un aperçu complet de toutes les informations en temps réel connues.DIFFERENTIAL
: actuellement, ce mode n'est pas accepté, et son comportement n'est pas spécifié pour les flux qui l'utilisent. 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 modeDIFFERENTIAL
. 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, un seul des champs trip_update
, vehicle
et 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 |
Facultatif | One | Détermine si cette entité doit être supprimée. Ce champ ne doit être renseigné que pour les flux dont le champ Incrementality est défini sur DIFFERENTIAL , et NON pour ceux 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. Vous devez renseigner au moins l'un des champs trip_update , vehicle ou alert . Ces champs ne peuvent pas être tous les trois vides. |
vehicle |
VehiclePosition |
Conditionally required | One | Données relatives à la position en temps réel d'un véhicule. Vous devez renseigner au moins l'un des champs trip_update , vehicle ou alert . Ces champs ne peuvent pas être tous les trois vides. |
alert |
Alert |
Conditionally required | One | Données relatives à l'alerte en temps réel. Vous devez renseigner au moins l'un des champs trip_update , vehicle ou alert . Ces champs ne peuvent pas être tous les trois 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 de 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é validé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 |
Facultatif | 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 du champ 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.schedule_relationship ne présente la valeur CANCELED . Si le trajet est annulé, aucun champ stop_time_updates ne doit être défini. |
timestamp |
uint64 |
Facultatif | 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 |
Facultatif | 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). Si delay présente la valeur 0 , cela signifie que le véhicule est exactement à l'heure.Les informations concernant les retards contenues dans le champ StopTimeUpdates prévalent sur celles qui sont indiquées au niveau du trajet. Ainsi le retard au niveau d'un trajet est uniquement propagé jusqu'au prochain arrêt présentant une valeur StopTimeUpdate spécifiée dans le champ delay . Il est fortement conseillé aux fournisseurs de flux d'indiquer une valeur TripUpdate.timestamp pour spécifier l'heure de la dernière mise à jour de la valeur delay , afin d'évaluer la fraîcheur des données. Attention : Ce champ est encore expérimental et susceptible d'être modifié. À l'avenir, il pourra être officiellement intégré. |
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, qu'il y ait un horaire prévu ou non. Si les champstime
etdelay
sont tous les deux renseignés, c'est le champtime
qui prévaut (bien que normalement, s'il est défini pour un trajet prévu, le champtime
devrait être égal à l'heure prévue dans le flux GTFS + le retard).
L'incertitude s'applique de façon égale à l'heure et au retard. Elle définit grossièrement la marge d'erreur du retard (mais sans définir encore son incidence précise sur les statistiques). Il est possible que l'incertitude soit égale à 0
, par exemple pour les trains qui sont pilotés par un ordinateur de contrôle de temporisation.
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). Un delay de 0 signifie que le véhicule est exactement à l'heure. Vous devez renseigner au moins l'un des champs delay ou time dans StopTimeEvent . Ces champs ne peuvent pas être tous les deux vides. |
time |
int64 |
Conditionally required | One | Événement en tant qu'heure absolue. Elle est exprimée à l'heure POSIX (autrement dit, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC). Vous devez renseigner au moins l'un des champs delay ou time dans StopTimeEvent . Ces champs ne peuvent pas être tous les deux vides. |
uncertainty |
int32 |
Facultatif | One | Si l'incertitude est omise, elle est considérée comme inconnue. Pour indiquer une prédiction totalement certaine, définissez l'incertitude à 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 entités des mises à jour de trajet.
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 plus d'une fois dans un trajet, alors, pour ce trajet, stop_sequence
doit être fourni dans tous les messages StopTimeUpdates
pour ce stop_id
pour ce trajet.
Champs
Nom du champ | Type | Required | Cardinality | Description |
---|---|---|---|---|
stop_sequence |
uint32 |
Conditionally required | One | La valeur doit être la même que celle indiquée dans le fichier stop_times.txt dans le flux GTFS correspondant. Vous devez renseigner au moins l'un des champs stop_sequence ou stop_id 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 | La valeur doit être la même que celle indiquée dans le fichier stops.txt dans le flux GTFS correspondant. Vous devez renseigner au moins l'un des champs stop_sequence ou stop_id dans StopTimeUpdate . Ces champs ne peuvent pas être tous les deux vides. |
arrival |
StopTimeEvent |
Conditionally required | One | Si schedule_relationship est vide ou défini sur SCHEDULED , le champ arrival ou departure doit être indiqué dans StopTimeUpdate . Ces champs ne peuvent pas être tous les deux vides. arrival et departure peuvent être tous les deux vides si schedule_relationship est défini sur SKIPPED . Si schedule_relationship est défini sur NO_DATA , arrival et departure doivent être vides. |
departure |
StopTimeEvent |
Conditionally required | One | Si schedule_relationship est vide ou défini sur SCHEDULED , le champ arrival ou departure doit être indiqué dans StopTimeUpdate . Ces champs ne peuvent pas être tous les deux vides. arrival et departure peuvent être tous les deux vides si schedule_relationship est défini sur SKIPPED . Si schedule_relationship est défini sur NO_DATA , arrival et departure doivent être vides. |
schedule_relationship |
ScheduleRelationship |
Facultatif | 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. |
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 renseigné. |
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 |
Facultatif | 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 |
Facultatif | 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 |
Facultatif | One | Position actuelle de ce véhicule. |
current_stop_sequence |
uint32 |
Facultatif | One | L'index de l'ordre des arrêts de l'arrêt actuel. La signification de current_stop_sequence (c'est-à-dire l'arrêt qu'il désigne) est déterminée par current_status . Si current_status est manquant, la valeur IN_TRANSIT_TO est supposée. |
stop_id |
string |
Facultatif | One | Identifie l'arrêt actuel. La valeur doit être la même que celle indiquée dans le fichier stops.txt du flux GTFS correspondant. |
current_status |
VehicleStopStatus |
Facultatif | One | L'état exact du véhicule au niveau de l'arrêt actuel. Ignoré si current_stop_sequence est manquant. |
timestamp |
uint64 |
Facultatif | One | Heure à laquelle la position du véhicule a été mesurée. Elle est exprimée à l'heure POSIX (autrement dit, le nombre de secondes depuis le 1er janvier 1970 à 00:00:00 UTC). |
congestion_level |
CongestionLevel |
Facultatif | One | |
occupancy_status |
OccupancyStatus |
Facultatif | 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 intégré. |
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 |
RUNNING_SMOOTHLY |
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 intégré.
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 pourcentage de sièges disponibles dans le véhicule ou la voiture est élevé. C'est le producteur qui détermine le nombre minimal de sièges inoccupés sur la totalité des sièges disponibles pour appartenir à cette catégorie. |
FEW_SEATS_AVAILABLE |
Le véhicule ou la voiture présente un faible pourcentage de sièges disponibles. C'est le producteur qui détermine le nombre maximal de sièges inoccupés sur la totalité des sièges disponibles pour appartenir à cette catégorie. |
STANDING_ROOM_ONLY |
Pour le moment, le véhicule ou la voiture ne peut accueillir que des passagers debout. |
CRUSHED_STANDING_ROOM_ONLY |
Pour le moment, le véhicule ou la voiture ne peut accueillir que des passagers debout, et l'espace qui leur est réservé est limité. |
FULL |
Le véhicule est considéré comme complet selon la plupart des mesures, mais il est possible que des passagers puissent encore être acceptés à bord. |
NOT_ACCEPTING_PASSENGERS |
Le véhicule ou la voiture n'accepte pas les passagers. Le véhicule ou la voiture accepte généralement les nouveaux passagers. |
NO_DATA_AVAILABLE |
Le véhicule ou la voiture ne dispose d'aucune donnée sur le nombre de passagers à ce moment-là. |
NOT_BOARDABLE |
Le véhicule ou la voiture n'accepte pas les passagers. À aucun moment il n'est possible d'y embarquer. Utile pour les véhicules et voitures spéciaux (moteur, voiture d'entretien, etc.). |
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 |
Facultatif | 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 |
Facultatif | One | |
effect |
Effect |
Facultatif | One | |
url |
TranslatedString |
Facultatif | 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 start
et inférieure à l'heure end
.
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 un TimeRange est fourni, l'un des champs start ou end doit être indiqué. Ces champs ne peuvent ê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 un TimeRange est fourni, l'un des champs start ou end doit être indiqué. Ces champs ne peuvent ê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 |
Facultatif | One | Azimut, exprimé en degrés, mesuré dans le sens des aiguilles d'une montre à 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 |
Facultatif | One | Valeur du compteur kilométrique, exprimée en mètres. |
speed |
float |
Facultatif | One | Vitesse instantanée du véhicule, exprimée en mètres par seconde. |
message TripDescriptor
Descripteur qui identifie une seule instance de trajet GTFS.
Pour spécifier une instance de trajet unique, il suffit généralement d'utiliser le champ trip_id
seul.
Cependant, dans les situations suivantes, des informations supplémentaires sont nécessaires pour exprimer une instance de trajet unique :
- Si le trajet est défini dans
frequencies.txt
, vous devez obligatoirement ajouterstart_date
etstart_time
en plus detrip_id
. - Si le trajet dure plus de 24 heures ou s'il est suffisamment retardé pour entrer en conflit avec un trajet planifié le jour suivant, renseignez à la fois
start_date
ettrip_id
. - Si vous ne pouvez pas renseigner le champ
trip_id
, les champsroute_id
,direction_id
,start_date
etstart_time
sont alors obligatoires.
Dans tous les cas, si route_id
et trip_id
sont tous les deux renseignés, la valeur route_id
doit correspondre à celle du champ route_id
attribuée au trajet indiqué dans le fichier trips.txt
du flux GTFS.
Le champ trip_id
seul, ou combiné à d'autres champs TripDescriptor
, ne peut pas être utilisé pour identifier plusieurs instances de trajet. Un élément TripDescriptor
qui correspond à zéro ou à plusieurs instances de trajet (plutôt qu'à une seule instance) est considéré comme erroné. L'entité qui contient l'élément TripDescriptor
erroné peut être supprimée par les utilisateurs.
Par exemple, lorsqu'un trajet est défini dans le fichier frequencies.txt
du flux GTFS avec exact_times=0
,
l'élément TripDescriptor
ne doit jamais spécifier de champ trip_id
seul. En effet, lorsque vous spécifiez une instance de trajet unique qui démarre à une heure précise de la journée, vous devez également spécifier start_time
.
Notez que si 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, vous devez indiquer des heures d'arrivée et de départ absolues.
Champs
Nom du champ | Type | Required | Cardinality | Description |
---|---|---|---|---|
trip_id |
string |
Conditionally required | One | trip_id du flux GTFS auquel ce sélecteur fait référence. Le champ trip_id peut être obligatoire ou non selon le type de trajet : • Pour les trajets non basés sur la fréquence : Le champ trip_id seul suffit à identifier ces trajets de façon unique. Sachez que les trajets non basés sur la fréquence ne sont pas définis dans le fichier frequencies.txt du flux GTFS. • Trajets basés sur la fréquence : les champs trip_id , start_time et start_date sont tous obligatoires. Les trajets basés sur la fréquence sont définis dans le fichier frequencies.txt du flux GTFS. • Pour les trajets basés sur un horaire : le champ trip_id ne peut être omis que si les champs route_id , direction_id , start_time et start_date combinés permettent d'identifier un trajet de façon unique. Sachez que les trajets basés sur un horaire ne sont pas définis dans le fichier frequencies.txt du flux GTFS. |
route_id |
string |
Conditionally required | One | route_id du flux GTFS auquel ce sélecteur fait référence. Si trip_id est omis, alors les champs route_id , direction_id , start_time et schedule_relationship=SCHEDULED doivent tous être définis pour identifier une instance de trajet. |
direction_id |
uint32 |
Conditionally required | One | Valeur du champ direction_id provenant du fichier trips.txt du flux GTFS. Elle indique la direction du trajet. Si trip_id est omis, alors direction_id doit être indiqué. Attention : Ce champ est encore expérimental et susceptible d'être modifié. À l'avenir, il pourra être officiellement intégré. |
start_time |
string |
Conditionally required | One | Heure de début initialement prévue de cette instance de trajet. Le type de champ Time définit le format de ce champ, par exemple, 11:15:35 ou 25:15:35. start_time peut être obligatoire ou non selon le type de trajet : • Lorsque la valeur du champ trip_id correspond à un trajet non calculé en fonction de la fréquence : le champ start_time doit être omis ou égal à la valeur indiquée pour departure_time dans le fichier stop_times.txt du flux GTFS. • Lorsque la valeur du champ trip_id correspond à un trajet basé sur la fréquence : start_time est obligatoire dans tous les cas, et doit être spécifié pour les mises à jour du trajet et les positions du véhicule. Les trajets basés sur la fréquence sont définis dans le fichier frequencies.txt du flux GTFS. ◦ Si le trajet basé sur la fréquence correspond à un enregistrement GTFS exact_times=1 : le champ start_time doit être un multiple (y compris zéro) de la valeur headway_secs , et postérieure à la valeur start_time du fichier frequencies.txt de la période correspondante. ◦ Si le trajet basé sur la fréquence correspond à un enregistrement GTFS exact_times=0 : la valeur du champ start_time peut être arbitraire et est initialement prévue pour correspondre au premier départ du trajet Une fois définie, la valeur start_time de ce trajet exact_times=0 basé sur la fréquence est considérée comme immuable, même si la première heure de départ est modifiée. Les changements d'heure apportés par la suite peuvent être indiqués dans un message StopTimeUpdate . • Si trip_id est omis : start_time doit être défini. |
start_date |
string |
Conditionally required | One | Date de début de cette instance de trajet, exprimée au format YYYYMMDD . Le champ start_date peut être obligatoire ou non selon le type de trajet : • Trajets basés sur un horaire : start_date doit être indiqué. Il permet d'identifier les trajets dont le retard est tel qu'ils entrent en conflit avec un trajet prévu le jour suivant. Prenons l'exemple d'un train qui part à 8:00 et à 20:00 tous les jours. S'il a 12 heures de retard, il y aurait alors deux trajets distincts à la même heure. Remarque : Si de tels conflits sont impossibles, ce champ est facultatif pour les trajets basés sur un horaire. Par exemple, pour un service qui propose un départ toutes les heures, si un véhicule qui a une heure de retard n'est plus considéré comme lié à l'horaire initial, alors ce champ est facultatif. • Trajets basés sur la fréquence : start_date doit être indiqué. Notez que les trajets basés sur la fréquence sont définis dans le fichier frequencies.txt du flux GTFS, mais pas ceux basés sur un horaire. • Si trip_id est omis : start_date doit être indiqué. |
schedule_relationship |
ScheduleRelationship |
Facultatif | One | Désigne la relation entre ce trajet et les horaires statiques. Si TripDescriptor est fourni dans un EntitySelector Alert , le champ schedule_relationship est ignoré par les utilisateurs lorsqu'ils identifient l'instance de trajet correspondante. |
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 remplacer un véhicule endommagé ou répondre à une hausse soudaine du nombre de passagers, par exemple. |
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 frequencies.txt du flux GTFS où exact_times = 0 . Cette valeur ne doit pas être utilisée pour décrire des trajets non définis dans le fichier frequencies.txt du flux GTFS, ni ceux définis dans le fichier frequencies.txt du flux GTFS 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 |
Facultatif | 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. Utilisez le champ label à cet effet. |
label |
string |
Facultatif | 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 |
Facultatif | 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 fournis, ils doivent être interprétés comme étant liés par l'opérateur logique AND
. De plus, la combinaison de spécificateurs doit correspondre aux informations associées dans le flux GTFS. En d'autres termes, pour qu'une alerte soit appliquée à une entité dans GTFS, elle doit correspondre à tous les champs EntitySelector
fournis. Par exemple, un EntitySelector
qui inclut les champs route_id: "5"
et route_type: "3"
ne s'applique qu'au bus route_id: "5"
. Il ne s'applique pas aux autres itinéraires de route_type: "3"
. Si un producteur souhaite qu'une alerte s'applique à route_id: "5"
et à route_type: "3"
, il doit fournir deux champs EntitySelector
distincts, l'un faisant référence à route_id: "5"
, et l'autre faisant référence à route_type: "3"
.
Au moins un spécificateur doit être indiqué. Tous les champs figurant dans EntitySelector
ne peuvent pas être vides en même temps.
Champs
Nom du champ | Type | Required | Cardinality | Description |
---|---|---|---|---|
agency_id |
string |
Conditionally required | One | agency_id du flux GTFS auquel ce sélecteur fait référence. |
route_id |
string |
Conditionally required | One | route_id du GTFS auquel ce sélecteur fait référence. Si direction_id est fourni, route_id doit également être indiqué. |
route_type |
int32 |
Conditionally required | One | route_type du GTFS auquel ce sélecteur fait référence. |
direction_id |
uint32 |
Conditionally required | One | direction_id du fichier trips.txt du flux GTFS. Il permet de sélectionner tous les trajets dans un sens pour un itinéraire, spécifié par route_id . Si direction_id est fourni, route_id doit également être indiqué. |
trip |
TripDescriptor |
Conditionally required | One | Instance de trajet de GTFS auquel ce sélecteur fait référence. Cette valeur TripDescriptor doit correspondre à une instance de trajet unique dans les données GTFS (par exemple, un producteur ne peut pas fournir uniquement une valeur trip_id pour les trajets exact_times=0 ). Si le champ ScheduleRelationship est renseigné dans TripDescriptor , il sera ignoré par les utilisateurs lorsqu'ils tenteront d'identifier le trajet GTFS. |
stop_id |
string |
Conditionally required | One | stop_id du flux GTFS auquel ce sélecteur fait référence. |
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 par défaut d'une interface utilisateur (par exemple, le français) correspond au code de langue d'une traduction, la première traduction en correspondance 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. |