2024-03-25
Je m'intéresse toujours au coût de changement de ligne/correspondance, qui est nommé
transfer walking
.
Je trouve un article intéressant sur le sujet de la génération des routes :
Generating route choice sets with operation information on metro networks
Dans cet article, il n'y a pas beaucoup de détail sur comment sont calculés le temps de correspondance, si ce n'est qu'il est calculé en fonction de l'agencement de la station.
Je me demande si, en estimant un temps de changement de ligne via les positions GPS, ne serait pas suffisant ?
D'ailleurs, je disais que le site d'Open Data d'Île-de-France Mobilités ne donnait pas beaucoup d'infos, mais en fait, c'est sur un second site : PRIM - Plateforme Régionale d'Information Multimodale.
Sur celui-ci, il y a bien les lignes, les stations, les correspondances, c'est intéressant, à voir si je veux les utiliser. Aussi, je trouve une API en marque blanche de calcul d'itinéraire.
Ça nécessite un token PRIM, mais ça peut être intéressant : je pourrais faire des appels pour chaque changement de stations entre les lignes et ainsi avoir tous les chiffres ? Voyons s'ils ne donnent pas directement la donnée dont j'ai besoin.
J'ai trouvé un pdf d'IDFM plutôt intéressant sur la documentation des GTFS.
Je découvre le fichier
transferts.txt
qui donne le temps de correspondance entre arrêts.
C'est exactement ce que je cherchais, par contre comme je n'ai pas utilisé les lignes et stations de IDFM, je n'ai pas
les stops id.
Est-ce que je dois migrer sur les données IDFM ou je dois consolider ma donnée avec celle de IDFM ?
Regardons les données de IDFM de plus près. Nous avons les arrêts dans ce jeu de données : IDFM - Arrêts et lignes associées et pour les lignes : IDFM - Tracés des lignes de transport en commun d'Île-de-France (source GTFS).
En regardant les lignes, par rapport à mon code actuel, je me rends compte qu'il n'y a pas de direction, et donc la prise en compte d'une fourche ou non. Je trouve ça compliqué pour ce petit projet, et je me dis que je vais rester sur mes données actuelles.
Ce que je vais donc faire :
- Ajouter dans mon script l'id IDFM des stations pour les correspondances
- Ajouter le temps de correspondance entre les lignes dans une station grâce au fichier
transfers.txt
- Ajouter le temps entre deux stations grâce au fichier
stop_times.txt
En regardant le fichier
stops.txt
, je me rends compte qu'une même station est présente plusieurs fois, avec des id
différents.
Je me rappelle du repository que j'ai liké gtfs2lc, que j'essaie et j'obtiens
une erreur :
❯ npx gtfs2lc ./IDFM-gtfs -f json
GTFS to linked connections converter use --help to discover more functions
Cleaning up and sorting source files
Creating index stores...
Created and loaded store in ./IDFM-gtfs/stops.db
Created and loaded store in ./IDFM-gtfs/routes.db
Created and loaded store in ./IDFM-gtfs/services.db
Created and loaded store in ./IDFM-gtfs/trips.db
Creating Connection rules...
/Users/vincenthardouin/.npm/_npx/4c8ae9a5fcd59e62/node_modules/gtfs2lc/lib/stoptimes/st2c.js:45
if (arrivalStop['stop_headsign'] && arrivalStop['stop_headsign'] !== '') {
Soyons pragmatiques, mes données viennent d'IDFM et je lance le script normalement, ça devrait fonctionner. Je ne sais pas trop ce que je vais obtenir avec ce script, alors je peux en chercher un autre au lieu d'essayer de voir ce qui ne va pas dans les données.