Créer votre flux de données

Tarifs

Le format General Transit Feed Specification (GTFS) utilise deux fichiers différents pour modéliser les tarifs :

  • fare_attributes.txt : ce fichier contient un attribut associé au tarif qui définit une classe tarifaire. Un attribut associé au tarif présente un prix, une devise et un paramètre définissant s'il doit être acheté à bord du service ou avant l'embarquement. Il définit également le nombre de correspondances pour lesquelles il peut être utilisé et sa durée de validité.
  • fare_rules.txt : ce fichier décrit comment les billets sont appliqués au système de transports en commun.

Cet article décrit comment les deux fichiers fonctionnent conjointement afin de créer un flux de données précis pour vos tarifs.

Attributs associés aux tarifs

 Le fichier fare_attributes.txt définit les aspects d'un tarif (ID, type de paiement, etc.). Ce fichier présente la structure suivante :

fare_attributes.txt file structure

Voici un exemple de fichier fare_attributes.txt à structure simple :

fare_id price currency_type payment_method transfers transfer_duration
1 0,00 USD 0 0 0
2 0,50 USD 0 0 0
3 1,00 USD 0 0 0
4 1,50 USD 0 0 0
5 2,00 USD 0 0 0

Définissez les valeurs price, currency_type et payment_method dans le fichier fare_attributes.txt pour chaque tarif. Autorisez ou empêchez les correspondances à l'aide du champ transfers ("0" correspond à aucune correspondance autorisée, "1" à une correspondance autorisée et "2" à deux correspondances autorisées ; un champ vide autorise un nombre illimité de correspondances). Définissez la durée (en secondes) avant qu'une correspondance n'expire dans le champ transfer_duration. Le système calcule la valeur transfer_duration depuis le départ du premier trajet jusqu'à l'arrivée du dernier (voir l'exemple ci-dessous.)

Important :

  • Pour indiquer la durée de validité d'un billet à un tarif n'autorisant pas les correspondances, donnez la valeur "0" à transfers et indiquez la durée valide (en secondes) dans le champ transfer_duration.
  • À moins que vous n'utilisiez le champ transfer_duration pour indiquer la validité d'un billet, nous vous recommandons de l'ignorer ou de le laisser vide lorsque vous indiquez "0" dans le champ transfers.

Règles applicables aux tarifs

 Le fichier fare_rules.txt décrit comment les billets sont appliqués au système de transports en commun. Ce fichier présente la structure suivante :

fare_rules.txt file structure

Voici un exemple de fichier fare_rules.txt à structure simple :

fare_id route_id origin_id destination_id contains_id
a TSW 1 1  
a TSE 1 1  
a GRT 1 1  
a GRJ 1 1  
b GRT 3 3  
c GRT     6

Le fichier fare_rules.txt accepte les structures tarifaires suivantes :

  1. Le tarif dépend de l'itinéraire choisi.
    • Pour associer un tarif à un itinéraire spécifique, définissez la valeur du champ route_id.
    • Si un tarif est applicable à plusieurs itinéraires, indiquez une valeur pour chaque itinéraire dans le champ fare_rules.
  2. Le tarif dépend des zones ou gares de départ ou d'arrivée.
    • Pour définir des règles de tarification en fonction de la zone ou de la gare de départ ou d'arrivée, utilisez les champs origin_id et destination_id.
    • Les champs origin_id et destination_id font référence aux zones dans lesquelles les gares de départ et d'arrivée sont situées. Pour fournir ces informations dans le fichier stops.txt, ajoutez le champ zone_id.
    • Pour définir des règles en fonction de gares spécifiques, définissez une zone pour chaque gare dans le fichier stops.txt.
  3. Le tarif dépend des zones que l'itinéraire traverse.
    • Pour définir des règles de tarification en fonction des zones que l'itinéraire traverse, définissez les zones dans lesquelles le tarif s'applique via le champ contains_id.
    • Le champ contains_id fait référence à l'identifiant zone_id défini dans le fichier stops.txt.

La plupart des systèmes tarifaires utilisent l'une de ces structures tarifaires ou une combinaison. Les tarifs pour lesquels aucune règle n'a été définie sont valables pour tous les itinéraires qui ne dépassent pas le nombre de correspondances autorisé.

Si plusieurs tarifs sont applicables à un itinéraire donné, le système affiche l'option la moins chère.

Tarifs applicables à plusieurs agences

Si le flux comporte plusieurs agences de transports en commun, ajoutez le champ agency_id au fichier fare_attributes.txt au niveau de chaque tarif. Notez qu'un tarif ne peut être associé qu'à une seule agence. Si plusieurs agences partagent le même tarif, vous devez le dupliquer.

Catégories de tarifs spéciaux

Google Maps n'est pas compatible avec des catégories tarifaires spécifiques, (telles que "adulte", "senior" ou "enfant"). Seul un tarif apparaît dans les résultats de recherche d'un itinéraire. Utilisez la catégorie tarifaire par défaut.

Exemples de scénarios et de structuration des tarifs

Les sections suivantes décrivent des exemples de scénarios et expliquent comment structurer les tarifs.

Exemple 1 : Tous les trajets sont au même tarif, les correspondances sont illimitées

Supposons que l'agence de transports en commun de démonstration présente la structure tarifaire suivante :

  • Les passagers paient 1,00 $ à l'embarquement (price='1,00', currency='USD', payment_method='0').
  • Le billet est valable pour tous les véhicules et n'expire pas (transfers='').
  • Les passagers peuvent utiliser les transports en commun aussi longtemps qu'ils le souhaitent, car le champ transfer_duration a été omis.

Étant donné que tous les trajets sont au même tarif, les transports en commun de démonstration peuvent ignorer le fichier fare_rules.txt.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers
only_fare 1,00 USD 0  

Calcul d'un tarif adulte

L'outil de planification de trajets calcule un tarif de 1 $ pour chaque étape de l'itinéraire comprenant un changement de véhicule. Cependant, les correspondances illimitées étant autorisées, l'outil de planification de trajets n'affiche que les frais les plus bas, c'est-à-dire le tarif adulte de 1 $.

Exemple 2 : Tous les trajets sont au même tarif, aucune correspondance

Supposons que l'agence de transports en commun de démonstration présente la structure tarifaire suivante :

  • Les passagers paient 1,00 $ à l'embarquement (price='1,00', currency='USD', payment_method='0').
  • Les passagers peuvent utiliser les transports en commun aussi longtemps qu'ils le souhaitent, car le champ transfer_duration a été omis.
  • Tout changement de véhicule nécessite un nouveau tarif (transfers='0').

Étant donné que tous les trajets sont au même tarif, les transports en commun de démonstration peuvent ignorer le fichier fare_rules.txt.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers
only_fare 1,00 USD 0 0

Calcul d'un tarif adulte

L'outil de planification de trajets calcule un tarif de 1 $ pour chaque étape de l'itinéraire comprenant un changement de véhicule. Par conséquent, un itinéraire qui nécessite un changement de bus s'élèverait à 2 $.

Exemple 3 : Tous les trajets sont au même tarif, les correspondances sont autorisées

Supposons que l'agence de transports en commun de démonstration présente la structure tarifaire suivante :

  • Les passagers paient 1,00 $ à l'embarquement (price='1,00', currency='USD', payment_method='0').
  • Les correspondances illimitées sont autorisées dans une limite de 90 minutes (transfers='',transfer_duration='5400').

Étant donné que tous les trajets sont au même tarif, les transports en commun de démonstration peuvent ignorer le fichier fare_rules.txt.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
only_fare 1,00 USD 0   5 400

Calcul d'un tarif adulte

L'outil de planification de trajets calcule un tarif de 1 $ pour chaque étape de l'itinéraire comprenant un changement de véhicule. La durée de l'itinéraire est ensuite calculée. Si la durée de l'itinéraire est inférieure à 90 minutes, le tarif s'élève à 1 $.

Exemple 4 : Différents tarifs sont appliqués aux itinéraires locaux et express

Supposons que l'agence de transports en commun de démonstration présente la structure tarifaire suivante :

  1. Les passagers paient 1,75 $ lorsqu'ils embarquent à bord de bus locaux (itinéraire 1).
  2. Les passagers paient 5 $ lorsqu'ils embarquent à bord de bus express (itinéraires 2 et 3).
  3. Les correspondances ne sont pas autorisées.

Étant donné que certains trajets sont plus onéreux que d'autres, les transports en commun de démonstration doivent inclure le fichier fare_rules.txt, et chaque itinéraire doit associer une entrée à un tarif.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers
local_fare 1,75 USD 0 0
express_fare 5,00 USD 0 0

 

Fichier fare_rules.txt

fare_id route_id
local_fare Route_1
express_fare Route_2
express_fare Route_3

Calcul d'un tarif adulte

Le tarif de 5,00 $ est applicable uniquement si vous empruntez les itinéraires 2 ou 3. Le tarif de 1,75 $ s'applique uniquement à l'itinéraire 1. Le tarif de 6,75 $ est appliqué si les itinéraires 1 et 2 sont empruntés.

Exemple 5 : L'achat d'une correspondance augmente le tarif

Supposons que l'agence de transports en commun de démonstration présente la structure tarifaire suivante :

  • Les passagers paient 1,75 € lorsqu'ils embarquent à bord de bus locaux.
  • Ils paient un supplément de 0,25 € à l'embarquement pour acheter une correspondance.
  • Les correspondances achetées sont valables 90 minutes.

Étant donné que ces règles sont applicables à tous les trajets, les transports en commun de démonstration peuvent ignorer le fichier fare_rules.txt.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
simple_fare 1,75 USD 0 0  
plustransfer_fare 2,00 USD 0   5 400

Calcul d'un tarif adulte

Techniquement, les deux tarifs sont appliqués à des itinéraires qui ne comprennent pas de correspondance. Cependant, l'outil de planification de trajets choisit toujours le tarif applicable le moins cher :

  • Pour un itinéraire avec une seule correspondance, le simple_fare s'élève à 3,50 $ contre 2,00  $ lorsqu'une correspondance est achetée. Ainsi, l'outil de planification de trajets indiquera un tarif de 2,00 $ pour tous les itinéraires qui nécessitent un changement de véhicule.
  • Pour un itinéraire sans correspondance, le tarif de 1,75 € est inférieur au montant plustransfer_fare, qui s'élève à 2,00 €. Par conséquent, si un itinéraire n'implique pas de changer de véhicule, le tarif s'élève à 1,75 €.

Exemple 6 : Le tarif dépend des paires de gares, sans prendre en compte le moyen de vous y rendre

Dans cet exemple, seuls les points d'entrée et de sortie du système importent. Pour définir cette structure tarifaire concernant le flux, chaque gare doit disposer de son propre ID de zone, défini dans le fichier stops.txt. Chaque gare est considérée comme une zone unique.

  • Les fichiers fare_attributes.txt et fare_rules.txt définissent une ligne pour chaque paire de gares.
  • Dans le fichier fare_attributes.txt, les champs origin_id et destination_id identifient les paires de gares par ID de zone.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers
!S1_to_S2 1,75 USD 0  
!S1_to_S3 3,25 USD 0  
!S1_to_S4 4,55 USD 0  
       
!S10_to_S1 5,65 USD 0  

Fichier fare_rules.txt

fare_id origin_id destination_id
!S1_to_S2 S1 S2
!S1_to_S3 S1 S3
!S1_to_S4 S1 S4
   
!S10_to_S1 S10 S1

Calcul d'un tarif adulte

L'outil de planification de trajets calcule un itinéraire, puis recherche les règles de tarification jusqu'à ce qu'il trouve une paire de gares correspondant à l'origine et à la destination. Le flux public issu de SF Bay Area BART (réseau de transports en commun de San Francisco) fournit une illustration réaliste de ce type de structure tarifaire.

Exemple 7 : Les tarifs dépendent des zones

Supposons que l'agence de transports en commun de démonstration dispose d'un système à trois zones concentriques, où les tarifs dépendent des zones traversées par l'itinéraire d'un passager. Pour définir cette structure tarifaire pour le flux, les fichiers fare_attributes.txt et fare_rules.txt doivent contenir une ligne pour chaque combinaison de zones possible. Pour les structures tarifaires très complexes traversant plusieurs zones, la méthode la plus simple consiste à programmer la sortie du fichier fare_rules.txt en utilisant l'origine et la destination pour définir les tarifs.

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers
F1 4,15 USD 0  
F2 2,20 USD 0  
F3 2,20 USD 0  
F4 2,95 USD 0  
F5 1,25 USD 0  
F6 1,95 USD 0  
F7 1,95 USD 0  

Fichier fare_rules.txt

fare_id contains_id
F1 1
F1 2
F1 3
F2 1
F2 2
F3 1
F3 3
F4 2
F4 3
F5 1
F6 2
F7 3

Calcul d'un tarif adulte

Regardons de plus près les définitions du fichier fare_rules.txt.

  • F1 s'applique à tous les trajets qui traversent les zones (1,2,3).
  • F2 s'applique à tous les trajets qui traversent les zones (1,2).
  • F3 s'applique à tous les trajets qui traversent les zones (1,3).
  • F4 s'applique à tous les trajets qui traversent les zones (2,3).
  • F5 s'applique à tous les trajets qui traversent uniquement la zone 1.
  • F6 s'applique à tous les trajets qui traversent uniquement la zone 2.
  • F7 s'applique à tous les trajets qui traversent uniquement la zone 3.

L'outil de planification de trajets calcule un itinéraire, puis recherche les règles de tarification afin de déterminer l'application des tarifs en fonction de la zone. Étant donné que F1 comprend également un trajet en zone 1, seul F4 (2,95 $) s'applique à un trajet de la zone 2 vers la zone 3. Une règle tarifaire s'applique uniquement si l'ensemble des zones traversées par un itinéraire correspond exactement à l'ensemble spécifié par la règle tarifaire. Pour un trajet compris entre les zones 2 et 3, l'outil de planification de trajets indique un tarif adulte de 2,95 $.

Exemple 8 : Incidence des correspondances et de leur durée (transfer_duration)

Voici un exemple de correspondance :

  • Le trajet 1 commence à 10h00 et se termine à 11h00.
  • Le trajet 2 commence à 11h15 et se termine à 12h00.
  • Pour que le tarif soit valable pour l'ensemble du voyage, vous devez autoriser au moins une correspondance et une durée de correspondance (transfer_duration) d'au moins deux heures (de 10h00 à 12h00).

Exemple 9 : Tarifs et correspondances groupées

Une correspondance groupée combine deux trajets appartenant à différents itinéraires. Elle permet aux passagers de rester dans le même véhicule lorsqu'ils passent d'un itinéraire à l'autre. Si un trajet inclut une correspondance groupée, le système choisit un tarif applicable à tous les itinéraires concernés. Les correspondances groupées ne sont pas comptabilisées comme des correspondances pour la modélisation des tarifs.

Voici un exemple de modèle de tarif pour une correspondance groupée :

  • Supposons qu'il existe deux itinéraires : A et B.
  • Un trajet sur l'itinéraire A ou B coûte 1 $, et un trajet qui inclut à la fois l'itinéraire A et l'itinéraire B coûte 2 $.

Les valeurs entrées dans les fichiers fare_attributes.txt et fare_rules.txt doivent se présenter comme suit :

Fichier fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
fare_A 1,00 USD 0 0  
fare_B 1,00 USD 0 0  
fare_AB 2,00 USD 0 0  

Fichier fare_rules.txt

fare_id route_id origin_id destination_id contains_id
fare_A route_A        
fare_B route_B        
fare_AB route_A        
fare_AB route_B        
 

Vous avez encore besoin d'aide ?

Essayez les solutions ci-dessous :

Recherche
Effacer la recherche
Fermer le champ de recherche
Menu principal
10402888315501216813
true
Rechercher dans le centre d'aide
true
true
true
true
true
82656
false
false