Comment ça marche

De Raildar
Aller à : navigation, rechercher

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éclenchement 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

IrishTrain

  • Une API très bien faite est utilisée, un peu sur le même principe que les Eurostar, pour alimenter la base
  • Cette même API fourni également les coordonnées GPS supposées réelles de chaque train. Ces informations ne sont pas encore importées dans raildar.

Positionnement des trains

Une fois en circulation, on doit calculer la position géographique du train. Trois 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 coûteuse en ressources informatiques, mais permet de positionner le train sur ses rails
  • L'API à l'origine des informations indique également les coordonnées du train ou bien un voyageur dans le train envoi ses coordonnées en live. Si ces coordonnées ont été obtenues il y a moins de 60 secondes, elles sont utilisées, sinon, on extrapole la position à partir de la dernière connue et de la vitesse moyenne théorique du train. (non implémenté)

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.