Description rapide
Les données de formation sont des informations sur les wagons (et les locomotives) d’un train, y compris la formation d’un train. Les données de formation contiennent non seulement la position des différents wagons dans un train, mais aussi les caractéristiques de chaque wagon.
Nos données de formation permettent p. ex. de savoir quelle voiture d’un train spécifique (avec un numéro de train donné) dispose d’un accès à plancher surbaissé, c’est-à-dire d’un accès facile pour les fauteuils roulants ou les poussettes.
Depuis l’automne 2024, nous proposons une API REST qui fournit les données de formation d’un train pour un numéro de train donné, pour un jour de circulation donné, sous la forme d’une structure de données JSON.
Accès à l’API:
Remarque: Une description de la manière d’accéder aux API peut être trouvée ici: Howto: Accès à nos API avec des clés API
Description spécifique
Qui est impliqué?
Le service est fourni par le Team Systemaufgaben Kundeninformation Plus (SKI+) pour le compte de l’Office fédéral des transports (OFT) en Suisse.
Nous obtenons les données relatives aux formations à partir de deux systèmes:
- Le service de formation (FOS) Interface des CFF auprès de laquelle différentes entreprises ferroviaires (EF) livrent leurs données de formation.
- Le moyen de transport Interface du système en temps réel (CUS) des tâches système Information à la clientèle (SKI), qui gère les données en temps réel de tous les moyens de transport des TP.
Alors que l’interface FOS ne fournit “que” des détails sur les formations, l’interface CUS enrichit encore les données de détails tels que la position des wagons (secteurs) sur la voie des arrêts.
Pourquoi la plate-forme Open Data propose-t-elle cela?
La connaissance de la formation d’un train peut être utilisée pour informer les utilisateurs à ce sujet:
- à quel secteur d’une voie d’une gare un accès en fauteuil roulant est possible (ce qui est particulièrement important dans le contexte de la loi sur le handicap (LHand))
- dans quel wagon des crochets pour vélos sont disponibles
- combien de places sont généralement disponibles dans une voiture
- En combinaison avec nos prévisions d’occupation, il est même possible d’afficher l’occupation (à l’échelle du train).
- quels types de locomotives et de wagons circulent sur quelles lignes (par exemple pour les trainspotters, ou pour les entreprises de transport qui combinent leurs services avec les chemins de fer)
Description technique
Quels sont les services (points finaux de l’interface, endpoints) offerts par l’interface des données de formation?
L’interface des données de formation prend en charge les variantes de demandes suivantes. Dans ce contexte, les détails des requêtes sont également documentés via l’interface OpenAPI:
- Arrêts basés – https://api.opentransportdata.swiss/formation/v1/formations_stop_based
- Ce que fait le service:
- Déterminer les formations par arrêt du trajet d’un train.
- Ce dont le service a besoin comme paramètres:
- Le nom d’une EF: la liste des EF autorisées est limitée à celles qui ont donné leur accord pour l’utilisation de leurs données de formation.
- Un jour d’exploitation: le jour pour lequel la formation doit être interrogée. La date ne peut pas être dans le passé. La date ne peut être qu’aujourd’hui (en raison de l’intégration des données en temps réel de CUS).
- Le numéro de train (également appelé numéro de moyen de transport): le train pour lequel on souhaite demander la formation. Ce numéro peut être obtenu de différentes manières, notamment via nos données horaires (dans différents formats de données).
- Ce que le service rend:
- Les arrêts d’un train, avec les détails des arrêts, la formation avec laquelle le train part des arrêts, et quand, de quelle voie, et avec quelles locomotives/voitures rester ensemble jusqu’à où. Il est important que nous indiquions la formation dans une notation compacte qui a son origine dans CUS!
- Cette requête ne contient pas tous les détails de chaque voiture.
- Nous décrivons plus loin l’interprétation de la chaîne courte de formation!
- Cas d’application possible: afficher la formation d’un train sur une voie pour un arrêt spécifique.
- Ce que fait le service:
- Train basé – https://api.opentransportdata.swiss/formation/v1/formations_vehicle_based
- Ce que fait le service:
- Déterminer les formations par véhicule (donc par élément de formation) du train.
- Ce dont le service a besoin comme paramètres:
- Les paramètres sont les mêmes que pour formations_stop_based
- Ce que le service rend:
- Les éléments de la formation avec les détails de chaque véhicule, la position du véhicule dans la formation, ainsi que les arrêts auxquels le véhicule s’arrête le long du trajet avec les détails de l’arrêt, et la voie et le secteur où le véhicule s’arrête aux arrêts respectifs.
- Cette requête n’inclut pas la vue globale du train le long des arrêts.
- Cas d’application possible: le suivi d’un chariot spécifique.
- Ce que fait le service:
- Arrêts et train basés – https://api.opentransportdata.swiss/formation/v1/formations_full
- Ce que fait le service:
- Délivrer les formations aussi bien par arrêt que par véhicule.
- Ce dont le service a besoin comme paramètres:
- Les paramètres sont les mêmes que pour formations_stop_based et formations_vehicle_based
- Ce que le service rend:
- Les arrêts ET les éléments de formation comme pour les variantes respectives décrites ci-dessus.
- Ce que fait le service:
- Informations sur le statut du service – https://api.opentransportdata.swiss/formation/v1/health
- Ce que fait le service:
- Fournit le statut de l’état de fonctionnement actuel.
- Ce dont le service a besoin comme paramètres:
- Rien, aucun paramètre.
- Ce que le service rend:
- Statut relatif à l’état de fonctionnement actuel.
- Ce que fait le service:
Paramètres de la requête
Les paramètres suivants sont passés comme paramètres de requête après un ‘?’ dans l’URL (requête GET):
Paramètre | Description de la valeur et exemple de valeur |
evu | L’EF pour laquelle la demande doit être faite. Actuellement autorisés : BLSP, SBBP, MBC, OeBB, RhB, SOB, THURBO, TPF, TRN, VDBB, ZB |
operationDate | La date à laquelle le train circule et pour laquelle on veut faire la demande. Par exemple 2024-09-18 |
trainNumber | Le numéro de train pour lequel on souhaite obtenir les données de formation. Ex. 2806 |
includeOperationalStops | Si les arrêts d’exploitation (qui ne sont généralement pas pertinents pour les clients !) doivent également être édités. Par exemple, false |
Un exemple de demande serait donc: https://api.opentransportdata.swiss/formation/v1/formations_stop_based?evu=BLSP&operationDate=2025-04-22&trainNumber=2806&includeOperationalStops=false
La réponse
Nous ne décrirons pas ici le modèle de données complet, mais nous ferons plutôt référence au YAML suivant: formations_yaml_change_file_ending_v0.6.1.yml.txt (le fichier est un “.txt”, doit être modifié en “.yaml”).
Interprétation de la chaîne courte de formation:
En principe, la structure de la chaîne diffère selon qu’une voie a des secteurs ou que ceux-ci nous sont connus.


Dans tous les cas, les règles suivantes s’appliquent à la structure:
Element | Description |
---|---|
Sektor | Lettre („A“ … „Z“) |
Status | “-” Véhicule fermé “>” Véhicule avec des groupes qui montent à ce BP “=” Véhicule (partiellement) réservé aux groupes en transit “%” Véhicule ouvert, mais non desservi (uniquement pour les voitures-restaurants) Remarque : “fermé” ne peut apparaître que seul; les autres signes peuvent être combinés. |
[ | Départ du groupe de véhicules appartenant au train Remarque: cela permet de distinguer les véhicules stationnés ou à déplacer des véhicules appartenant au train en marche. |
] | Fin du groupe de véhicules appartenant au train Remarque: cela permet de distinguer les véhicules stationnés ou à déplacer des véhicules appartenant au train en marche. |
( | pas de passage possible vers le véhicule voisin de ce côté du véhicule Remarque: le calcul est effectué sur la base de données de base et d’hypothèses. Il n’est pas garanti que ces informations correspondent dans tous les cas à la réalité. |
) | pas de passage possible vers le véhicule voisin de ce côté du véhicule Remarque: le calcul est effectué sur la base de données de base et d’hypothèses. Il n’est pas garanti que ces informations correspondent dans tous les cas à la réalité. |
FzTypKI | Type de véhicule du point de vue de l’IA. Signification: “1” Voiture voyageurs 1ère classe “2” voitures voyageurs 2ème classe (également déclassées A/AB) “12” voitures voyageurs 1ère et 2ème classe “Voiture-couchette “CC “FA” voiture familiale “WL” voiture-lits “WR” restaurant (voiture-bistrot, voiture-restaurant, etc.) “W1” voiture-restaurant et voiture à places assises combinées 1re classe “W2” voiture-restaurant et voiture à places assises de 2e classe combinées “LK” engin moteur “D” Fourgon à bagages “F” voiture fictive “K” Véhicule sans classe “X” voiture garéeRemarque : CUS convertit le type de véhicule référencé à partir de FOS en un “type d’IA” générique. Les variantes suivantes sont utilisées à cet effet: 1. Transformation des véhicules trop longs: Les rames automotrices qui livrent la source non pas wagon par wagon, mais sous la forme d’un véhicule (surdimensionné), peuvent être configurées par CUS pour être décomposées en wagons individuels. Dans la chaîne, ce n’est pas 1 véhicule qui apparaît alors (généralement de type “12”), mais 2…n véhicules de type “1”, “2”, “12” ou “D”. Le nombre est calculé en fonction du nombre de véhicules perçus par le client. Les véhicules de ce type qui ne transportent pas la première classe au milieu du train sont en général transformés en véhicules sans classe de type “K”. 2. Conversion de véhicules individuels sur la base d’expressions régulières: Tous les véhicules individuels sont transformés en véhicules IA génériques via des expressions régulières prioritaires. 3. Transformation de véhicules individuels en raison du nombre de places assises: Si aucune expression régulière de 2) ne correspond, le type est déterminé sur la base du nombre de places assises de 1re et 2e classe. Si le véhicule ne dispose pas de places assises, le type “D” lui est attribué. Remarque concernant “F”: sur les voies avec secteurs, le delta entre la longueur du train et celle du bord d’arrêt est rempli à l’avant et/ou à l’arrière avec des wagons fictifs. Remarque concernant “X”: les wagons stationnés influencent l’affectation des véhicules d’un train aux secteurs, mais ne font pas partie du train concerné. |
OrdNr | OrdNr Numéro d’ordre pour la réservation de place individuelle qui est ainsi affiché sur les voitures pour les passagers (numéro à 1…3 chiffres) |
Angebot | Offre Liste d’offres liées au véhicule. Celles-ci comprennent: “BHP” Emplacements pour fauteuils roulants “BZ” espace affaires “FZ” zone familiale “KW” plate-forme pour poussette “NF” Véhicule avec accès à plancher bas “VH” crochet/plateforme pour vélo “VR” crochet/plateforme pour vélos avec réservation obligatoire |
Quels sont les principaux termes et concepts à connaître?
Nous utilisons les éléments suivants dans le cadre de notre interface (sans éléments de conteneur)
- StopPoint
- Un StopPoint est un arrêt le long de la feuille de route
- StopTime
- L’heure de départ et d’arrivée
- Track
- La voie au StopPoint
- FormationShortString
- La représentation succincte de la formation (telle que définie par CUS)
- VehicleGoal
- Quels wagons restent ensemble jusqu’à quelle destination, vu d’un arrêt
- JourneyMetaInformation
- Identification claire du trajet
- TrainMetaInformation
- Caractéristiques descriptives du train
- FormationMetaInformation
- Détails sur l’ensemble de la formation, p. ex. nombre de véhicules
- ScheduledStop
- StopPoint, StopTime, Track, détails sur la gestion du train à l’arrêt (par exemple, si le train s’arrête ou s’il passe), ainsi que les écarts de parcours (par exemple, si le train s’arrête ou s’il passe). retards à l’arrivée)
- VehicleIdentifier
- Attributs identifiant de manière unique un véhicule, tels que le numéro de véhicule européen (EVN). Une particularité ici est qu’un véhicule peut faire partie d’un train articulé et n’a donc pas de NIV propre, mais seulement un NIV “généré”. Dans ce cas, il est fait référence au “NAV parental”.
- WheelchairSymbolProperties
- Caractéristiques nécessaires à la détermination du symbole du fauteuil roulant (voir aussi Accessibilité dans le calcul d’itinéraires)
- AccessibilityProperties
- Autres caractéristiques qui peuvent être utilisées dans le sens d’une représentation adaptée aux personnes handicapées
- PictoProperties
- si les différents pictogrammes sont représentés sur un véhicule
- DirectTrolleyInformation
- Si la formation représente des wagons directs
- VehicleRelation
- Cet élément permet de suivre le trajet précédent et le trajet suivant de la formation donnée, qui peut aussi être un trajet de wagon direct.
- VehicleProperties
- Les caractéristiques d’un véhicule faisant partie d’une formation, c’est-à-dire un élément de la formation, et d’où à où le wagon fait partie de la formation
- FormationVehicleAtScheduledStop
- La représentation de la formation par arrêt (pour la requête vehicle_based)
- VehicleRelationship
- La relation entre les trajets, c’est-à-dire comment le trajet change entre deux trajets (par exemple s’il y a une panne)
- VehicleRelationshipDetails
- Les détails d’une relation de conduite.

Restrictions
- Les données se limitent aux entreprises de transport ferroviaire (EF) qui fournissent leurs formations via les Chemins de fer fédéraux suisses (CFF) et qui ont accepté la publication de leurs données en open data.
- Le service ne fournit toutes les données et les données basées sur le véhicule que si toutes les sources (voir note 1) disposent de toutes les données requises. Ceci est particulièrement important si l’on considère que CUS ne dispose de données que pour aujourd’hui + 3 jours.
- Concrètement, les données proviennent du système temps réel PIC (CUS – CUstomer (Information) System – VerkehrsMittel (VM)) et des Formation-Services (FOS) des CFF.