Comment ça marche : Différence entre versions

De Raildar
Aller à : navigation, rechercher
(TER & Intercité)
Ligne 12 : Ligne 12 :
 
== TER & Intercité ==
 
== TER & Intercité ==
 
* L'API MS TER/Intercité permet de récupérer les informations de circulation plusieurs jours à l'avance. Pour éviter de se surcharger inutilement, on ne récupère que les informations à J+1 et cette action a lieu la nuit vers 2h du matin.
 
* L'API MS TER/Intercité permet de récupérer les informations de circulation plusieurs jours à l'avance. Pour éviter de se surcharger inutilement, on ne récupère que les informations à J+1 et cette action a lieu la nuit vers 2h du matin.
* L'information temps réel est ensuite prise sur le site infolignes par scrapping de chaque train en circulation à l'instant T.
+
* L'information temps réel est ensuite prise sur le site infolignes par scrapping de chaque train en circulation à l'instant T avec une boucle toutes les 10 minutes.
 +
 
 
== TGV & assimilés ==
 
== TGV & assimilés ==
 
On ne dispose d'aucune API pour connaitre la circulation théorique ou les numéros de trains. Il a donc fallu ruser et ajouter une étape supplémentaire :
 
On ne dispose d'aucune API pour connaitre la circulation théorique ou les numéros de trains. Il a donc fallu ruser et ajouter une étape supplémentaire :

Version du 20 janvier 2014 à 09:35

Raildar est divisé en plusieurs modules qui interagissent entre eux.

Principe général

  • Récupération de la circulation théorique des trains du lendemain
  • Toutes les minutes, vérifier si des trains doivent commencer à circuler dans les 10 prochaines minutes et déclanchement de leur affichage sur la carte et de la récupération de l'information temps réel
  • En fonction des sources d'information temps réel :
    • Récupération des informations de tous les trains en circulation toutes les 10 minutes (quand on peut avoir l'info pour un train précis)
    • Récupération en boucle continue de l'information de passage en gare (quand on ne peut avoir l'info que gare par gare)
  • La moulinette qui fait la mise en circulation fait également les fin de circulation en désactivant le train lorsqu'il est arrivé à destination (en prenant en compte l'éventuel retard détecté)

Fonctionnements spécifiques à chaque type de train

TER & Intercité

  • L'API MS TER/Intercité permet de récupérer les informations de circulation plusieurs jours à l'avance. Pour éviter de se surcharger inutilement, on ne récupère que les informations à J+1 et cette action a lieu la nuit vers 2h du matin.
  • L'information temps réel est ensuite prise sur le site infolignes par scrapping de chaque train en circulation à l'instant T avec une boucle toutes les 10 minutes.

TGV & assimilés

On ne dispose d'aucune API pour connaitre la circulation théorique ou les numéros de trains. Il a donc fallu ruser et ajouter une étape supplémentaire :

  • Toutes les heures, une moulinette va visiter les pages du site Gares & Connexions pour récupérer les numéros de train qu'elle ne connait pas encore (au passage, elle récupère aussi des bus ...)
  • Chaque nuit, ces numéros de trains sont testés un par un sur le site infolignes pour savoir si une circulation de ce train est prévu le lendemain
  • La procédure est ensuite la même que pour les TER/Intercités qui sont mis en circulation au fur et à mesure de la journée avec une demande régulière à infolignes pour obtenir un retard éventuel

Eurostar

L'information n'est disponible ni en API ni sur infolignes. Nouveau cas, nouvelle ruse, tout est géré par une seule moulinette :

  • Toutes les 10 minutes, on fait appel à l'URL Eurostar de chaque gare ou passent ces trains pour connaitre les prochaines arrivées & départs
  • Si on ne connait pas le train, il est ajouté à la base de donnée
  • Si on le connait et qu'il n'a pas encore circulé aujourd'hui, une nouvelle entrée est crée dans la table de missions
  • Si on le connait et qu'il a déjà commencé à circuler, on met juste à jour le retard s'il y en a un

Transilien & RER

  • La méthode d'approvisionnement en données théorique est la même que pour les TER & Intercités
  • Concernant le temps réel, l'API SNCF ne concerne pour l'instant que les lignes C et L mais nous sommes déjà prêts pour l'ensemble, le script testant l'ensemble des gares d'ile de france en boucle
  • Un certain nombre de manipulations sont effectuées dont la correction automatique des numéros de trains qui changent lors de la traversée de Paris et la transformation des identifiants de gare avec un calcul plus qu'obscur pour trouver le dernier chiffre

Positionnement des trains

Une fois en circulation, on doit calculer la position géographique du train. Deux cas de figure :

  • On ne connait pas le tracé précis que doit emprunter le train, dans ce cas la, on le positionne sur une ligne droite reliant la gare précédente à la gare suivante. Sur les trajets inter-gare courts, c'est une bonne méthode, sur un TGV qui fait Paris - Rennes, on se trompe de plus de 90km en milieu de trajet.
  • Nous avons donc importé le maximum de trajet possibles par le rail depuis la base OpenStreetMap. La méthode de positionnement est plus couteuse en ressources informatiques, mais permet de positionner le train sur ses rails

Limites de la méthode et évolutions

Le positionnement se fait en fonction des heures de passage théorique en gare, éventuellement augmentée du retard s'il y en a. Nous sommes donc loin d'un positionnement précis, mais on dispose, dans chaque train, de quantité de GPS dans les poches des voyageurs, enfermés au fond de leurs smartphone. Il sera donc possible à l'avenir de positionner précisément un train avec l'aide des visiteurs de raildar.