Skip to content

GTFS-RT: Service Alerts (informations sur les événements en Suisse)

Introduction & description technique

GTFS-Realtime est une norme développée par Google qui permet aux entreprises de transport de fournir des informations en temps réel via différents services.

Ce service est une extension de GTFS Static et enrichit les informations de transit statiques avec des informations en temps réel. Les données GTFS en temps réel sont alignées sur les données GTFS statiques. Le Realtime-Feed comprend toutes les modifications connues dans les TP suisses dans toute la fenêtre d’aperçu (trois heures) pour toutes les entreprises de transport qui fournissent des données en temps réel.

GTFS RT permet d’enrichir les informations de transit statiques avec trois types d’informations supplémentaires. Ces trois enrichissements sont généralement mis à disposition individuellement via HTTP et mis à jour régulièrement, ce qui permet aux développeurs de choisir les données en temps réel avec lesquelles ils souhaitent enrichir leurs applications.

  1. Vehicle positions (pas encore disponible)
  2. Trip updates (mis à disposition par les CFF)
  3. Service alerts (mis à disposition par les CFF)

Positions des véhicules (Vehicle positions)

Contiennent des données sur des événements qui se sont déjà produits (par exemple, “le véhicule était à cet endroit il y a une minute”),

Ex : “Ce bus se trouve à l’arrêt Gare de Berne à 18h23”.

Il est possible de publier ici des informations sur l’emplacement des différents véhicules Transit. En outre, le taux d’occupation actuel du véhicule, le type de véhicule ou d’autres informations similaires peuvent également être fournis.

Les Vehicle Positions ne sont pas disponibles sur la plateforme.

Vous trouverez une liste détaillée des différentes unités d’information possibles sur https://developers.google.com/transit/gtfs-realtime/reference/

Mises à jour des trajets (Trip updates)

Ex : “Le bus 18 a actuellement 10 minutes de retard”.

Les retards, les itinéraires modifiés, les véhicules de remplacement ou les suppressions pour certaines lignes y sont publiés en permanence afin de permettre aux voyageurs de planifier leur voyage le plus précisément possible.

Service Alerts

Les informations sur les événements (Service Alerts) informent sur les événements prévisibles ou imprévisibles qui concernent une gare, une ligne ou l’ensemble du réseau (p. ex. “La ligne 3 est fermée jusqu’à 15h00 en raison d’un accident de la circulation).

Ex : “La station de Berne Weissenbühl est actuellement fermée en raison d’un accident”.

En cas de déplacement du bord d’arrêt ou, plus généralement, d’événements imprévus affectant un arrêt, un itinéraire ou l’ensemble du réseau, de brefs messages peuvent être publiés afin de tenir les voyageurs informés et d’expliquer la raison de la modification.

 

Mise en œuvre en Suisse

En Suisse, deux des trois services sont actuellement mis en œuvre. A savoir “Trip Update” et “Service Alerts”.

 

  • La plateforme OpenData ne supporte actuellement que GTFS-RT “Trip Update” – version 1.0. Veuillez noter que les éléments 2.0 sont actuellement ignorés.
  • La plateforme OpenData supporte actuellement GTFS-RT “Service Alerts” – version 2.0. Veuillez noter ces différences dans les versions de service
  • Avec votre clé, vous pouvez effectuer au maximum deux requêtes par minute sur l’interface.
  • Le flux en temps réel comprend tous les changements connus dans les transports publics suisses dans toute la fenêtre d’aperçu (trois heures) pour toutes les entreprises de transport qui fournissent des données en temps réel.
  • Pour GTFS-RT, il existe une règle de mise à jour pour les retards. Par exemple, si un trajet entier est retardé de 5 minutes, cela n’est indiqué qu’au premier arrêt. Pour tous les autres arrêts, le délai doit être mis à jour lors de l’importation.
  • La mise à jour doit être effectuée pour les heures d’arrivée et de départ. GTFS-RT ne fournit de nouvelles données que si quelque chose a changé. Notre système ne prend en compte que les prévisions de départ. Si la prévision de départ reste inchangée et que seule la prévision d’arrivée change, aucun message GTFS-RT n’est généré pour ce voyage.

 

Accès au service

Les CFF mettent à disposition les Trip Updates via une requête GET.

Vous pouvez effectuer au maximum deux requêtes par minute sur l’interface avec votre clé. Il s’agit d’une fenêtre coulissante (Sliding Window).

API Link
GTFS-RT

Service Alerts

https://api.opentransportdata.swiss/gtfs-sa

Un jeton est nécessaire pour accéder à l’API. Pour générer et recevoir un jeton, il faut s’inscrire sur la plateforme Open Data Mobilité Suisse.

Une fois l’enregistrement réussi, il faut sélectionner l’onglet “API Keys”. On peut y obtenir la clé correspondante pour la plate-forme dans le “Developer Dashboard” sous “My Keys”.

L’envoi de la clé se fait via l’adresse e-mail indiquée lors de l’inscription.

Structure des données (Protocol Buffer)

Le format d’échange de données GTFS ServiceAlert est basé sur les Protocol Buffers, qui sont des mécanismes neutres en termes de langage et de plateforme pour mettre les données en ordre sériel. Il est conçu comme un format binaire, ce qui le rend plus petit, plus rapide et plus simple que XML. La structure des données est définie dans un fichier appelé gtfs-realtime.proto, qui est utilisé pour générer le code source afin de traduire facilement les données structurées dans différents langages (Java, C++, Python, etc.).

Structure des données (JSON)

La plateforme met également à disposition une implémentation JSON.

La requête se fait alors via l’URL : HTTP GET https://api.opentransportdata.swiss/gtfsservicealerts/?format=json

Notez que la variante JSON n’est pas standardisée.

Utilisation de JSON uniquement à des fins de test

JSON ne peut être utilisé qu’à des fins de test, par exemple lorsqu’un développeur d’une nouvelle application veut voir sous une forme lisible quelles sont les données contenues dans notre GTFS-RT.

Au final, l’interface GTFS-SA ne devrait pas être exploitée en JSON lisible, mais en binaire (sans ?FORMAT=JSON) pour les raisons suivantes:

  • le binaire est beaucoup plus performant que le JSON et il y a beaucoup plus de données à transmettre et à lire dans le JSON (un message JSON peut peser jusqu’à environ 11 Mo),
  • JSON n’est pas spécifié, avec le GTFS-RT binaire, le client GTFS peut compter sur le fait qu’il est conforme à la norme GTFS-RT

Description du service

Particularités par rapport au SIRI-SX

GTFS ServiceAlerts SIRI-SX
L’agence est également fournie pour chaque arrêt/point d’arrêt.
     "informedEntity": [
            {
                "agencyId""820",
                "stopId""ch:1:sloid:89712"
            },
            {
                "agencyId""801",
                "stopId""ch:1:sloid:89712"
            }
        ],
<StopPlaces>
    <AffectedStopPlace>
       <StopPlaceRef>ch:1:sloid:89712</StopPlaceRef>
       <PlaceName>Kriens, Grosshofstrasse</PlaceName>
  </AffectedStopPlace>
</StopPlaces>
La direction de la ligne est également fournie pour chaque ligne

         "informedEntity": [
             {
                 "agencyId""801",
                 "routeId""96-186-7-j23-1",
                 "directionId"0
             },
             {
                 "agencyId""801",
                 "routeId""96-186-7-j23-1",
                 "directionId"1
             },
             {
                 "agencyId""801",
                 "routeId""96-186-2-j23-1",
                 "directionId"0
             },
             {
                 "agencyId""801",
                 "routeId""96-186-2-j23-1",
                 "directionId"1
             }
         ],
<AffectedNetwork>
 <AffectedLine>
       <AffectedOperator>
        <OperatorRef>ch:1:sboid:100602</OperatorRef>
       </AffectedOperator>
       <LineRef>85:801:1867</LineRef>
       <PublishedLineName>677</PublishedLineName>
    </AffectedLine>
   <AffectedLine>
      <AffectedOperator>
        <OperatorRef>ch:1:sboid:100602</OperatorRef>
      </AffectedOperator>
      <LineRef>85:801:1862</LineRef>
      <PublishedLineName>675</PublishedLineName>
  </AffectedLine>
</AffectedNetwork>

Mappage général entre GTFS Service Alerts et SIRI-SX

Mise en œuvre de GTFS

  • Édition Multilingue (DE, FR, IT, EN) des textes Lang
  • GTFS : “headerText” correspond à SIRI-SX <SummaryText (L)>.
  • GTFS “descriptionText” est composé comme suit, plusieurs expressions par élément étant également juxtaposées :
    • Raison <ReasonContent>
    • Durée <DurationContent>
    • Information – <RemarkContent> – Si fourni, n’est pas fourni par toutes les organisations commerciales
    • Effets <ConsequenceContent>
    • Recommandation <RecommendationContent>
    • Remarque – <DescriptionContent> → Si fourni, n’est pas fourni par toutes les organisations commerciales
    • Uri – Non disponible sur la version actuelle de Prod
    • Étiquette – non disponible sur la version actuelle de la prod
  • GTFS “activePeriod” est rempli à partir de <ValidityPeriod>.
  • Toutes les expressions CH de l’espace d’information peuvent être traitées
  • Les événements contenant plusieurs informations sur les clients peuvent être traités (actuellement uniquement VIA)
  • Traitement ValidityPeriod et PublicationWindow selon le profil CH (c.-à-d. toujours afficher toutes les déclarations)

Description générale du service (Google)

Service Alerts  |  Realtime Transit  |  Google for Developers

Éléments existants selon GTFS:

Différences avec l’implémentation de Google:

message

Alert

Link: https://developers.google.com/transit/gtfs-realtime/reference#message-alert

Tous les éléments sont pris en charge

message TimeRange

 

Link: https://developers.google.com/transit/gtfs-realtime/reference#message-timerange

Nom d’implémentation suisse (activePeriode)

Tous les éléments sont pris en charge

message

EntitySelector

Link: https://developers.google.com/transit/gtfs-realtime/reference#message-entityselector

Nom d’implémentation suisse (informedEntity)

Les éléments suivants ne sont pas utilisés

  • route_type
  • trip
message

TripDescription

Link: https://developers.google.com/transit/gtfs-realtime/reference#message-tripdescriptor

Le message n’est pas pris en charge / utilisé

enum

ScheduleRelationship

Enum n’est pas supporté / utilisé dans l’implémentation de Service Alert.
Enum

Cause

https://developers.google.com/transit/gtfs-realtime/reference#enum-cause

Toutes les valeurs mentionnées sont utilisées. Tous ceux qui ne sont pas mentionnés, ne sont pas utilisés.

Value GTFS Value EMS (SBB)
UNKNOWN_CAUSE AlertCause=unknown
OTHER_CAUSE AlertCause

AlertCause = undefinedAlertCause

AlertCause = serviceDisruption

AlertCause = emergencyServicesCall

AlertCause= routeBlockage

AlertCause= specialEvent

AlertCause=congestion

TECHNICAL_PROBLEM AlertCause=vehicleFailure

AlertCause=technicalProblem

ACCIDENT AlertCause=accident
WEATHER AlertCause=poorWeather
MAINTENANCE AlertCause=maintenaceWork
AlertCause=constructionWork AlertCause=constructionWork
Enum

Effect

https://developers.google.com/transit/gtfs-realtime/reference#enum-effect

Actuellement, aucun effet n’est utilisé. Il n’y a que la valeur “Condition: Unknown” de l’EMS et le mapping vers GTFS “Unknown_Effect”.

message

TranslatedString

https://developers.google.com/transit/gtfs-realtime/reference#message-translatedstring

Tous les éléments sont pris en charge

Autres services:

Ereignisinformationen öV Schweiz (SIRI-SX / VDV736)

Enregistrements existants

Les organisations commerciales suivantes mettent à disposition des informations sur les événements: Organisations commerciales (business organisations) – Données | Plate-forme Open Data Mobilité Suisse (opentransportdata.swiss)