Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...

 
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
Accès dynamique aux
données via le portail des API
d’lle-de-France Mobilités
-
V2.0

                                 1
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
Les objectifs de la documentation

   05 -
                   -
 Comprendre les liens     Identifier les paramètres
                                                      Faciliter la prise en main
   entre les données         d'appel et ce qu'ils
Île-de-France Mobilités         représentent                  des API

                                                                              2
                                                                                   2
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
Sommaire

1. Préambule
2. Présentation des services disponibles
3. Comment accéder aux APIs ?
4. API pour la recherche d’itinéraires
5. API temps réel
6. Liens entre les données

                                           3
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
01 -
   Préambule

   -

               4
                   4
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
01 - Préambule

   Île-de-France Mobilités

   85 Opérateurs                                    1 900 Lignes                  40 000 Arrêts

   Île-de-France Mobilités collecte les
   données des opérateurs de transport
   d’Île-de-France.

   Ces données décrivent notamment
   l’offre prévue de transport collectif :
          • Lignes
          • Arrêts
          • Parcours
          • Horaires
          • Calendriers
          • …

        Ces informations alimentent les services d’information d’Île-de-France Mobilités
        (Vianavigo), ceux des transporteurs, et la plateforme Open Data.
                                                                                                  5
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
01 - Préambule

  Dispositifs de diffusion de l’offre de transport francilienne

   Sur le portail des API                      Sur le site Open Data
   d’Île-de-France Mobilités                   d’Île-de-France Mobilités

  Type Services enrichis (itinéraires, etc.)   Type Données brutes sur tous les horaires
  s’appuyant sur les horaires prévus OPTILE,   prévus OPTILE, RATP, SNCF
  RATP, SNCF et données temps réel (requête
                                               Via JDD « Horaires prévus sur les lignes de
  unitaire ou requête globale)
                                               transport en commun d'Île-de-France
  Via Différentes API en fonction de l’usage   (GTFS) »
  Licence ODBL                                 Licence ODBL
  Actualisation Toutes les semaines            Actualisation Toutes les semaines

  Conditions
  • Inscription préalable au portail et
    acceptation des CGU
  • Quotas et barèmes de redevance
                                                                                             6
Accès dynamique aux données via le portail des API d'lle-de-France Mobilités - V2.0 - Île-de-France ...
02 -
   Présentation des services
   disponibles
   -

                               7
                                   7
02 - Présentation des services disponibles

  Les différentes API

                    Calculateur Vianavigo – Accès                   L’exploration du réseau              Les horaires de passages
                             générique                                  Trouvez les informations à              théoriques
                  Trouvez toutes les informations à propos du        propos du réseau de transport      Accédez aux horaires des lignes de
                     réseau de transport francilien (horaires,       francilien (structure du réseau,    l’ensemble du réseau (horaires
 Données            itinéraires, structure du réseau, lignes et             lignes et arrêts,…)                   théoriques)
théoriques                            arrêts,…)

                          Le calcul d’isochrones                  La recherche de lieux                 La recherche d’itinéraires
                         Représentez l’accessibilité d’un         Recherchez des lieux grâce à          Obtenez des propositions de trajets
                         lieu en transports en commun               l’auto-complétion et la              en transports en commun sur le
                           depuis toute l’Île-de-France              recherche à proximité                     territoire francilien

                                                                                                                   Données
      L’info trafic en temps réel                 Les prochains passages en temps réel                            temps réel
  Accédez aux messages de perturbations en         Les prochains passages en temps réel en requête
                temps réel                                   unitaire ou requête globale

                                                                                                                                              8
03 -
   Comment accéder aux API ?

   -

                               9
                                   9
03 - Comment accéder aux API ?

  Généralités

          L’utilisation des API est gratuite.                                      Un mail vous est envoyé
          dans la limite des quotas fixés dans le barème de                    lorsque vous atteignez 80%
          redevance.                                                           de votre quota.

          L’accès aux API est sécurisé par une authentification préalable.
          Le protocole utilisé est le OAuth2.

          La création d’un compte est obligatoire.
          Elle se fait directement depuis le site via l’onglet « Connexion »

          Les Conditions Générales d’Utilisation des API doivent
          être acceptées.
          L’utilisation des API est soumise à l’acceptation des CGU et de
          la licence sur les données. Une fois identifié, et après avoir
          accepté les CGU, vous aurez automatiques trois applications
          crées.                                                                                             10
03 - Comment accéder aux API ?

  Applications
Chacune des trois applications permet de gérer l’accès aux API selon leur nature (temps réel unitaire,
temps réel global et API du calculateur d’itinéraires Navitia).

   1 01-Unitary-Real-Time_email@nomdedomaine.com
        regroupe l’accès aux API Temps Réel (par requêtes unitaires) dans la limite d’un quota de
        1 000 000 requêtes / jour.

   2 02-Global-Real-Time_email@nomdedomaine.com
        donne l’accès à l’API Temps Réel de prochains passages (par requête globale) dans la limite d’un
        quota de 1 000 requêtes / jour.

   3 03-Journey-Planner_email@nomdedomaine.com
        Regroupe l’accès aux API Île-de-France Mobilités (hors API Temps Réel) dans la limite d’un quota
        de 20 000 requêtes / jour. Elle contient notamment le calculateur d'itinéraires Navitia.

                                      Les noms et descriptifs d’applications peuvent
                                 être modifiés et personnalisés depuis le portail.
                                                                                                           11
03 - Comment accéder aux API ?

  Lier les API à vos applications

       Avant toute première utilisation, il est nécessaire de lier les API à vos applications.

        Pour cela, vous devez :
        • Aller dans l’onglet « Application » et sélectionner celle dont vous souhaitez utiliser les API,
        • Cliquer sur « Editer Application »,
        • Cocher les API à utiliser via l’application
        • Cliquer sur « Appliquer les modifications »

                                                                                                            12
03 - Comment accéder aux API ?

  Lier les API à vos applications

 Pour savoir si une API est bien liée à
 une application, vous pouvez :
 • Aller dans l’onglet « Catalogue »
 • Cliquer sur « Tester cette API »

  Si l’API n’est pas liée à une application, le   Si l’API est bien liée à une application, le
  message d’alerte suivant apparait :             formulaire suivant est accessible :

                                                                                                 13
03 - Comment accéder aux API ?

     Access Token

 Dans le formulaire de demande d’Access
 Token :
 • Sélectionner votre application dans            03-Journey-Planner-email@nomdedomaine.com
                                                  - Votre Client ID
                                                                                              1
    « Select Client Id »
 • Sélectionner « Client credentials »                                                        2

    comme Flow Oauth.                                                                 3
 • Cliquer sur « Demande d’Access Token »

 •    Cliquer sur « Autoriser »

                                                                                                  4

 •    Votre Token a été généré

          Un Token est valable sur          Votre Token
       une durée d’une heure.
                                                                                                  14
03 - Comment accéder aux API ?

  Différence entre API et application

                                                                    Nos offres tarifaires
  Application                                                  sont disponibles sur le portail
  Une application regroupe l'accès à un groupe d’API.

  Elle permet de mettre en place un quota de requêtes.

  API
  Une API (Application Programming Interface) est une interface de programmation qui
  permet de se « brancher » sur une application pour échanger des données.
  L'API permet la consommation de données après avoir été liée à l'application lui
  correspondant.

                                                                                                 15
03 - Comment accéder aux API ?

  Trouver votre Client ID et Client Secret
 Ces identifiants (ou « credentiels OAuth ») permettent de vous faire reconnaître lors de la demande
 d’un token.

 Vous pouvez donc les trouver en cliquant sur une application dans la sous-partie « Credentiels
 OAuth ».

  Votre client ID

                                                                                                       16
03 - Comment accéder aux API ?

   Trouver l’url d’une API

L’url pour requêter une API est la concaténation du champs Host suivi du Path de la méthode désirée.

Ainsi, pour le Calculateur Vianavigo – Accès générique (Navitia) et la méthode
get_coverage__region__places l’url est :
https://traffic.api.iledefrance-mobilites.fr/v1/mri/coverage/fr-idf/places

                                                                                                       17
03 - Comment accéder aux API ?

  Connaitre les différents paramètres possibles

                                              Les différents paramètres
                                              possibles d’une méthode sont
                                              définis dans Query parameters.

                                              Dans l’exemple suivant, la
                                              méthode getMessages de
                                              l’application Messages Info Trafic
                                              (plateforme Île-de-France
                                              Mobilités) 1.0.0. Les différents
                                              paramètres sont :
                                              - LineRef
                                              - StopPointRef
                                              - InfoChannelRef

                                                                                   18
03 - Comment accéder aux API ?

  Différents codes de réponse possibles

  A la fin de chaque requête, vous recevez un code HTTP ayant une signification précise :

                        200 : La requête a abouti et vous recevez une réponse.

                        401 & 403 : Vous n’êtes pas autorisé à accéder à l’API.
                                  Nous vous conseillons de renouveler votre token et de vérifier
                                   que l’API est bien liée à votre application.

                        404 : Votre requête contient une erreur.
                                  Nous vous conseillons de vérifier vos paramètres d’appel.

                        429 : Vous avez atteint votre quota.
                                  Vous pouvez accéder à toutes les informations sur les quotas
                        depuis la page d’offre

                        500 : L’API est indisponible.

                                                                                                    19
03 - Comment accéder aux API ?

  Exemples de code Python : Obtenir un token

                                                       Ligne 1 – Importation de la bibliothèque requests
                                                       Ligne 2 – Affecter l’url du token à la variable urlOAuth (string)
                                                       Ligne 3 – Affecter votre client Id à la variable client_id (string)
 1    import requests                                  Ligne 4 – Affecter votre client secret à la variable client_secret (string)
 2    urlOAuth = 'https://as.api.iledefrance-                  > Trouver mon client_id et mon client_secret ?
      mobilites.fr/api/oauth/token'
 3    client_id=''
 4    client_secret=''             Lignes 6 - 11 – Affecter à data un dictionnaire qui va définir comment
 5                                                     accéder au token avec comme variables
 6    data =dict(                                               grant_type(string) doit être défini à ‘client_credentials’
 7    grant_type='client_credentials',
 8    scope='read-data',
                                                                scope(string) doit être défini à ‘read-data’ pour lire les données
 9    client_id=client_id,                                      client_id(string) doit être rempli par votre client ID
 10   client_secret=client_secret                               client_secret(string) doit être rempli par votre client secret
 11   )
                                                       Ligne 13 – La fonction requests.post prend deux arguments en entrée
 12
 13   response = requests.post(urlOAuth, data=data)    l’url du token et la manière dont on souscrit à ce token défini dans
 14   print(response.json)                             data. Pour utiliser cette fonction la bibliothèque requests doit être
 15                                                    installée. La réponse est stockée dans response(response – objet décrit
 16   if response.status_code != 200:                  par la bibliothèque Requests)
      print('Status:', response.status_code, 'Erreur   Ligne 14 – Affichage de la réponse dans le format json
 17   sur la requête; fin de programme')
 18   exit()                                           Lignes 16 - 18 – Test du statut de la requête : Si status_code (integer)
 19                                                    est différent de 200 (OK) alors affichage du statut et d’un message
 20   jsonData = response.json()                       d’erreur puis fin du programme.
 21   token = jsonData['access_token']                 Ligne 20 – Si status_code est égal à 200 alors stockage de la réponse
                                                       au format json dans jsonData (dictionnary)
                                                       Ligne 21 – Stockage du token à utilisé dans la variable token grâce à la
                                                       réponse jsonData
                                                                                                                                20
03 - Comment accéder aux API ?

  Exemples de code Python : Requêter une API

                                                       Ligne 22 – Affecter l’url de l’API à la variable url.
                                                              > Trouver l’url de l’API ?
 22   url = 'https://traffic.api.iledefrance-
      mobilites.fr/v1/tr-messages-it'                  Ligne 24 - 26 – Affecter à params un dictionnaire qui va définir les
 23
 24   params =dict(
                                                       paramètres de la requête. Cela permet de filtrer la requête par
 25   LineRef='ALL’                                    exemple.
 26   )                                                       > Comment connaitre les différents paramètres possibles ?
 27
 28   headers = {
 29   'Accept-Encoding' : 'gzip’,                      Ligne 28 - 31 – Affecter à headers un dictionnaire qui va définir les
 30   'Authorization' : 'Bearer ' + token              encodages de la requête.
 31   }
 32                                                    Ligne 33 – La fonction requests.get prend trois arguments en entrée
 33   response = requests.get(url, params=params,
                                                       l’url de l’API et les paramètres de la requête et les headers de celle-ci.
      headers=headers)
 34
 35   if response.status_code != 200:                  Lignes 35 - 37 Test du statut de la requête : Si status_code (integer) est
 36   print('Status:', response.status_code, 'Erreur   différent de 200 (OK) alors affichage du statut et d’un message
      sur la requête; fin de programme')               d’erreur puis fin du programme.
 37   exit()
 38
 39   jsonData = response.json()                       Ligne 39 – Si status_code est égal à 200 alors stockage de la réponse
                                                       au format json dans jsonData (dictionnary)

                                                                                                                                21
03 - Comment accéder aux API ?

  Les bonnes pratiques d’utilisation

   Les quotas d’appels sont à la journée : il
                                                              Il est recommandé d’activer dans les
   est fortement recommandé de lisser le
                                                              headers de vos requêtes l’élément
   nombre de requêtes dans le temps afin
                                                              « Accept-encoding : gzip, deflate » afin
   de ne pas perturber le fonctionnement
                                                              de diminuer la bande passante.
   pour les autres utilisateurs.

                                 Compte tenu de la taille très importante
                                 de la réponse à la requête globale
                                 « Prochains Passages » , elle sera
                                 transmise en mode compressé.

                                                                                                         22
04 -
   Les API pour la recherche
   d’itinéraires (Navitia)
   -

                               23
                                    23
04 - API pour la recherche d’itinéraires (Navitia)

  Application d’accès aux API de recherche d’itinéraires

             Les API de recherche d’itinéraires s’appuient sur la technologie Navitia.

Elles sont accessibles via l’application :
                                                                                           Documentation
                        03-Journey-Planner_email@nomdedomaine.com                          technique sur Navitia :
                                                                                           https://doc.navitia.io/

         API concernées = API Données théoriques

  Calculateur Vianavigo –                L’exploration du réseau    Les horaires de passages
     Accès générique                                                       théoriques

Le calcul d’isochrones                  La recherche de lieux      La recherche d’itinéraires
                                                                                                                 24
04 - API pour la recherche d’itinéraires (Navitia)

  Qualité des données

               La mise à jour des données est hebdomadaire. Elle est réalisée le vendredi soir.
               Les données couvrent les trois prochaines semaines.

        L'intégralité des horaires des RER A et B sont transmis par la SNCF.

                    Les horaires des lignes SNCF incluent les adaptations faites lors de travaux
               prévus, ainsi que les substitutions faites en bus (ex : un trajet en bus sera proposé si
               un tronçon est coupé pour cause de travaux).
                      Les horaires des lignes RATP n'incluent pas en règle générale, les adaptations
               faites lors de travaux prévus, ni les navettes de bus de substitution mises en place
               (ex : Fermeture d'une station de métro).

               Contrairement aux fichiers issus du GTFS, les données des API prennent en
               compte les Interdictions de Trafic Local (ITL) qui existent parfois sur certaines
               lignes de bus OPTILE.

                                                                                                          25
04 - API pour la recherche d’itinéraires (Navitia)

  Paramètres d’appels

            line
            Une ligne (« line ») est un ensemble d’itinéraires regroupés sous un même nom.
            Ex : line:0:100110001:1 (Métro 1)

            route
            Un (« route ») définit un enchaînement structuré d’arrêts.
            Une ligne simple est généralement composée de 2 itinéraires : un décrivant le sens aller,
            l’autre décrivant le sens retour.
            route:0:1001100010001A (Métro 1 – Sens la Défense)

            vehicle_journey
            Une course (« vehicle_journey ») est la déclinaison d’un itinéraire à un horaire donné. Une
            course attribue à chaque arrêt de l’itinéraire un horaire de passage.
            Sur une journée, une course est unique : deux véhicules d’une même ligne effectuent chacun
            une course différente.
            Ex : vehicle_journey:0:111721349-1 (Métro 1 - une course du 10 février 2020)

                                                                                                          26
04 - API pour la recherche d’itinéraires (Navitia)

  Paramètres d’appels

            company
            Un transporteur
            Ex : company:0:800 (SNCF)

            network
            Un réseau commercial
            Ex : network:0:15 (Bus Haut Val d’Oise)

            stop_area
            Une zone de lieu (« stop_area ») désigne une zone regroupant plusieurs points d’arrêt.
            Ex : stop_area:0:SA:8768600 (Gare de Lyon)

            stop_point
            Un point d’arrêt d’un seul et unique transporteur
            Ex : stop_point:0:SP:59620 (Chaussée d’Antin-Lafayette, ligne 9 du métro)

         stop_point est une donnée non pérenne pour le bus.
         Elle est susceptible d’être changée chaque semaine à la publication du GTFS.
         Les stop_points sont stables pour le ferré.
                                                                                                     27
04 - API pour la recherche d’itinéraires (Navitia)

  Utiliser le paramètre {URI} dans l’API générique Navitia

    Le paramètre {URI} signifie que le périmètre d’appel est intégré dans l’URL de la
    requête et ne se trouve pas, comme la plupart du temps, à la fin de l’URL de
    requête.

             Le paramètre {URI} doit être encodé en HTML

   Exemple 1                                         Exemple 2
   Objectif :                                        Objectif :
   Récupérer tous les stop_points du stop_area       Récupérer tous les stop_points de la ligne de
   de la Gare de Lyon (stop_area:0:SA:8768600)       métro 1 (line:0:100110001:1)

   On utilise la méthode :                           On utilise la méthode :
   GET/v1/mri/coverage/fr-idf/{uri}/stop_points      GET/v1/mri/coverage/fr-idf/{uri}/stop_points

   Avec le paramètre d’appel :                       Avec le paramètre d’appel :
    stop_areas%2Fstop_area:0:SA:8768600              lines%2Fline:0:100110001:1

                                                                                                     28
05 -
   API Temps Réel

   -
   Applications d’accès aux API Temps réel
   Source : Plateforme d’échanges Île-de-France Mobilités
   Source : Service Vianavigo par Île-de-France Mobilités

                                                            29
                                                                 29
05 -
   API Temps Réel

   -
   Applications d’accès aux API Temps réel
   Source : Plateforme d’échanges Île-de-France Mobilités
   Source : Service Vianavigo par Île-de-France Mobilités

                                                            30
                                                                 30
05 - API Temps Réel - Applications d’accès aux API Temps réel

   Applications d’accès aux API Temps réel                                            2 sources de données
                                                                                        • Plateforme Île-de-France
                                                                                          Mobilités
 Les API temps réels sont accessibles via les applications :
                                                                                        • Source Vianavigo

01-Unitary-Real-Time_email@nomdedomaine.com                      02-Global-Real-Time_email@nomdedomaine.com

                                                                        Prochains passages regroupés
                                                                                 par course
             Messages Info Trafic
     (plateforme Île-de-France Mobilités)
  Accédez aux messages de perturbations en temps réel

              Prochains Passages                                              Prochains Passages
     (plateforme Île-de-France Mobilités)                                      (requête globale)
    Les prochains passages en temps réel en requête                          Les prochains passages en
                        unitaire                                                    temps réel
                                                                                  requête globale

               Prochains Passages
               (source Vianavigo)
    Les prochains passages en temps réel en requête
                        unitaire
                                                                                                                 31
05 -
   API Temps Réel

   -
   Applications d’accès aux API Temps réel
   Source : Plateforme d’échanges Île-de-France
   Mobilités
   Source : Service Vianavigo par Île-de-France Mobilités

                                                            32
                                                                 32
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

                                                                                                      Les données RATP sur les
   Schéma de récupération des données                                                                 bus et tramways ne sont
                                                                                                      pas disponibles.
         SAEIV*
                                                Concentrateurs
         SAEIV*                                                                    Messages Info Trafic
                                                                                (plateforme Île-de-France
                                                                                        Mobilités)
  Transporteurs Groupe                                                           Accédez aux messages de
                                                                                perturbations en temps réel
                                                                                                                  Réutilisateurs
             Métros - RER

                                                  Plateforme
                                                d’échanges Île-                    Prochains Passages
        SAEIV*                                     de-France                       (plateforme Île-de-
                                                   Mobilités                        France Mobilités)
Transporteurs indépendants                                                      Les prochains passages en
                                                                                  temps réel en requête
                                                                                unitaire et requête globale

   *SAEIV = Système d’Aide à l’Exploitation et à l’Information Voyageur

        La plateforme :
                  • récolte les informations
                  • les diffuse aux autres transporteurs
                  • les met à disposition de tout le monde (Opendata)
                                                                                                                                   33
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Données diffusées
                                                                                 Le portail des normes pour les
                                                                               données d'offre du transport
          Le service                                                           collectif: http://www.normes-
           Prochains passages pour toutes les lignes disponibles.              donnees-tc.org/
           Prochains passages à un arrêt.
           Infos trafic / perturbations.

          Les données disponibles

           Pour connaitre le périmètre (arrêts / lignes) des données disponibles via la plateforme
           d’échanges d’Île-de-France Mobilités suivez ce lien.

           La liste des données disponibles est mise à jour toutes les 2 semaines.

           Le format des horaires                                              Le profil des données
         Norme internationale ISO 8601 en UTC                                  SIRI Lite

                                                                                                                  34
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Identification des objets

        Identifications des lignes
L’identifiant d’une ligne (LineRef) doit être passé sous la forme :

           « STIF:Line::XXXXX: » avec XXXXX l’identifiant de la ligne dans le
           Référentiel Île-de-France Mobilités

Exemples :
• Pour la ligne B du RER, l’identifiant de la ligne dans le Référentiel Île-de-France Mobilités est
C01743, le pattern est donc « STIF:Line::C01743: »

• Pour la ligne de bus Phébus A, l’identifiant de la ligne dans le Référentiel Île-de-France Mobilité est
C00692, le pattern est donc « STIF:Line::C00692: »

                                                                                                            35
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Identification des objets

        Identifications des courses
L’identifiant de la course (DatedVehicleJourneyRef) identifie de manière unique une course pour
tous les transporteurs. La course est donc reconstituée dans une réponse à une requête globale.

             La RATP ne fournit pas d’identifiants de courses mais un compteur technique sans
             lien métier avec la notion de course.

             Nous obtenons alors dans la réponse à la requête globale pour une même ligne et
             un même sens tous les véhicules s’arrêtant à la même heure quel que soit
             l’arrêt. Par conséquent, dans les réponses aux requêtes globales, les courses
             RATP ne sont pas correctement reconstituées. Les prochains passages aux arrêts
             sont cependant tous renseignés dans la réponse.

                                                                                                  36
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Identification des objets

        Identifications des arrêts
L’identifiant d’un arrêt (MonitoringRef) doit être passé sous la forme :
Identifiants des arrêts physiques                                       Identifiants des arrêts commerciaux
« STIF:StopPoint:Q:XXXXX: »                                             « STIF:StopArea:SP:XXXXX: »
avec XXXXX l’identifiant du référentiel                                 avec XXXXX l’identifiant du référentiel des
des arrêts ZDE                                                          arrêts ZDL ou LDA
Exemples
• Pour l’arrêt « Gare de Massy-Palaiseau » sur la ligne B du RER, l’identifiant du référentiel est
412833, le pattern est « STIF:StopPoint:Q:412833: » - Granularité ZDE
• Pour la zone de lieu « Gare de Massy-Palaiseau » des lignes B et C du RER, l’identifiant du
référentiel est 58774, le pattern est « STIF:StopArea:SP:58774: » - Granularité ZDL
• Pour le lieu d’arrêt « Gare de Massy-Palaiseau » comprenant les gares routières environnantes,
l’identifiant est 63244, le pattern est « STIF:StopArea:SP:63244: » - Granularité LDA

                                                                                                                  37
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Focus sur les API « Prochains passages (requête globale et
  unitaire) »

                  Pour tous les modes, les données sont disponibles sur une profondeur de trois
                  heures au maximum pour les transporteurs qui le permettent.

             Tant que le véhicule n’a pas commencé sa course, le système fournit les horaires
             de passages planifiés par l’exploitant la veille de la journée en cours.

              Pour les courses en circulation :
                  Mode Bus : prévision de passage à un                     Mode ferré : prévision de passage à
                  arrêt en fonction de la localisation du                  un arrêt en fonction de la localisation
                  bus en tenant compte des                                 du véhicule.
                  circulations précédentes.

           Les prochains passages sont des données de prévision et donc par définition un
       écart peut être rencontré entre l’estimation et le passage réel. La précision se dégrade en
       fonction du temps, notamment au-delà de 20 minutes pour le bus et 30 minutes
       pour les modes ferrés.
                                                                                                                     38
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Focus sur les API « Prochains passages (requête globale et
  unitaire) »

            AimedArrival/DepartureTime                                           ExpectedArrival/DepartureTime

Horaires théoriques de départ et d’arrivée                              Prédictions d’horaires de prochains passages
établis la veille par le transporteur en prenant                        prenant en compte la position réelle du
en compte la disponibilité des conducteurs et                           véhicule, le temps restant pour atteindre un
des véhicules. Ces horaires ne sont pas                                 arrêt et les temps de parcours observés sur les
toujours disponibles.                                                   circulations précédentes.

                                                              DirectionRef

                               Il n’y a pas de référentiel partagé à l’échelle d’Île-de-
                               France Mobilités, le champ est donc facultatif.
                               Cependant le champ DestinationRef (terminus de la
                               course) est systématiquement renseigné.

                                                                                                                          39
05 - API Temps Réel - Source : Plateforme d’échanges Île-de-France Mobilités

  Focus sur l’API « Messages Info Trafic passages »

               RATP : ensemble des infos trafics disponibles en gares RER et stations de métro et
               sur les médias RATP.
               SNCF : informations disponibles sur les écrans disposés dans les gares.
               Bus : informations disponibles sur les écrans disposés aux arrêts de bus.

             Pour la SNCF et le réseau de Bus OPTILE, les API temps réel ne disposent pas des
             informations qui sont fournies sur les médias (site internet, twitter, …).

                                                                                                    40
05 -
   API Temps Réel

   -
   Applications d’accès aux API Temps réel
   Source : Plateforme d’échanges Île-de-France Mobilités
   Source : Service Vianavigo par Île-de-France
   Mobilités

                                                       41
                                                            41
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités

  Schéma de récupération des données

          Opendata
                                           Vianavigo
             SAEIV                             par                               Prochains Passages             Réutilisateurs
                                          Île-de-France                          (source Vianavigo)
                                            Mobilités                            Les prochains passages en
        Webservice                                                             temps réel en requête unitaire
          dédié

              Le canal Vianavigo est utilisé en complément, notamment sur le bus RATP
              et les Tramways, le périmètre des données n’étant pas encore totalement
              complet via la plateforme d'échanges d’Île-de-France Mobilités.

                                                                                                                             42
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités

  Les données diffusées

          Le service                                                         A terme, les données disponibles via
                                                                          Vianavigo vont disparaitre. Toutes les
           Prochains passages à un arrêt.
                                                                          données temps réel seront disponibles via
                                                                          la plateforme d’échanges d’Île-de-France
                                                                          Mobilités.
                                                                          Les utilisateurs seront informés au moins
                                                                          un mois avant toute bascule nécessaire.
          Les données disponibles

           Vianavigo permet d’obtenir les temps d’attente des prochains passages à l’ensemble des
           arrêts (métro, ferré, bus…) des transporteurs suivants :
           SNCF Transilien, RATP (bus, tram, métro, RER) et Transdev (réseaux TRA, CSO, Apolo 7,
           Montesson, Rambouillet, Vulaines, Lieusaint et Vaux le Pénil).

           Le format des horaires
         Les horaires de passage à l’arrêt sont
         fournis en temps d’attente exprimé en
         minutes.                                                                                                     43
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités

  Identification des objets

        Identification des lignes
 L’identifiant d’une ligne (Line_id) est le même que celui utilisé pour les API basées sur la solution
 Navitia(route_id).
 Il doit être passé sous la forme :
                             « line:0:XXXXX » avec XXXXX le route_id de la ligne

 Exemples :
 • Pour la ligne C du RER, l’identifiant Navitia route_id de la ligne est 810:C, le pattern est donc
 « line:0:810:C ».

 • Pour la ligne 12 du métro, l’identifiant Navitia route_id de la ligne est 100110012:12, le pattern est
 donc « line:0:100110012:12 ».

 • Pour la ligne de bus Transdev Mélibus C, l’identifiant Navitia route_id de la ligne est 066066022:C ,
 le pattern est donc « line:0:066066022:C ».

    Pour plus de détails sur les identifiants GTFS, voir la documentation GTFS.
    Il est aussi possible de passer en paramètre l’identifiant utilisé par les API
    Île-de-France Mobilités (external_code).
                                                                                                            44
05 - API Temps Réel - Source : Service Vianavigo par Île-de-France Mobilités

  Identification des objets

        Identification des arrêts
 L’identifiant d’une ligne (stop_point_id ) est le même que celui utilisé pour les API basées sur la
 solution Navitia (stop_id).
 Il doit être passé sous la forme :
                « stop_point:0:SP:XXXXX » avec XXXXX le stop_id de l’arrêt physique

 Exemples :

 • Pour l’arrêt Gare des Invalides de la ligne RER C, l’identifiant de l’arrêt physique stop_id est
 « stopPoint:8739303:800:C », le pattern est donc « stop_point:0:SP:8739303:800:C ».

 • Pour l’arrêt Gare de Melun de la ligne de bus Transdev Mélibus C, l’identifiant de l’arrêt physique
 est le « stopPoint:27:135 », le pattern est donc « stop_point:0:SP:27:135».

                                                                                                         45
06 -
   Liens entre données

   -

                         46
                              46
06 - Lien entre données

  Liens dans le GTFS
                                        agency.txt
                          agency_id

                                        routes.txt
                                                          route_id

                                         trips.txt

                                         service_id       calendar.txt
                           trip_id

                                                       calendar_dates.txt

                                      stop_times.txt
                                                          stop_id

                                        stops.txt

                                          stop_id         transfers.txt

                                                       stop_extensions.txt

                                                                             47
06 - Lien entre données

  Cas d’usage : Temps réel 1

Objectif :                                                               Données utilisées :
Connaitre les prochains passages (TR           Informations connues :    • Le référentiel des Arrêts (Reflex.CSV)
source plateforme Île-de-France                • Le nom de l’arrêt       • Le référentiel des Lignes
Mobilités) de la ligne 10 de métro à l’arrêt   • Le nom de la ligne      • L’API prochains passages (source
Charles Michels                                                            plateforme Île-de-France Mobilités)

 Identifier la LineRef de la ligne
   grâce au jeu de données «                                                      Requêter l’API prochains
    Référentiel des lignes de                                                   passages (source plateforme
transport en commun d’île-de-                                                     Île-de-France Mobilités)
             France »

             1                                           2                                             3

                                   Identifier les stopPoints correspondant au
                                   nom de l’arrêt grâce au fichier Reflex.CSV
                                    dans le jeu de données « Référentiel des
                                   arrêts de transport en commun en Île-de-
                                                     France »                                                       48
06 - Lien entre données

  Cas d’usage : Temps réel 1

Objectif :                                                                Données utilisées :
Connaitre les prochains passages (TR           Informations connues :     • Le référentiel des Arrêts (Reflex.CSV)
source plateforme Île-de-France                • Le nom de l’arrêt        • Le référentiel des Lignes
Mobilités) de la ligne 10 de métro à l’arrêt   • Le nom de la ligne       • L’API prochains passages (source
Charles Michels                                                             plateforme Île-de-France Mobilités)

           1                                             2                                            3

       Identifier la LineRef de la ligne grâce au jeu de données « Référentiel des lignes de
                              transport en commun d’île-de-France »

                   En recherchant « métro 10 » dans le JDD
                   On trouve la lineRef:

                                                  [     C01380        ]

                                                                                                                     49
06 - Lien entre données

  Cas d’usage : Temps réel 1

Objectif :                                                                          Données utilisées :
Connaitre les prochains passages (TR              Informations connues :            • Le référentiel des Arrêts (Reflex.CSV)
source plateforme Île-de-France                   • Le nom de l’arrêt               • Le référentiel des Lignes
Mobilités) de la ligne 10 de métro à l’arrêt      • Le nom de la ligne              • L’API prochains passages (source
Charles Michels                                                                       plateforme Île-de-France Mobilités)

           1                                                  2                                                 3

      Identifier les stopPoints correspondant au nom de l’arrêt grâce au fichier Reflex.CSV
      dans le Jeu de données « Référentiel des arrêts de transport en commun en Île-de-
                                            France »

      On trouve deux stop_points correspondant à « Charles Michels » et à des stations de métro :

   ZDEr_ID_REF_
                 ZDEr_ID_VERSION ZDEr_NOM         ZDEr_ID_TYPE_ARRET ZDEr_LIBELLE_TYPE_ARRET                    GDL_NOM
   A
          463076          1022350 Charles Michels                   2Station de métro
                                                                                                    …
           21986          1022344 Charles Michels                   2Station de métro

                                                                                                                               50
06 - Lien entre données

  Cas d’usage : Temps réel 1

Objectif :                                                                   Données utilisées :Le référentiel des
Connaitre les prochains passages (TR            Informations connues :       • Le référentiel des Arrêts (Reflex.CSV)
                                                                             Arrêts
source plateforme Île-de-France                 • Le nom de l’arrêt          • Le référentiel des Lignes
Mobilités) de la ligne 10 de métro à l’arrêt    • Le nom de la ligne         • L’API prochains passages (source
Charles Michels                                                                plateforme Île-de-France Mobilités)

           1                                              2                                               3

          Requêter l’API prochains passages (source plateforme Île-de-France Mobilités)
           Après avoir récupérer un token, requêter L’API prochains passages (source plateforme Île-de-
           France Mobilités) avec comme paramètre les stopPoints trouvés.
            Seul le stopPoint 21986 permet d’obtenir des informations sur la ligne de métro 10

           Il faut donc requêter l’API avec :
                                        MonitoringRef=STIF:StopPoint:Q:21986:
                                                          et
                                      prendre en compte les données avec comme
                                              LineRef=STIF:Line::C01380

                                                                                                                        51
06 - Lien entre données

  Cas d’usage : Temps réel 2

                                                                                 Données utilisées :
Objectif :
                                                 Informations connues :          • Le GTFS (stops.txt; trips.txt
Connaitre les prochains passages (TR
                                                 • Le nom de l’arrêt               stop_times.txt)
source Vianavigo) de la ligne 88 à l’arrêt
                                                 • Le route id de la ligne       • L’API prochains passages (source
Charles Michels
                                                                                   Vianavigo)

    Identifier les stop_point_id
     correspondant au nom de                                 Rechercher les correspondances
        l’arrêt dans stops.txt                               stops/trips dans stop_times.txt
      disponible dans le GTFS                                   disponible dans le GTFS

             1                               2                               3                                4

                                Identifier les trajets de la                                        Requêter l’API
                             ligne correspondant au route                                        prochains passages
                               id de la ligne dans trips.txt                                     (source Vianavigo)
                                 disponible dans le GTFS
                                                                                                                      52
06 - Lien entre données

  Cas d’usage : Temps réel 2

                                                                          Données utilisées :
Objectif :
                                              Informations connues :      • Le GTFS (stops.txt; trips.txt
Connaitre les prochains passages (TR
                                              • Le nom de l’arrêt           stop_times.txt)
source Vianavigo) de la ligne 88 à l’arrêt
                                              • Le route id de la ligne   • L’API prochains passages (source
Charles Michels
                                                                            Vianavigo)

                1                             2                           3                              4

             Identifier les stop_point_id correspondant au nom de l’arrêt dans stops.txt

                    En faisant une recherche « Charles Michels » et en filtrant sur les « StopPoint »
                    On trouve la liste suivante :

                             [     StopPoint:59:5121364; StopPoint:59:5121363;
                                   StopPoint:59386; StopPoint:59:7913253;
                                   StopPoint:59:7913254; StopPoint:59:7921334;
                                   StopPoint:59:7921333; StopPoint:18:19503           ]

                                                                                                               53
06 - Lien entre données

  Cas d’usage : Temps réel 2

                                                                         Données utilisées :
Objectif :
                                             Informations connues :      • Le GTFS (stops.txt; trips.txt
Connaitre les prochains passages (TR
                                             • Le nom de l’arrêt           stop_times.txt)
source Vianavigo) de la ligne 88 à l’arrêt
                                             • Le route id de la ligne   • L’API prochains passages (source
Charles Michels
                                                                           Vianavigo)

                1                            2                           3                              4

    Identifier les trajets de la ligne correspondant au route id de la ligne dans trips.txt

                    En faisant une recherche « 100100088:88»
                     On extrait deux trajets (un dans chaque sens) :

                             [     110855728-1_131907 (sens Montsouris)
                                   110855727-1_131906 (sens Porte d’Auteuil)         ]

                                                                                                              54
06 - Lien entre données

   Cas d’usage : Temps réel 2

                                                                              Données utilisées :
 Objectif :
                                                  Informations connues :      • Le GTFS (stops.txt; trips.txt
 Connaitre les prochains passages (TR
                                                  • Le nom de l’arrêt           stop_times.txt)
 source Vianavigo) de la ligne 88 à l’arrêt
                                                  • Le route id de la ligne   • L’API prochains passages (source
 Charles Michels
                                                                                Vianavigo)

                 1                                2                           3                              4

                     Rechercher les correspondances stops/trips dans stop_times.txt

                     En faisant une recherche couplée :
                                                        [     StopPoint:59:5121364 ; StopPoint:59:5121363 ;
                                                              StopPoint:59386 ; StopPoint:59:7913253 ;
     [      110855728-1_131907                ]
                                                              StopPoint:59:7913254 ; StopPoint:59:7921334 ;
                                                              StopPoint:59:7921333 ; StopPoint:18:19503     ]
                     Le seul couple fonctionnant est 110855728-1_131907, StopPoint:59:7921334.

Le stop_point_id correspondant à l’arrêt Charles Michel dans le sens Montsouris est StopPoint:59:7921334.

                                                                                                                   55
06 - Lien entre données

  Cas d’usage : Temps réel 2

                                                                                 Données utilisées :
Objectif :
                                                 Informations connues :          • Le GTFS (stops.txt; trips.txt
Connaitre les prochains passages (TR
                                                 • Le nom de l’arrêt               stop_times.txt)
source Vianavigo) de la ligne 88 à l’arrêt
                                                 • Le route id de la ligne       • L’API prochains passages (source
Charles Michels
                                                                                   Vianavigo)

             1                               2                               3                               4

                          Requêter l’API prochains passages (source Vianavigo)

                   Après avoir récupérer un token, requêter l’API Prochains passages (source Vianavigo)
                   avec comme paramètre

                              stop_point_id = stop_point:0:SP:59:7921334.

           Attention les stopPoints sont susceptibles de changer chaque semaine
           à la génération du GTFS.                                                                                   56
Aidez-nous à améliorer cette
    - documentation

 En répondant
    -         à ce questionnaire

          Questionnaire
        (durée : 5 minutes)

                                   57
                                        57
Site Open API
portal.api.iledefrance-mobilites.fr

Site Open Data
data.iledefrance-mobilites.fr
  -

Support Open Data
opendata@iledefrance-mobilites.fr

                                      58
Vous pouvez aussi lire
DIAPOSITIVES SUIVANTES ... Annuler