Référence

Ce document définit le format et la structure des fichiers de l'ensemble de données GTFS.

Sommaire

  1. Définition des termes
  2. Types de champs
  3. Fichiers de l'ensemble de données
  4. Conditions requises pour les fichiers
  5. Définition des champs

Définition des termes

Dans cette section, vous trouverez une définition des termes utilisés dans ce document.

  • Ensemble de données : ensemble complet des fichiers définis dans cet article de référence sur les spécifications. Chaque fois que vous apportez une modification à l'ensemble de données, vous créez une nouvelle version. Publiez vos ensembles de données sous une URL publique disponible en permanence qui inclut le nom du fichier ZIP, par exemple, https://www.agency.org/gtfs/gtfs.zip.
  • Enregistrement : structure de données de base qui comprend un certain nombre de valeurs de champs différentes décrivant une entité unique, telle qu'une agence de transports en commun, un arrêt, une route, etc. Un enregistrement correspond à une ligne dans un tableau.
  • Champ : propriété d'un objet ou d'une entité. Un champ correspond à une colonne dans un tableau.
  • Valeur de champ : une entrée dans un champ. La valeur d'un champ correspond à une cellule unique dans un tableau.
  • Obligatoire : cette mention indique que vous devez inclure le champ dans l'ensemble de données et renseigner sa valeur pour chaque enregistrement. Certains champs obligatoires peuvent contenir une chaîne vide (avec l'indication "vide" dans cette spécification). Pour saisir une chaîne vide dans un champ spécifique, il vous suffit de ne pas saisir de texte entre les virgules.
  • Facultatif : cette mention indique que vous pouvez omettre le champ dans l'ensemble de données. Si vous choisissez d'inclure une colonne facultative, certaines des entrées de ce champ peuvent être des chaînes vides. Pour saisir une chaîne vide dans un champ spécifique, il vous suffit de ne pas saisir de texte entre les virgules. Remarque : un champ omis équivaut à un champ entièrement vide.
  • Obligatoire sous certaines conditions : le champ ou le fichier est obligatoire dans certains cas, décrits dans la description du champ ou du fichier. En dehors de ces conditions, ce champ ou fichier est facultatif.
  • Journée de service : période utilisée pour indiquer les horaires des trajets. La définition exacte de la journée de service varie d'une agence à l'autre, mais en général elle ne correspond pas aux jours calendaires. Une journée de service peut dépasser 24:00:00 si le service commence un jour et se termine le lendemain. Par exemple, un service commençant à 08:00:00 le vendredi et se terminant à 02:00:00 le samedi peut être désigné par la plage 08:00:00-26:00:00 dans une journée de service.

Types de champs

  • Couleur : couleur codée sous forme de nombre hexadécimal (c'est-à-dire à six chiffres). Accédez au site https://htmlcolorcodes.com pour générer une valeur valide (notez que le symbole # n'est pas inclus).
    Exemple : FFFFFF pour le blanc, 000000 pour le noir ou 0039A6 pour les lignes A, C et E du réseau NYMTA.
  • Code de devise : code de devise alphabétique ISO 4217. Pour obtenir la liste des devises à jour, accédez à https://fr.wikipedia.org/wiki/ISO_4217#Active_codes.
    Exemples : CAD pour le dollar canadien, EUR pour l'euro ou JPY pour le yen japonais.
  • Date : journée de service au format AAAAMMJJ. Étant donné qu'une journée de service peut dépasser 24:00:00, ce type de champ inclut souvent des informations pour les jours suivants.
    Exemple : 20180913 pour le 13 septembre 2018.
  • Adresse e-mail : une adresse e-mail.
    Exemple : example@example.com
  • Énumération : option issue d'un ensemble de constantes prédéfinies, répertoriées dans la colonne "Description".
    Exemple : le champ route_type contient une valeur 0 pour le tramway, 1 pour le métro, etc.
  • ID : un champ d'ID est une valeur interne et n'est pas destiné à être vu par les usagers. Il s'agit d'une séquence de caractères UTF-8. Nous vous recommandons de n'utiliser que des caractères ASCII imprimables. Les ID définis dans un fichier .txt sont souvent référencés dans un autre fichier .txt.
    Exemple : Le champ stop_id dans le fichier stops.txt est un ID, et le champ stop_id dans le fichier stop_times.txt est un ID qui fait référence à stops.stop_id.
  • Code de langue : un code de langue IETF BCP 47. Pour plus d'informations sur les codes IETF BCP 47, consultez les pages http://www.rfc-editor.org/rfc/bcp/bcp47.txt et http://www.w3.org/International/articles/language-tags/.
    Exemples : en pour l'anglais, en-US pour l'anglais américain ou de pour l'allemand.
  • Latitude : latitude WGS84 en degrés décimaux. La valeur doit être supérieure ou égale à -90.0, et inférieure ou égale à 90.0.
    Exemple : 41.890169 pour le Colisée à Rome.
  • Longitude : longitude WGS84 en degrés décimaux. La valeur doit être supérieure ou égale à -180.0, et inférieure ou égale à 180.0.
    Exemple : 12.492269 pour le Colisée à Rome.
  • Flottant non négatif : nombre à virgule flottante supérieur ou égal à 0.
  • Entier non négatif : nombre entier supérieur ou égal à 0.
  • Numéro de téléphone : numéro de téléphone.
  • Heure : heure au format HH:MM:SS (H:MM:SS est également accepté). L'heure est calculée à partir de "midi moins 12 h" au début de la journée de service (soit en pratique minuit, sauf les jours de changement d'heure). Pour en savoir plus, reportez-vous à ces consignes. Passé minuit, les heures doivent être représentées par une valeur supérieure à 24:00:00 dans le format HH:MM:SS de l'heure locale, le jour où commence l'horaire du trajet.
    Exemple : 14:30:00 pour 14 h 30 ou 25:35:00 pour 1 h 35 le lendemain.
  • Texte : chaîne de caractères UTF-8 destinée à être affichée. Elle doit donc être lisible pour l'usager.
  • Fuseau horaire : un fuseau horaire de la base de données "TZ" (voir la page https://www.iana.org/time-zones). Les noms de fuseau horaire ne doivent jamais contenir de caractère d'espacement, mais peuvent inclure des traits de soulignement. Pour connaître les valeurs acceptées, consultez la page http://en.wikipedia.org/wiki/List_of_tz_zones.
    Exemple : Asia/Tokyo, America/Los_Angeles ou Africa/Cairo.
  • URL : adresse URL complète commençant par http:// ou https://. Tous les caractères spéciaux de l'URL doivent être correctement échappés. Consultez la page http://www.w3.org/Addressing/URL/4_URI_Recommentations.html pour découvrir comment créer des valeurs d'URL complètes.

Fichiers de l'ensemble de données

Cette spécification définit les fichiers suivants :

Nom du fichier Obligatoire Définit
agency.txt Obligatoire Agences de transports en commun ayant un service représenté dans cet ensemble de données.
stops.txt Obligatoire Arrêts où les usagers peuvent monter et descendre. Définit également les stations et leurs entrées.
routes.txt Obligatoire Itinéraires en transports en commun. Un itinéraire est un ensemble de trajets présentés aux usagers comme relevant du même service.
trips.txt Obligatoire Trajets pour chaque itinéraire. Un trajet est une série d'au moins deux arrêts desservis à des horaires précis.
stop_times.txt Obligatoire Heures d'arrivée et de départ d'un véhicule depuis des arrêts spécifiques, pour chaque trajet.
calendar.txt Obligatoire sous certaines conditions Dates de service indiquées à l'aide d'un horaire hebdomadaire comportant des dates de départ et d'arrivée. Ce fichier est obligatoire, sauf si toutes les dates du service sont définies dans calendar_dates.txt.
calendar_dates.txt Obligatoire sous certaines conditions Exceptions pour les services définis dans le fichier calendar.txt. Si calendar.txt est omis, le fichier calendar_dates.txt est alors obligatoire et doit contenir toutes les dates du service.
fare_attributes.txt Facultatif Informations tarifaires des itinéraires d'une agence de transports en commun.
fare_rules.txt Facultatif Règles d'application des tarifs pour les itinéraires.
shapes.txt Facultatif Règles cartographiques du parcours des véhicules (parfois appelées alignements d'itinéraire).
frequencies.txt Facultatif Durée entre les trajets pour les itinéraires présentant une fréquence de service variable. Peut également fournir une représentation sous forme compressée des services dont les horaires sont fixes.
transfers.txt Facultatif Règles de liaison aux pôles de correspondance entre des itinéraires.
pathways.txt Facultatif Parcours de liaison à pied entre deux arrêts d'une station.
levels.txt Facultatif Niveaux dans les stations.
feed_info.txt Obligatoire sous certaines conditions Métadonnées de l'ensemble de données, y compris des renseignements sur l'éditeur, la version et la date d'expiration.
translations.txt Facultatif Traduction des informations d'une agence de transports en commun.
attributions.txt Facultatif Spécifie les attributions appliquées à l'ensemble de données.

Conditions requises pour les fichiers

Les conditions suivantes s'appliquent au format et au contenu des fichiers de l'ensemble de données :

  • Tous les fichiers doivent être enregistrés au format texte avec des valeurs séparées par une virgule.
  • La première ligne de chaque fichier doit contenir les noms des champs. Chaque sous-section de la section Définition des champs correspond à l'un des fichiers de l'ensemble de données GTFS et répertorie les noms de champs que vous pouvez utiliser dans ce fichier.
  • Tous les noms de champs sont sensibles à la casse.
  • Les valeurs des champs ne doivent pas contenir de tabulations, de retours chariot ni de sauts de ligne.
  • Les valeurs de champs contenant des guillemets ou des virgules doivent être entourées de guillemets. En outre, tout guillemet figurant dans une valeur de champ doit être précédé d'un guillemet. Les fichiers CSV générés par Microsoft Excel suivent ces conventions. Pour en savoir plus sur le format de fichier CSV, consultez la page http://tools.ietf.org/html/rfc4180. L'exemple suivant montre comment les valeurs de champs se présentent dans un fichier CSV :
    • Valeur dans le champ d'origine : Contains "quotes", commas and text
    • Valeur du champ dans le fichier CSV : "Contains ""quotes"", commas and text"
  • Les valeurs des champs ne doivent pas contenir de balises HTML, de commentaires ni de séquences d'échappement.
  • Supprimez les espaces inutiles entre les champs ou les noms de champ. De nombreux analyseurs considèrent que les espaces font partie de la valeur, ce qui peut provoquer des erreurs.
  • Toutes les lignes doivent se terminer par un caractère de saut de ligne CRLF ou LF.
  • Les fichiers doivent être codés au format UTF-8 pour être compatibles avec tous les caractères Unicode. Les fichiers qui contiennent le caractère Unicode BOM (byte-order mark) sont acceptés. Pour en savoir plus sur le caractère BOM et le codage UTF-8, consultez la page http://unicode.org/faq/utf_bom.html#BOM.
  • Tous les fichiers de l'ensemble de données doivent être inclus dans un même dossier zippé.

Définition des champs

agency.txt

Fichier : Obligatoire

Nom du champ Type Obligatoire Description
agency_id ID Obligatoire sous certaines conditions Indique la marque du réseau de transports en commun (souvent identique au nom de l'agence). Notez que dans certains cas, par exemple lorsqu'une agence gère plusieurs services, les noms de marques sont distincts de ceux des agences. Dans ce document, nous utilisons le terme "agence" pour faire référence à la marque. Un ensemble de données peut inclure des données provenant de plusieurs agences. Ce champ est obligatoire pour les ensembles de données qui contiennent les données de plusieurs agences. Dans les autres cas, il est facultatif.
agency_name Texte Obligatoire Nom complet de l'agence de transports en commun.
agency_url URL Obligatoire URL de l'agence de transports en commun.
agency_timezone Fuseau horaire Obligatoire Fuseau horaire de la zone où se trouve l'agence de transports en commun. Si plusieurs agences sont spécifiées dans l'ensemble de données, le champ agency_timezone doit être le même pour chacune d'entre elles.
agency_lang Code de langue Facultatif Langue principale utilisée par cette agence de transports en commun. Ce champ aide les utilisateurs GTFS à définir les règles concernant l'emploi des majuscules et d'autres paramètres spécifiques à la langue pour l'ensemble de données.
agency_phone Numéro de téléphone Facultatif Numéro de téléphone de l'agence spécifiée. Ce champ est une valeur de chaîne qui indique le numéro de téléphone habituel pour la zone desservie par l'agence. Il est censé contenir des signes de ponctuation permettant de regrouper les chiffres du numéro. Le texte accessible par l'automatique (par exemple, le numéro "503-238-RIDE" de TriMet) est autorisé, à condition que le champ ne contienne aucun autre texte descriptif.
agency_fare_url URL Facultatif URL d'une page Web qui permet à un usager d'acheter des tickets ou d'autres titres de transport en ligne auprès de cette agence.
agency_email Adresse e-mail Facultatif Adresse e-mail consultée régulièrement par le service client de l'agence. Cette adresse e-mail doit constituer un point de contact via lequel les usagers des transports en commun peuvent contacter un conseiller clientèle de l'agence.

stops.txt

Fichier : Obligatoire

Nom du champ Type Obligatoire Description
stop_id ID Obligatoire Identifie un arrêt, une station ou une entrée de station.

Le terme "entrée de station" désigne à la fois les entrées et les sorties de station. Les arrêts, les stations et les entrées de station sont collectivement appelés "emplacements". Le même arrêt peut être desservi par plusieurs itinéraires.
stop_code Texte Facultatif Texte court ou numéro identifiant l'emplacement pour les usagers. Ces codes sont souvent utilisés dans les systèmes d'information par téléphone sur les transports en commun ou imprimés sur les panneaux, afin de fournir aux usagers des informations sur un emplacement en particulier. La valeur de stop_code peut être identique à celle de stop_id si elle est destinée à être vue par les usagers. Laissez ce champ vide pour les emplacements dont le code n'est pas présenté aux usagers.
stop_name Texte Obligatoire sous certaines conditions Nom de l'emplacement. Utilisez un nom compréhensible à la fois pour les habitants de la région et pour les touristes.

Lorsque l'emplacement est une zone d'embarquement (avec la valeur location_type=4), incluez le nom de la zone (tel qu'il est indiqué par l'agence) dans le champ stop_name. Il peut s'agir simplement d'une lettre (comme dans certaines gares européennes) ou d'un texte de type "zone d'accès aménagée pour les fauteuils roulants" (comme dans le métro de New York) ou "accès aux voitures avant" (RER de Paris).

Obligatoire sous certaines conditions :
• Ce champ est obligatoire pour les emplacements qui sont des arrêts (location_type=0), des stations (location_type=1) ou des entrées/sorties (location_type=2).
• Il est facultatif pour les emplacements qui sont des intersections génériques (location_type=3) ou des zones d'embarquement (location_type=4).
stop_desc Texte Facultatif Description de l'emplacement. Les informations fournies doivent être utiles et de qualité. Ne vous contentez pas de répéter le nom de l'emplacement.
stop_lat Latitude Obligatoire sous certaines conditions Latitude de l'emplacement.

Obligatoire sous certaines conditions :
• Ce champ est obligatoire pour les emplacements qui sont des arrêts (location_type=0), des stations (location_type=1) ou des entrées/sorties (location_type=2).
• Il est facultatif pour les emplacements qui sont des intersections génériques (location_type=3) ou des zones d'embarquement (location_type=4).
stop_lon Longitude Obligatoire sous certaines conditions Longitude de l'emplacement.

Obligatoire sous certaines conditions :
• Ce champ est obligatoire pour les emplacements qui sont des arrêts (location_type=0), des stations (location_type=1) ou des entrées/sorties (location_type=2).
• Il est facultatif pour les emplacements qui sont des intersections génériques (location_type=3) ou des zones d'embarquement (location_type=4).
zone_id ID Obligatoire sous certaines conditions Définit la zone tarifaire d'un arrêt. Ce champ est obligatoire si vous souhaitez fournir des informations tarifaires dans un fichier fare_rules.txt. Autrement, il est facultatif. Si l'enregistrement représente une station ou une entrée de station, le champ zone_id est ignoré.
stop_url URL Facultatif URL d'une page Web qui décrit l'emplacement. Cette URL doit être différente de celles indiquées dans les champs agency.agency_url et routes.route_url.
location_type Énumération Facultatif Type d'emplacement :
• 0 ou vide : arrêt ou quai (lieu où les usagers montent dans un véhicule de transport en commun ou en descendent). Le terme "quai" est utilisé lorsque cette valeur est définie au sein d'un champ parent_station.
• 1 : station (zone ou structure physique comprenant un ou plusieurs quais)
2 : entrée ou sortie (lieu où les usagers peuvent entrer dans une station depuis la rue ou en sortir). Si une entrée/sortie appartient à plusieurs stations, tous les chemins correspondants sont indiqués, et le fournisseur de données doit désigner une station en tant que station principale (parente).
3 : intersection générique (un emplacement dans une station qui ne correspond à aucune autre valeur location_type). Les intersections génériques permettent de relier les chemins définis dans le fichier pathways.txt.
4 : zone d'embarquement (un emplacement spécifique sur un quai où les usagers peuvent monter à bord d'un véhicule ou en descendre).
parent_station ID qui fait référence à stops.stop_id Obligatoire sous certaines conditions Spécifie la hiérarchie entre les différents emplacements définis dans le fichier stops.txt. Contient l'ID de l'emplacement parent, comme suit :
• Arrêt/quai (location_type=0) : le champ parent_station contient l'ID d'une station.
Station (location_type=1) : ce champ doit être vide.
Entrée/sortie (location_type=2) ou intersection générique (location_type=3) : le champ parent_station contient l'ID d'une station (location_type=1).
• zone d'embarquement (location_type=4) : le champ parent_station contient l'ID d'un quai.

Obligatoire sous certaines conditions :
• Ce champ est obligatoire pour les emplacements qui sont des entrées (location_type=2), des intersections génériques (location_type=3) ou des zones d'embarquement (location_type=4).
• Il est facultatif pour les arrêts/quais (location_type=0).
• Il est interdit pour les stations (location_type=1).
stop_timezone Fuseau horaire Facultatif Fuseau horaire de l'emplacement. Si l'emplacement a une station parente, il hérite du fuseau horaire de cette dernière plutôt que d'utiliser la sienne. Les stations et les arrêts sans parents dont la valeur stop_timezone est vide héritent du fuseau horaire spécifié par agency.agency_timezone. Si des valeurs stop_timezone sont fournies, les heures incluses dans le fichier stop_times.txt doivent toujours être indiquées en tant qu'heures depuis minuit dans le fuseau horaire spécifié par le champ agency.agency_timezone. Cela garantit que les valeurs temporelles d'un trajet augmentent toujours au cours de celui-ci, quels que soient les fuseaux horaires traversés.
wheelchair_boarding Énumération Facultatif Indique si l'emplacement est aménagé pour les usagers en fauteuil roulant. Les options suivantes sont acceptées :

Pour les arrêts sans parents :
0 ou vide : aucune information n'est disponible concernant l'accessibilité de l'arrêt.
1 : certains véhicules à cet arrêt peuvent accueillir un usager en fauteuil roulant.
2 : les usagers en fauteuil roulant ne peuvent pas monter à bord des véhicules à cet arrêt.

Pour un arrêt qui fait partie d'une station :
0 ou vide : l'arrêt hérite du comportement wheelchair_boarding de la station parente, s'il est renseigné.
1 : des voies permettent d'accéder en fauteuil roulant à l'arrêt ou au quai en question depuis l'extérieur de la station.
2 : aucune voie ne permet d'accéder en fauteuil roulant à l'arrêt ou au quai en question depuis l'extérieur de la station.

Pour les entrées/sorties de station :
0 ou vide : l'entrée de la station hérite du comportement wheelchair_boarding de la station principale, s'il est renseigné.
1 : l'entrée de la station est accessible en fauteuil roulant.
2 : aucune voie accessible en fauteuil roulant ne relie l'entrée de la station aux arrêts/quais.
level_id ID qui fait référence à levels.level_id Facultatif Étage auquel l'emplacement se trouve. Un même étage peut être spécifié pour plusieurs stations distinctes.
platform_code Texte Facultatif Identifiant de quai pour un arrêt de type quai (lorsque l'arrêt se trouve dans une station). N'incluez que l'identifiant du quai, tel que "G" ou "3". N'ajoutez pas de mots comme "quai" ou "voie", ou l'équivalent dans la langue du flux. Les utilisateurs du flux peuvent ainsi internationaliser plus facilement l'identifiant du quai et le localiser dans d'autres langues.

routes.txt

Fichier : Obligatoire

Nom du champ Type Obligatoire Description
route_id ID Obligatoire Définit un itinéraire.
agency_id ID qui fait référence à agency.agency_id Obligatoire sous certaines conditions Agence pour l'itinéraire spécifié. Ce champ est obligatoire si le fichier agency.txt de l'ensemble de données inclut des itinéraires proposés par plusieurs agences. Autrement, il est facultatif.
route_short_name Texte Obligatoire sous certaines conditions Version courte du nom d'un itinéraire. Il s'agit généralement d'un identifiant court, abstrait, comme "32", "100X" ou "vert", que les usagers utilisent pour identifier un itinéraire, sans donner d'indications sur les lieux desservis. Vous devez renseigner soit route_short_name, soit route_long_name, soit ces deux champs.
route_long_name Texte Obligatoire sous certaines conditions Le nom complet d'un itinéraire. Ce nom est généralement plus descriptif que la version courte indiquée dans le champ route_short_name. Il inclut souvent la destination ou le terminus de l'itinéraire. Vous devez renseigner soit route_short_name, soit route_long_name, soit ces deux champs.
route_desc Texte Facultatif Description d'un itinéraire. Les informations fournies doivent être utiles et de qualité. Ne vous contentez pas de répéter le nom de l'itinéraire.
Exemple : La ligne A circule entre Inwood-207 St, Manhattan, et Far Rockaway-Mott Avenue, Queens à tout moment de la journée. Par ailleurs, d'autres trains de la ligne A circulent de 6 heures à environ minuit, entre Inwood-207 St et Lefferts Boulevard (les trains alternent généralement entre Lefferts Blvd et Far Rockaway).
route_type Énumération Obligatoire Décrit le moyen de transport utilisé pour un itinéraire. Les options suivantes sont acceptées :

0 : tramway ou métro léger. Tout système de métro léger ou circulant sur la chaussée dans une zone métropolitaine.
1 : métro. Tout système ferroviaire souterrain circulant au sein d'une zone métropolitaine.
2 : train. Utilisé pour les trajets interurbains ou longue distance.
3 : bus. Utilisé pour les lignes de bus courte et longue distance.
4 : ferry. Utilisé pour un service de bateaux courte et longue distance.
5 : tramway à traction par câble (utilisé pour les systèmes de tramways au niveau de la chaussée dans lesquels le câble passe sous le véhicule, comme c'est le cas à San Francisco).
6 : téléphérique (service de transport par câble où les cabines, voitures, télécabines ou sièges sont suspendus à l'aide d'un ou de plusieurs câbles).
7 : funiculaire (tout système ferroviaire conçu pour les pentes raides).
11 : trolleybus (autobus électrique alimenté par des lignes aériennes de contact).
12 : monorail (service de chemin de fer roulant sur une voie constituée d'un rail ou d'une poutre unique).
route_url URL Facultatif URL d'une page Web pour un itinéraire spécifique. Elle doit être différente de celle indiquée dans le champ agency.agency_url.
route_color Couleur Facultatif Couleur de l'itinéraire correspondant à celle utilisée dans les supports destinés au public. Blanc (FFFFFF) par défaut, lorsque la valeur est omise ou le champ vide. Les couleurs des champs route_color et route_text_color doivent être suffisamment contrastées pour être lisibles sur un écran noir et blanc.
route_text_color Couleur Facultatif Couleur lisible pour le texte à afficher sur la couleur d'arrière-plan route_color. Noir (000000) par défaut, lorsque la valeur est omise ou le champ vide. Les couleurs des champs route_color et route_text_color doivent être suffisamment contrastées pour être lisibles sur un écran noir et blanc.
route_sort_order Entier non négatif Facultatif Spécifie l'ordre dans lequel les itinéraires seront présentés aux usagers. Les itinéraires associés à une valeur route_sort_order inférieure doivent être affichés en premier.
continuous_pickup Énumération Facultatif Indique si un usager peut monter librement à bord du véhicule de transport en commun à tout moment le long du parcours. Le parcours est décrit dans le fichier shapes.txt pour chaque trajet qui emprunte l'itinéraire. Les options suivantes sont acceptées :

0 : montée libre à tout moment le long du parcours.
1 ou vide : montée libre non autorisée le long du parcours.
2 : les usagers doivent téléphoner à l'agence pour pouvoir monter à bord librement à tout moment le long du parcours.
3 : les usagers doivent contacter le conducteur pour pouvoir monter à bord librement à tout moment le long du parcours.

Le comportement par défaut de montée libre à tout moment le long du parcours, qui est défini dans le fichier routes.txt, peut être modifié dans le fichier stop_times.txt..
continuous_drop_off Énumération Facultatif Indique si un usager peut descendre librement du véhicule de transport en commun à tout moment le long du parcours. Le parcours est décrit dans le fichier shapes.txt pour chaque trajet qui emprunte l'itinéraire. Les options suivantes sont acceptées :

0 : descente libre à tout moment le long du parcours.
1 ou vide : descente libre non autorisée le long du parcours.
2 : les usagers doivent téléphoner à l'agence pour pouvoir descendre librement à tout moment le long du parcours.
3 : les usagers doivent contacter le conducteur pour pouvoir descendre librement à tout moment le long du parcours.

Le comportement par défaut de descente libre à tout moment le long du parcours, qui est défini dans le fichier routes.txt, peut être modifié dans le fichier stop_times.txt.

trips.txt

Fichier : Obligatoire

Nom du champ Type Obligatoire Description
route_id ID qui fait référence à routes.route_id Obligatoire Définit un itinéraire.
service_id ID qui fait référence à calendar.service_id ou à calendar_dates.service_id Obligatoire Définit les dates auxquelles le service est disponible pour un ou plusieurs itinéraires.
trip_id ID Obligatoire Définit un trajet.
trip_headsign Texte Facultatif Texte qui apparaît sur la signalétique indiquant aux usagers la destination du trajet. Ce champ permet de différencier les modèles de service sur un même itinéraire. Si le texte change au cours d'un trajet, vous pouvez remplacer le champ trip_headsign par les valeurs indiquées dans le champ stop_times.stop_headsign.
trip_short_name Texte Facultatif Texte affiché qui permet aux usagers d'identifier le trajet (par exemple, les numéros de train pour les trajets en train de banlieue). Si les usagers n'ont pas l'habitude d'utiliser des noms de trajet, laissez ce champ vide. Si vous fournissez une valeur trip_short_name, celle-ci doit identifier un trajet unique au cours d'une journée de service. N'utilisez pas ce champ pour indiquer les noms de destination ni pour les mentions de ligne limitée/express.
direction_id Énumération Facultatif Indique la direction du trajet. Ce champ n'est pas utilisé pour les itinéraires, mais il permet de distinguer les trajets en fonction de leur direction lors de la publication des horaires. Les options suivantes sont acceptées :

0 : trajet dans un sens (trajet aller, par exemple).
1 : trajet dans le sens opposé (trajet retour, par exemple).
Par exemple, vous pouvez attribuer un nom à chacun des deux sens d'un ensemble de trajets en combinant les champs trip_headsign et direction_id. Voici comment le fichier trips.txt pourrait se présenter en vue de la publication des horaires :
trip_id,...,trip_headsign,direction_id
1234,...,Airport,0
1505,...,Downtown,1
block_id ID Facultatif Identifie le bloc auquel appartient le trajet. Un bloc comprend un seul trajet ou de nombreux trajets séquentiels effectués par le même véhicule. Les trajets sont regroupés dans un bloc en fonction de journées de service partagées et du champ block_id. Un champ block_id peut inclure des trajets associés à plusieurs journées de service, qui constituent alors des blocs distincts. Pour plus de détails, consultez l'exemple ci-dessous.
shape_id ID qui fait référence à shapes.shape_id Obligatoire sous certaines conditions Définit une forme géospatiale décrivant le parcours du véhicule lors d'un trajet.

Obligatoire sous certaines conditions :
ce champ est obligatoire si un comportement de montée/descente libre est défini pour le trajet, au niveau de l'itinéraire, ou au niveau des heures d'arrivée et de départ aux arrêts.
Dans les autres cas, il est facultatif.
wheelchair_accessible Énumération Facultatif Indique si le trajet spécifié est aménagé pour les usagers en fauteuil roulant. Les options suivantes sont acceptées :

0 ou vide : aucune information disponible concernant les aménagements pour usagers en fauteuil roulant pour le trajet.
1 : le véhicule utilisé pour ce trajet peut accueillir au moins un usager en fauteuil roulant.
2 : le véhicule utilisé pour ce trajet ne peut accueillir aucun usager en fauteuil roulant.
bikes_allowed Énumération Facultatif Indique si les vélos sont autorisés pour le trajet spécifié. Les options suivantes sont acceptées :

0 ou vide : aucune information disponible concernant les aménagements pour vélos pour le trajet.
1 : le véhicule utilisé pour ce trajet peut accueillir au moins un vélo.
2 : le véhicule utilisé pour ce trajet ne peut accueillir aucun vélo.

Exemple de blocs et de journées de service

L'exemple suivant montre des trajets organisés en blocs distincts pour chaque jour de la semaine.

route_id trip_id service_id block_id (heure au premier arrêt) (heure au dernier arrêt)
red trip_1 lun-mar-mer-jeu-ven-sam-dim red_loop 22:00:00 22:55:00
red trip_2 ven-sam-dim red_loop 23:00:00 23:55:00
red trip_3 ven-sam red_loop 24:00:00 24:55:00
red trip_4 lun-mar-mer-jeu red_loop 20:00:00 20:50:00
red trip_5 lun-mar-mer-jeu red_loop 21:00:00 21:50:00

Remarques concernant le tableau ci-dessus :

  • Du vendredi au samedi matin, un seul véhicule effectue les trajets trip_1, trip_2 et trip_3 (entre 22 h 00 et 00 h 55). Notez que le dernier trajet est effectué le samedi, de 00 h 00 à 00 h 55, même s'il fait partie de la "journée de service" du vendredi, étant donné que les horaires sont compris entre 24:00:00 et 24:55:00.
  • Le lundi, mardi, mercredi et jeudi, un seul véhicule effectue les trajets trip_1, trip_4 et trip_5 dans un bloc compris entre 20 h 00 et 22 h 55.

stop_times.txt

Fichier : Obligatoire

Nom du champ Type Obligatoire Description
trip_id ID qui fait référence à trips.trip_id Obligatoire Définit un trajet.
arrival_time Heure Obligatoire sous certaines conditions Heure d'arrivée à un arrêt donné pour un trajet spécifique inclus dans un itinéraire. Si les heures d'arrivée et de départ sont identiques pour un arrêt spécifique, saisissez la même valeur pour les champs arrival_time et departure_time. Pour les heures après minuit de la journée de service, saisissez une valeur supérieure à 24:00:00 au format HH:MM:SS dans l'heure locale du jour où commence le trajet.

Les repères temporels correspondent à des arrêts planifiés où le véhicule respecte scrupuleusement les heures d'arrivée et de départ spécifiées. Si un arrêt donné ne correspond pas à un repère temporel, utilisez soit une estimation, soit une heure interpolée. Si l'information n'est pas disponible, laissez le champ "arrival_time" vide. Pour préciser que les horaires fournis sont interpolés, utilisez la valeur 0 pour le champ timepoint. Si vous procédez de cette manière (timepoint=0), utilisez la valeur 1 pour le champ timepoint pour les horaires qui correspondent à des repères temporels. Fournissez des heures d'arrivée pour tous les arrêts qui constituent des repères temporels. Une heure d'arrivée doit être spécifiée pour le premier et le dernier arrêt d'un trajet.
departure_time Heure Obligatoire sous certaines conditions Heure de départ depuis un arrêt donné pour un trajet spécifique inclus dans un itinéraire. Pour les heures après minuit de la journée de service, saisissez une valeur supérieure à 24:00:00 au format HH:MM:SS de l'heure locale le jour où commence le trajet. Si les heures d'arrivée et de départ sont identiques pour un arrêt spécifique, saisissez la même valeur pour les champs arrival_time et departure_time. Pour en savoir plus sur la bonne utilisation des repères temporels, lisez la description du champ arrival_time.

Le champ departure_time doit indiquer des valeurs de temps chaque fois que possible, y compris les durées estimées ou interpolées (non contractuelles) entre les repères temporels.
stop_id ID qui fait référence à stops.stop_id Obligatoire Identifie l'arrêt desservi. Tous les arrêts desservis pendant un trajet doivent être référencés dans le fichier stop_times.txt. Les emplacements référencés doivent être des arrêts, et non des stations ou des entrées de station. Un arrêt peut être desservi plusieurs fois au cours du même trajet, et plusieurs trajets et itinéraires peuvent desservir le même arrêt.
stop_sequence Entier non négatif Obligatoire Ordre des arrêts desservis lors d'un trajet particulier. Les valeurs doivent augmenter à mesure du trajet, mais ne doivent pas nécessairement être consécutives.
Par exemple, le champ stop_sequence du premier arrêt du trajet pourrait avoir la valeur 1, le champ stop_sequence du deuxième arrêt la valeur 23, le champ stop_sequence du troisième arrêt la valeur 40, et ainsi de suite.
stop_headsign Texte Facultatif Texte qui apparaît sur la signalétique indiquant aux usagers la destination du trajet. Utilisez ce champ pour remplacer la valeur par défaut du champ trips.trip_headsign lorsque le texte du panneau varie entre les arrêts. Si ce texte s'applique à l'intégralité du trajet, utilisez plutôt le champ trips.trip_headsign.

Une valeur stop_headsign indiquée pour un champ stop_time ne s'applique pas aux valeurs  stop_time suivantes pour un même trajet. Si vous souhaitez remplacer le texte du champ trip_headsign pour plusieurs valeurs stop_time d'un même trajet, vous devez répéter la valeur stop_headsign sur chaque ligne stop_time.
pickup_type Énumération Facultatif Indique les possibilités de montée à bord. Les options suivantes sont acceptées :

0 ou vide : les usagers peuvent monter à bord aux horaires standards.
1 : les usagers ne peuvent pas monter à bord.
2 : les usagers doivent téléphoner à l'agence pour pouvoir monter à bord.
3 : les usagers doivent contacter le conducteur pour pouvoir monter.
drop_off_type Énumération Facultatif Indique les possibilités de descente du véhicule. Les options suivantes sont acceptées :

0 ou vide : les usagers peuvent descendre aux horaires standards.
1 : les usagers ne peuvent pas descendre du véhicule.
2 : les usagers doivent téléphoner à l'agence pour pouvoir descendre du véhicule.
3 : les usagers doivent contacter le conducteur pour pouvoir descendre du véhicule.
continuous_pickup Énumération Facultatif Indique si un usager peut monter librement à bord du véhicule de transport en commun à tout moment le long du parcours. Le parcours est décrit dans le fichier shapes.txt, entre l'heure stop_time et l'heure stop_time suivante du champ stop_sequence associé au trajet. Les options suivantes sont acceptées :

0 : montée libre à tout moment le long du parcours.
1 ou vide : montée libre non autorisée le long du parcours.
2 : les usagers doivent téléphoner à l'agence pour pouvoir monter à bord librement à tout moment le long du parcours.
3 : les usagers doivent contacter le conducteur pour pouvoir monter à bord librement à tout moment le long du parcours.

Le comportement par défaut de montée libre à tout moment le long du parcours, qui est défini dans le fichier stop_times.txt remplace tout comportement défini dans le fichier routes.txt.
continuous_drop_off Énumération Facultatif Indique si un usager peut descendre librement du véhicule en transport en commun à tout moment le long du parcours, comme décrit dans le fichier shapes.txt, entre l'heure stop_time et l'heure stop_time suivante du champ stop_sequence associé au trajet.

0 : descente libre à tout moment le long du parcours.
1 ou vide : descente libre non autorisée le long du parcours.
2 : les usagers doivent téléphoner à l'agence pour pouvoir descendre librement à tout moment le long du parcours.
3 : les usagers doivent contacter le conducteur pour pouvoir descendre librement à tout moment le long du parcours.

Le comportement par défaut de descente libre à tout moment le long du parcours, qui est défini dans le fichier stop_times.txt remplace tout comportement défini dans le fichier routes.txt.
shape_dist_traveled Flottant non négatif Facultatif Indique la distance réelle parcourue le long du tracé donné entre le premier arrêt et l'arrêt spécifié dans cet enregistrement. Ce champ détermine la proportion du tracé à afficher entre deux arrêts donnés d'un trajet. La valeur doit être exprimée dans les mêmes unités que celles utilisées dans le fichier shapes.txt. Les valeurs saisies dans le champ shape_dist_traveled doivent augmenter conformément à celles du champ stop_sequence : elles ne peuvent pas être utilisées pour indiquer un trajet inverse sur un itinéraire.
Exemple : Si un bus parcourt une distance de 5,25 kilomètres du début du tracé à l'arrêt, le champ shape_dist_traveled présentera la valeur 5.25.
timepoint Énumération Facultatif Indique si les heures d'arrivée et de départ spécifiées pour un arrêt sont strictement respectées par le véhicule, ou s'il s'agit plutôt d'heures approximatives et/ou interpolées. Ce champ permet au producteur d'un ensemble de données GTFS de fournir des heures d'arrêt interpolées, tout en indiquant si les heures sont approximatives. Les options suivantes sont acceptées :

0 : les horaires sont considérés comme approximatifs.
1 ou vide : les horaires sont considérés comme exacts.

calendar.txt

Fichier : obligatoire sous certaines conditions

Nom du champ Type Obligatoire Description
service_id ID Obligatoire Définit de façon unique les dates auxquelles le service est disponible pour un ou plusieurs itinéraires. Chaque valeur du champ service_id peut apparaître au maximum une fois dans un fichier calendar.txt.
monday Énumération Obligatoire Indique si le service est proposé tous les lundis de la plage de dates spécifiée par les champs start_date et end_date. Remarque : Vous pouvez répertorier des exceptions pour des dates particulières dans le fichier calendar_dates.txt. Les options suivantes sont acceptées :

1 : le service est disponible tous les lundis de la plage de dates.
0 : le service n'est pas disponible les lundis de la plage de dates.
tuesday Énumération Obligatoire Fonctionne comme le champ monday, mais pour les mardis.
wednesday Énumération Obligatoire Fonctionne comme le champ monday, mais pour les mercredis.
thursday Énumération Obligatoire Fonctionne comme le champ monday, mais pour les jeudis.
friday Énumération Obligatoire Fonctionne comme le champ monday, mais pour les vendredis.
saturday Énumération Obligatoire Fonctionne comme le champ monday, mais pour les samedis.
sunday Énumération Obligatoire Fonctionne comme le champ monday, mais pour les dimanches.
start_date Date Obligatoire Date de début du service.
end_date Date Obligatoire Date de fin du service (date incluse dans la période de service).

calendar_dates.txt

Fichier : obligatoire sous certaines conditions

Le tableau calendar_dates.txt vous permet d'activer ou de désactiver explicitement des services en fonction de dates. Vous pouvez l'utiliser de deux manières.

  • Méthode recommandée : utilisez le fichier calendar_dates.txt conjointement avec le fichier calendar.txt pour créer des exceptions aux fréquences de service par défaut définies dans le fichier calendar.txt. Cette approche est adaptée si votre service est généralement régulier et comporte quelques modifications à des dates précises (pour des services assurés lors d'événements spéciaux ou des horaires scolaires, par exemple). Dans ce cas, la valeur du champ calendar_dates.service_id est un ID qui fait référence au champ calendar.service_id.
  • Autre méthode : omettez le fichier calendar.txt et incluez chaque date de service dans le fichier calendar_dates.txt. Cette méthode permet de prendre en compte des horaires variables et convient aux services n'ayant pas d'horaires hebdomadaires standards. Dans ce cas, la valeur du champ service_id est un ID.
Nom du champ Type Obligatoire Description
service_id ID qui fait ou non référence à calendar.service_id Obligatoire Définit les dates auxquelles le service est exceptionnellement disponible pour un ou plusieurs itinéraires. Chaque paire (service_id, date) ne peut apparaître qu'une seule fois dans le fichier calendar_dates.txt si vous utilisez calendar.txt et calendar_dates.txt conjointement. Si la même valeur service_id apparaît dans les fichiers calendar.txt et calendar_dates.txt, les informations contenues dans le fichier calendar_dates.txt modifient celles indiquées pour le service dans le fichier calendar.txt.
date Date Obligatoire Date à laquelle le service proposé est différent du service standard.
exception_type Énumération Obligatoire Indique si le service est disponible à la date spécifiée dans le champ "Date". Les options suivantes sont acceptées :

1 : le service a été ajouté pour la date spécifiée.
2 : le service a été supprimé pour la date spécifiée.
Prenons l'exemple d'un itinéraire qui propose un ensemble de trajets les jours fériés et un autre ensemble de trajets tous les autres jours. Vous pourriez alors définir un champ service_id correspondant aux horaires de service standards et un autre champ service_id correspondant aux horaires pendant les jours fériés. Pour chaque jour férié, dans le fichier calendar_dates.txt, vous pourriez définir la date concernée dans le champ service_id correspondant et supprimer cette même date des horaires standards du champ service_id.

fare_attributes.txt

Fichier : facultatif

Nom du champ Type Obligatoire Description
fare_id ID Obligatoire Identifie une classe tarifaire.
price Flottant non négatif Obligatoire Tarif du titre de transport dans la devise spécifiée dans le champ currency_type.
currency_type Code de devise Obligatoire Devise utilisée pour régler le titre de transport.
payment_method Énumération Obligatoire Indique à quel moment le titre de transport doit être réglé. Les options suivantes sont acceptées :

0 : les usagers achètent le titre de transport lorsqu'ils montent à bord.
1 : les usagers doivent acheter le titre de transport avant de monter à bord.
transfers Énumération Obligatoire Spécifie le nombre de correspondances autorisées pour ce tarif. Contrairement aux autres champs obligatoires, ce champ spécifique peut rester vide. Les options suivantes sont acceptées :

0 : aucune correspondance n'est autorisée pour ce tarif.
1 : une seule correspondance est autorisée.
2 : deux correspondances sont autorisées.
Champ vide : le nombre de correspondances autorisées est illimité.
agency_id ID qui fait référence à agency.agency_id Obligatoire sous certaines conditions Identifie l'agence qui définit le tarif. Ce champ est obligatoire pour les ensembles de données comprenant plusieurs agences dans le fichier agency.txt. Autrement, il est facultatif.
transfer_duration Entier non négatif Facultatif Durée, en secondes, avant l'expiration d'une correspondance. Si vous attribuez la valeur 0 au champ transfers, celui-ci peut servir à indiquer la durée de validité d'un titre de transport. Il est également possible de laisser ce champ vide.

fare_rules.txt

Fichier : facultatif

Le tableau fare_rules.txt indique la manière dont les tarifs définis dans le fichier fare_attributes.txt s'appliquent à un itinéraire. La plupart des structures tarifaires utilisent une combinaison des règles suivantes :

  • Le tarif dépend des stations de départ ou d'arrivée.
  • Le tarif dépend des zones que l'itinéraire traverse.
  • Le tarif dépend de l'itinéraire parcouru.

Pour obtenir des exemples illustrant une structure tarifaire avec les fichiers fare_rules.txt et fare_attributes.txt, consultez la page https://code.google.com/p/googletransitdatafeed/wiki/FareExamples dans le wiki du projet Open Source GoogleTransitDataFeed.

Nom du champ Type Obligatoire Description
fare_id ID qui fait référence à fare_attributes.fare_id Obligatoire Identifie une classe tarifaire.
route_id ID qui fait référence à routes.route_id Facultatif Identifie un itinéraire associé à la classe tarifaire. S'il existe plusieurs itinéraires présentant les mêmes attributs de tarif, créez un enregistrement dans le fichier fare_rules.txt pour chaque itinéraire.
Par exemple, si la classe tarifaire "b" est valide sur les itinéraires "TSW" et "TSE", le fichier fare_rules.txt contiendra ces lignes pour la classe tarifaire :
fare_id,route_id
b,TSW
b,TSE
origin_id ID qui fait référence à stops.zone_id Facultatif Identifie une zone de provenance. Si une classe tarifaire comprend plusieurs zones de provenance, créez alors un enregistrement dans le fichier fare_rules.txt pour chaque champ origin_id.
Si, par exemple, la classe tarifaire "b" est valide pour tous les trajets en provenance de la zone "2" ou "8", le fichier fare_rules.txt contiendra ces lignes pour la classe tarifaire :
fare_id,...,origin_id
b,...,2
b,...,8
destination_id ID qui fait référence à stops.zone_id Facultatif Identifie une zone de destination. Si une classe tarifaire comprend plusieurs zones de destination, créez alors un enregistrement dans le fichier fare_rules.txt pour chaque champ destination_id.
Par exemple, vous pouvez utiliser un champ origin_id avec un champ destination_id pour préciser que la classe tarifaire "b" est valable pour les trajets entre les zones "3" et "4", et pour les trajets entre les zones "3" et "5". Dans ce cas, le fichier fare_rules.txt contiendra les enregistrements suivants pour la classe tarifaire :
fare_id,...,origin_id,destination_id
b,...,3,4
b,...,3,5
contains_id ID qui fait référence à stops.zone_id Facultatif Identifie les zones que l'usager traverse pour une classe tarifaire donnée. Dans certains systèmes, la classe tarifaire est calculée selon cette information.
Si, par exemple, la classe tarifaire "c" est associée à tous les trajets de l'itinéraire GRT qui traverse les zones 5, 6 et 7, le fichier fare_rules.txt contiendra ces lignes :
fare_id,route_id,...,contains_id
c,GRT,...,5
c,GRT,...,6
c,GRT,...,7
Étant donné que toutes les zones contains_id doivent avoir une correspondance afin que le tarif soit appliqué, un itinéraire qui traverse les zones 5 et 6, sans passer par la zone 7, ne sera pas associé à la classe tarifaire "c". Pour en savoir plus, consultez la page https://code.google.com/p/googletransitdatafeed/wiki/FareExamples dans le wiki de projet GoogleTransitDataFeed.

shapes.txt

Fichier : facultatif

Les tracés décrivent le parcours emprunté par un véhicule sur la totalité d'un itinéraire. Ils sont définis dans le fichier shapes.txt. Les tracés sont associés à des trajets. Ils sont représentés par une séquence de points successifs que le véhicule traverse. Les tracés ne doivent pas reproduire exactement l'emplacement des arrêts. Toutefois, tous les arrêts d'un trajet doivent se trouver non loin du tracé de ce dernier, c'est-à-dire proches des segments de ligne droite reliant les points du tracé.

Nom du champ Type Obligatoire Description
shape_id ID Obligatoire Identifie un tracé.
shape_pt_lat Latitude Obligatoire Latitude d'un point du tracé. Chaque enregistrement dans le fichier shapes.txt représente un point utilisé pour définir le tracé.
shape_pt_lon Longitude Obligatoire Longitude d'un point du tracé.
shape_pt_sequence Entier non négatif Obligatoire Séquence selon laquelle les points du tracé sont reliés les uns aux autres pour former le tracé. Les valeurs doivent augmenter au fur et à mesure du trajet, mais ne doivent pas nécessairement être consécutives.
Si, par exemple, le tracé "A_shp" présente trois points dans sa définition, le fichier shapes.txt est susceptible de contenir ces lignes pour définir le tracé :
shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence
A_shp,37.61956,-122.48161,0
A_shp,37.64430,-122.41070,6
A_shp,37.65863,-122.30839,11
shape_dist_traveled Flottant non négatif Facultatif Distance réelle parcourue le long du tracé entre le premier point du tracé jusqu'à celui spécifié dans cet enregistrement. Les outils de planification d'itinéraires peuvent utiliser ces informations pour afficher la portion correcte du tracé sur une carte. Les valeurs saisies doivent augmenter conformément à celles du champ shape_pt_sequence : elles ne peuvent pas être utilisées pour indiquer un trajet inverse sur un itinéraire. Les unités de distance doivent correspondre à celles utilisées dans le fichier stop_times.txt.
Si, par exemple, un bus traverse les trois points définis ci-dessus pour le tracé A_shp, les valeurs supplémentaires du champ shape_dist_traveled (indiquées ici en kilomètres) seraient les suivantes :
shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence,shape_dist_traveled
A_shp,37.61956,-122.48161,0,0
A_shp,37.64430,-122.41070,6,6.8310
A_shp,37.65863,-122.30839,11,15.8765

frequencies.txt

Fichier : facultatif

Le fichier frequencies.txt contient les trajets effectués à intervalles réguliers (soit les laps de temps entre les trajets). Vous pouvez inclure deux types de service différents :

  • Un service basé sur la fréquence (exact_times=0). Ce type de service n'a pas d'horaire précis dans la journée. Les opérateurs s'efforcent plutôt de respecter un intervalle prédéterminé entre les trajets.
  • Une représentation compressée d'un service basé sur des horaires (exact_times=1). Ce type de service effectue des trajets à intervalles fixes sur une période spécifiée. Dans ce cas, les opérateurs s'efforcent de respecter strictement un horaire.
Nom du champ Type Obligatoire Description
trip_id ID qui fait référence à trips.trip_id Obligatoire Identifie un trajet auquel la fréquence de service spécifiée s'applique.
start_time Heure Obligatoire Heure à laquelle le premier véhicule part du premier arrêt du trajet à la fréquence spécifiée.
end_time Heure Obligatoire Heure à laquelle le service passe à une fréquence de passage différente ou cesse d'être assuré à partir du premier arrêt du trajet.
headway_secs Entier non négatif Obligatoire Laps de temps en secondes entre les départs depuis un même arrêt (appelé "intervalle entre les passages") pour le trajet, pendant la période spécifiée par les champs start_time et end_time. Pour un même trajet, vous pouvez spécifier plusieurs intervalles entre les passages, mais ils ne doivent pas se chevaucher. Un nouvel intervalle peut commencer précisément à l'heure à laquelle un autre se termine.
exact_times Énumération Facultatif Indique le type de service pour un trajet. Pour en savoir plus, consultez la description du fichier. Les options suivantes sont acceptées :

0 ou vide : trajets basés sur la fréquence.
1 : trajets basés sur des horaires et effectués à intervalles fixes tout au long de la journée. Dans ce cas, la valeur end_time doit être supérieure à la valeur start_time du dernier trajet concerné, mais inférieure à la somme des valeurs "start_time" + headway_secs de ce trajet.

transfers.txt

Fichier : facultatif

Lors du calcul d'un itinéraire, les applications qui utilisent l'ensemble de données GTFS interpolent les correspondances sur la base du temps allouable et de la proximité de l'arrêt. Le fichier transfers.txt spécifie des règles et des valeurs de remplacement supplémentaires pour les correspondances sélectionnées.

Nom du champ Type Obligatoire Description
from_stop_id ID qui fait référence à stops.stop_id Obligatoire Identifie l'arrêt ou la station de départ pour une liaison entre deux itinéraires. Si ce champ fait référence à une station, la règle de correspondance s'applique à tous ses arrêts enfants.
to_stop_id ID qui fait référence à stops.stop_id Obligatoire Identifie l'arrêt ou la station d'arrivée pour une liaison entre deux itinéraires. Si ce champ fait référence à une station, la règle de correspondance s'applique à tous ses arrêts enfants.
transfer_type Énumération Obligatoire Indique le type de correspondance pour la paire (from_stop_id, to_stop_id) spécifiée. Les options suivantes sont acceptées :

0 ou vide : point de correspondance recommandé entre deux itinéraires.
1 : point de correspondance temporisé entre deux itinéraires. Le véhicule qui part doit attendre celui qui arrive et laisser suffisamment de temps pour que les usagers puissent prendre la correspondance.
2 : correspondance nécessitant une durée minimale entre l'heure d'arrivée et l'heure de départ. Spécifiez la durée en question dans le champ min_transfer_time.
3 : aucune correspondance ne peut être assurée à cet emplacement.
min_transfer_time Entier non négatif Facultatif Délai (en secondes) devant être accordé pour permettre une correspondance entre deux itinéraires aux arrêts spécifiés. La valeur du champ min_transfer_time doit être suffisante pour permettre à un usager standard de parcourir la distance qui sépare les deux arrêts, et prévoir une marge pour tenir compte des variations éventuelles des horaires prévus.

pathways.txt

Fichier : facultatif

L'extension GTFS-Pathways décrit les trajets en métro ou en train à l'aide d'intersections (les emplacements) et de bordures (les chemins).

Pour passer de l'entrée (soit une intersection représentée sous forme d'emplacement location_type=2) à un quai (soit une intersection représentée sous forme d'emplacement location_type=0), l'usager doit traverser des voies piétonnes, des portes de validation du titre de transport, des escaliers, etc. (à savoir des bordures représentées sous forme de chemins). La proposition ajoute également un autre type d'emplacement, appelé "intersection générique", pour représenter, par exemple, une passerelle à partir de laquelle différentes voies piétonnes peuvent être empruntées.

Attention : Vous devez répertorier tous les chemins au sein d'une station. Par conséquent, dès qu'un quai (en tant qu'arrêt), qu'une entrée ou qu'une intersection appartenant à une station sont reliés à un chemin, il est supposé que cette station comporte une description exhaustive de ses chemins. Les règles de bon sens suivantes s'appliquent donc :

  • Pas d'emplacement sans chemin : si vous définissez un chemin vers un emplacement dans une station, vous devez également en définir pour tous les autres emplacements (sauf pour les quais qui comportent des zones d'embarquement).
  • Pas de quai isolé : chaque quai doit être relié à au moins une entrée par une série de chemins. Il existe en réalité très peu de stations d'où vous ne pouvez pas vous rendre dehors.
  • Pas de chemin vers un quai comportant des zones d'embarquement : ces quais sont considérés comme des objets parents, et non comme des intersections. Il est possible qu'aucun chemin ne leur soit attribué. Tous les chemins doivent mener aux zones d'embarquement.
Nom du champ Type Obligatoire Description
pathway_id ID Obligatoire Le champ pathway_id identifie le chemin de manière unique. Le champ pathway_id est utilisé par les systèmes en tant qu'identifiant interne de cet enregistrement (semblable à la clé primaire dans une base de données). De ce fait, le champ pathway_id doit être unique dans l'ensemble de données.
Plusieurs chemins peuvent relier une même paire (from_stop_id, to_stop_id). Par exemple, c'est le cas lorsque deux escaliers mécaniques côte à côte vont dans des directions opposées, ou lorsqu'un même emplacement est accessible via un escalier et un ascenseur.
from_stop_id ID qui fait référence à stops.stop_id Obligatoire Emplacement de départ du chemin. Il contient un champ stop_id qui identifie un quai, une entrée/sortie, une intersection générique ou une zone d'embarquement à partir du fichier stops.txt.
to_stop_id ID qui fait référence à stops.stop_id Obligatoire Emplacement d'arrivée du chemin. Il contient un champ stop_id qui identifie un quai, une entrée/sortie, une intersection générique ou une zone d'embarquement à partir du fichier stops.txt.
pathway_mode Énumération Obligatoire Type de chemin pour la paire spécifiée (from_stop_id, to_stop_id). Les valeurs suivantes sont acceptées :
• 1 : voie piétonne
• 2 : escalier
• 3 : tapis roulant
• 4 : escalier mécanique
• 5 : ascenseur
• 6 : porte de validation (ou de paiement) du titre de transport, autrement dit chemin qui traverse une zone de la station dans laquelle une preuve de paiement est exigée.
Les portes de validation du titre de transport peuvent séparer les zones de la station réservées aux usagers des zones publiques, ou séparer différentes zones de paiement au sein de la même station. Ces informations peuvent être utilisées pour éviter que les usagers n'empruntent des raccourcis dans les stations qui les obligeraient à s'acquitter inutilement de frais, par exemple s'ils devaient traverser un quai de métro pour atteindre un couloir de bus.
• 7 : porte de sortie : indique un chemin quittant une zone de la station dans laquelle une preuve de paiement est exigée pour entrer dans une zone où cette preuve n'est plus nécessaire.
is_bidirectional Énumération Obligatoire Indique dans quel sens les usagers peuvent emprunter le chemin :
• 0 : chemin unidirectionnel. Les usagers ne peuvent l'emprunter que pour aller de from_stop_id à to_stop_id.
• 1 : chemin bidirectionnel. Les usagers peuvent l'emprunter dans les deux sens.

Les portes de validation du titre de transport (pathway_mode=6) et les portes de sortie (pathway_mode=7) ne peuvent pas être bidirectionnelles.
length Flottant non négatif Facultatif Longueur du chemin en mètres, dans le sens horizontal. La longueur est mesurée en mètres à partir de l'emplacement de départ (défini dans le champ from_stop_id), jusqu'à l'emplacement de destination (défini dans le champ to_stop_id).

Ce champ est recommandé pour les voies piétonnes (pathway_mode=1), les portes de validation du titre de transport (pathway_mode=6) et les portes de sortie (pathway_mode=7).
traversal_time Entier positif Facultatif Durée moyenne, en secondes, nécessaire pour parcourir le chemin à partir de l'emplacement de départ (défini dans le champ from_stop_id) jusqu'à l'emplacement de destination (défini dans le champ to_stop_id).

Ce champ est recommandé pour les tapis roulants (pathway_mode=3), les escaliers mécaniques (pathway_mode=4) et les ascenseurs (pathway_mode=5).
stair_count Entier non nul Facultatif Nombre de marches d'escalier à gravir sur le chemin.

Bonnes pratiques : il est possible d'utiliser l'estimation selon laquelle un étage correspond à 15 marches afin de générer des valeurs approximatives.

Une valeur positive dans le champ stair_count signifie que les usagers doivent monter pour se rendre de l'emplacement from_stop_id à l'emplacement to_stop_id. Une valeur négative dans le champ stair_countsignifie quant à elle que les usagers doivent descendre pour se rendre de l'emplacement from_stop_id à l'emplacement to_stop_id.

Ce champ est recommandé pour les chemins qui comportent des escaliers (pathway_mode=2).
max_slope Flottant Facultatif Pente maximale du chemin exprimée en pourcentage. Les valeurs acceptées sont les suivantes :
• 0 ou vide : pas de pente.
• Nombre à virgule flottante : pourcentage de pente du chemin, positif pour une montée et négatif pour une descente.

N'utilisez ce champ que pour les voies piétonnes (pathway_type=1) et les tapis roulants (pathway_type=3).

Par exemple, la valeur de pente maximale autorisée pour que le chemin soit accessible aux personnes en fauteuil roulant est de 0,083 aux États-Unis (ce qui correspond à 8,3 %). Cela signifie une hausse de 0,083 m (soit 8,3 cm) par tranche de 1 m.
min_width Flottant positif Facultatif Largeur minimale du chemin, en mètres.

Ce champ est vivement recommandé si la largeur minimale est inférieure à un mètre.
signposted_as Texte Facultatif Chaîne de texte correspondant exactement aux panneaux affichés auprès des usagers du service de transports en commun. Ce texte peut être utilisé pour fournir des indications aux usagers ("suivre les panneaux jusqu'à…", par exemple). Ce champ doit comprendre le texte exactement tel qu'il est affiché sur les panneaux, sans traduction.
reversed_signposted_as Texte Facultatif Ce champ est identique à signposted_as, mais il est utilisé lorsque le chemin est parcouru en sens inverse, c'est-à-dire de l'arrêt to_stop_id à l'arrêt from_stop_id.

levels.txt

Fichier : facultatif

Décrit les différents étages d'une station. Ce fichier est particulièrement utile lorsqu'il est utilisé en même temps que le fichier pathways.txt. Il est en outre obligatoire en cas d'ascenseur (pathway_mode=5) afin de pouvoir inviter les usagers à prendre l'ascenseur pour accéder à l'étage "Mezzanine" ou "Quais".

Nom du champ Type Obligatoire Description
level_id ID Obligatoire Identifiant de l'étage pouvant être référencé à partir du fichier stops.txt.
level_index Flottant Obligatoire Indice numérique associé à l'étage. Indique la position relative de cet étage par rapport aux autres. Les étages associés à des indices plus élevés sont considérés comme situés au-dessus de ceux associés à des indices plus faibles.

L'indice 0 indique le rez-de-chaussée. Les étages au-dessus du niveau du sol sont indiqués par des indices positifs, et les étages souterrains par des indices négatifs.
level_name Texte Facultatif Nom facultatif attribué à l'étage. La valeur doit correspondre au nom indiqué dans le bâtiment ou la station (qu'il s'agisse de lettres ou de chiffres). Ce champ permet de guider les usagers vers un ascenseur, par exemple pour les inviter à accéder à l'étage "Mezzanine", "Quais" ou "-1".

feed_info.txt

Fichier : obligatoire sous certaines conditions

Ce fichier contient des informations sur l'ensemble de données lui-même, plutôt que sur les services que cet ensemble décrit. Dans certains cas, l'éditeur de l'ensemble de données est une entité distincte des agences. Si le fichier translations.txt est fourni, ce fichier est obligatoire.

Nom du champ Type Obligatoire Description
feed_publisher_name Texte Obligatoire Nom complet de l'organisation qui publie l'ensemble de données. Peut correspondre à l'une des valeurs du champ agency.agency_name.
feed_publisher_url URL Obligatoire URL du site Web de l'organisation qui publie l'ensemble de données. Peut correspondre à l'une des valeurs du champ agency.agency_url.
feed_lang Code de langue Obligatoire Langue utilisée par défaut pour le texte dans cet ensemble de données. Ce paramètre aide les utilisateurs GTFS à définir les règles liées à l'utilisation des majuscules et d'autres paramètres linguistiques pour l'ensemble de données.

Vous pouvez spécifier une autre langue dans le champ language du fichier translations.txt.

La langue par défaut peut être multilingue lorsque le texte d'origine de l'ensemble de données est rédigé en plusieurs langues. Dans un tel cas, utilisez le code de langue ISO 639-2 mul dans le champ feed_lang. Dans le fichier translations.txt, fournissez une traduction pour chacune des langues utilisées dans l'ensemble de données. Si l'intégralité du texte de l'ensemble de données est rédigée dans la même langue, n'utilisez pas le code de langue mul.

Par exemple, supposons qu'un ensemble de données en Suisse inclut des noms d'arrêts en différentes langues dans le champ stops.stop_name. Chaque nom est rédigé dans la langue principale utilisée dans la zone géographique correspondant à l'arrêt en question. Les arrêts incluent "Genève" pour la ville francophone de Genève, "Zürich" pour la ville germanophone de Zurich et "Biel/Bienne" pour la ville bilingue de Bienne. Dans ce cas, définissez feed_lang=mul et fournissez les traductions suivantes dans le fichier translations.txt :
  • Allemand : "Genf", "Zürich" et "Biel"
  • Français : "Genève", "Zurich" et "Bienne"
  • Italien : "Ginevra", "Zurigo" et "Bienna"
  • Anglais : "Geneva", "Zurich" et "Biel/Bienne"
default_lang Code de langue Facultatif Spécifie la langue à utiliser lorsque l'utilisateur des données ne connaît pas la langue de l'usager. Souvent défini comme en, anglais.
feed_start_date Date Facultatif L'ensemble de données fournit des informations complètes et fiables sur les horaires du service au cours de la période allant du début du jour feed_start_date à la fin du jour feed_end_date. Les deux jours indiqués peuvent être laissés vides s'ils ne sont pas disponibles. La date feed_end_date ne doit pas être antérieure à la date feed_start_date si les deux sont indiquées. Nous recommandons aux fournisseurs de l'ensemble de données d'ajouter des informations sur les horaires en dehors de cette période afin que les usagers soient informés des services susceptibles d'être fournis pendant les périodes à venir. Toutefois, les utilisateurs de l'ensemble de données doivent être conscients que ces renseignements ne sont fournis qu'à titre indicatif. Si les champs feed_start_date ou feed_end_date couvrent des dates en dehors du calendrier actif défini dans les fichiers calendar.txt et calendar_dates.txt, l'ensemble de données suppose de manière explicite qu'aucun service n'est assuré pour les dates qui sont comprises dans la période définie par les champs feed_start_date ou feed_end_date, mais qui ne sont pas incluses dans les dates du calendrier actif.
feed_end_date Date Facultatif Référez-vous à la ligne feed_start_date de ce tableau.
feed_version Texte Facultatif Version actuelle de l'ensemble de données GTFS (sous forme de chaîne). Les applications utilisant l'ensemble de données GTFS peuvent afficher cette valeur afin de permettre aux éditeurs de déterminer si c'est bien la dernière version qui a été intégrée.
feed_contact_email Adresse e-mail Facultatif Adresse e-mail à employer pour les communications liées à l'ensemble de données GTFS et aux pratiques de publication des données. Le champ feed_contact_email fournit un contact technique pour les applications utilisant l'ensemble de données GTFS. Les coordonnées du service client sont fournies dans le fichier agency.txt.
feed_contact_url URL Facultatif URL permettant d'accéder aux coordonnées, à un formulaire Web, au service d'assistance ou à tout autre outil de communication concernant l'ensemble de données GTFS et les pratiques de publication des données. Le champ feed_contact_url fournit un contact technique pour les applications utilisant l'ensemble de données GTFS. Les coordonnées du service client sont fournies dans le fichier agency.txt.

translations.txt

Fichier : facultatif

Nom du champ Type Obligatoire Description
table_name Énumération Obligatoire

Définit le tableau de l'ensemble de données contenant le champ à traduire. Les valeurs suivantes sont autorisées :

  • agency
  • stops
  • routes
  • trips
  • stop_times
  • feed_info
  • pathways
  • levels
  • attributions
field_name Texte Obligatoire

Spécifie le nom du champ à traduire. Les champs de type "Texte" peuvent être traduits, tandis que ceux de type "URL", "Adresse e-mail" et "Numéro de téléphone" peuvent être inclus ici afin de fournir ces informations dans la langue appropriée.

language Code de langue Obligatoire

Indique la langue de traduction.

Si elle est identique à celle de feed_lang dans feed_info.txt, la valeur d'origine du champ correspond à la valeur par défaut utilisée dans les langues sans traduction spécifique.

Par exemple, en Suisse, une ville d'un canton bilingue est officiellement appelée "Biel/Bienne", mais elle est simplement appelée "Bienne" en français et "Biel" en allemand.

translation Texte, URL, adresse e-mail ou numéro de téléphone Obligatoire Spécifie la valeur traduite pour le champ field_name spécifié.
record_id ID Obligatoire sous certaines conditions

Spécifie l'enregistrement correspondant au champ à traduire. La valeur associée à record_id doit correspondre à l'identifiant principal d'un tableau d'ensemble de données, comme indiqué dans le tableau ci-dessous :

table_name record_id
agency agency_id
stops stop_id
routes route_id
trips trip_id
stop_times trip_id
pathways pathway_id
levels level_id
attributions attribution_id

Les conditions suivantes déterminent comment ce champ peut être utilisé :

  • Utilisation interdite si table_name correspond à feed_info.
  • Utilisation interdite si field_value est défini.
  • Utilisation obligatoire si field_value est vide.
record_sub_id ID Obligatoire sous certaines conditions

Permet de traduire l'enregistrement contenant le champ lorsque le tableau spécifié dans record_id ne comporte pas d'identifiant unique. La valeur associée à record_sub_id correspond à l'identifiant secondaire d'un tableau d'ensemble de données, comme indiqué dans le tableau ci-dessous :

table_name record_sub_id
agency NONE
stops NONE
routes NONE
trips NONE
stop_times stop_sequence
pathways NONE
levels NONE
attributions NONE

Les conditions suivantes déterminent comment ce champ peut être utilisé :

  • Utilisation interdite si table_name correspond à feed_info.
  • Utilisation interdite si field_value est défini.
  • Utilisation obligatoire si table_name correspond à stop_times et si record_id est défini.

field_value Texte, URL, adresse e-mail ou numéro de téléphone Obligatoire sous certaines conditions

Au lieu de définir l'enregistrement à traduire à l'aide des champs record_id et record_sub_id, vous pouvez utiliser le champ field_value pour définir la valeur à traduire. Si vous utilisez ce champ, la traduction est appliquée lorsque le champ identifié par table_name et field_name contient exactement la même valeur que celle définie dans field_value.

Le champ doit correspondre exactement à la valeur définie dans field_value. La traduction n'est pas appliquée si seulement un sous-ensemble de la valeur correspond à field_value.

Si deux règles de traduction correspondent au même enregistrement, l'une avec field_value et l'autre avec record_id, c'est la règle associée à record_id qui doit être utilisée.

Les conditions suivantes déterminent comment ce champ peut être utilisé :

  • Utilisation interdite si table_name correspond à feed_info.
  • Utilisation interdite si record_id est défini.
  • Utilisation obligatoire si record_id est vide.

attributions.txt

Fichier : facultatif

Nom du champ Type Obligatoire Description
attribution_id ID Facultatif Identifie une attribution pour l'ensemble de données ou un sous-ensemble de ces données. Ce champ est utile en cas de traduction.
agency_id ID faisant référence Facultatif L'agence à laquelle l'attribution s'applique. Si vous définissez une attribution agency_id, route_id ou trip_id, laissez les autres champs vides. Si aucune n'est spécifiée, l'attribution s'applique à l'intégralité de l'ensemble de données.
route_id ID faisant référence Facultatif Ce champ fonctionne de la même manière que agency_id, mais dans ce cas, l'attribution s'applique à un itinéraire. Plusieurs attributions peuvent s'appliquer au même itinéraire.
trip_id ID faisant référence Facultatif Ce champ fonctionne de la même manière que agency_id, mais dans ce cas, l'attribution s'applique à un trajet. Plusieurs attributions peuvent s'appliquer au même trajet.
organization_name Texte Obligatoire Nom de l'organisation à laquelle est attribué l'ensemble de données.
is_producer Énumération Facultatif L'organisation a un rôle de producteur. Les valeurs suivantes sont autorisées :
• 0 ou vide : l'organisation n'a pas ce rôle.
1 : l'organisation a ce rôle.
Au moins l'un des champs (is_producer, is_operator ou is_authority) doit avoir la valeur 1.
is_operator Énumération Facultatif Fonctionne de la même manière que le champ is_producer, mais dans ce cas, l'organisation a le rôle d'opérateur.
is_authority Énumération Facultatif Fonctionne de la même manière que le champ is_producer, mais dans ce cas, l'organisation a le rôle d'autorité.
attribution_url URL Facultatif URL de l'organisation.
attribution_email Adresse e-mail Facultatif Adresse e-mail de l'organisation.
attribution_phone Numéro de téléphone Facultatif Numéro de téléphone de l'organisation.