Où aller en train ou en bus en moins de 2h ? En moins de 5h ? En moins de 10h ? C'est l'objectif de ce projet : afficher tout ça de manière jolie sur une carte. Démo et explications !
Quelques images motivantes
Isochrones de transport depuis Berne :
Zoom et affichage des stations de bus :
Joli patchwork de stations en Allemagne :
On peut aussi intégrer la carte au projet EnVadrouille que j'avais présenté il y a 5 ans et même déjà 10 ans sur ce site (ça ne nous rajeunit pas tout ça). En bleu les randonnées et tours de vélo que j'ai faits ces dernières années, en coloré les temps de transport. Tiens, faudrait que je randonne plus entre Berne et Lucerne, c'est pas loin en train !
Comment ça marche ?
Le projet se base sur plusieurs jeux de données :
- Les fichiers GTFS fournis par les différentes compagnies de train/bus. Ces fichiers contiennent les horaires.
- Openstreetmap pour retrouver le tracé des lignes de chemin de fer.
- Et enfin MapBox pour le rendu des cartes.
Grosso modo, depuis les fichiers GTFS, je calcule le temps de trajet entre une station (e.g., Neuchâtel) et le reste du monde. La base est un algorithme de plus court chemin (SSSP - single source shortest path), mais en plus compliqué parce que je dois gérer les contraintes des transports en commun—par exemple, on ne peut pas prendre un train qui part à 9h si l'on ne peut pas arriver à la station avant 10h… Il faut aussi prendre en compte les temps d'attente entre trains, le fait que l'on doive marcher entre les plateformes d'une gare (= on ne peut pas passer instantanément d'un train à l'autre, même dans une même gare !), et le fait que l'on puisse marcher entre une gare et tous les arrêts de bus proches. Bref, un joli casse-tête.
Pourquoi ne pas calculer les plus courts chemins en utilisant une API SNCF ou Bahn.de ? Parce que rien qu'en France, Suisse et Allemagne il y a plus d'un million d'arrêts de train et de bus ! (Si, si !) Autant dire que les APIs m'auraient banni bien avant d'avoir collecté toutes les infos…
Une fois les plus courts chemins déterminés, j'interroge un Openstreetmap local pour trouver le tracé des lignes de chemin de fer. Ca me donne des geojson.
On mélange tout ça, et on a des geojson enrichis de temps de trajet. Il ne reste plus qu'à afficher tout ça sur une carte et voilà !
Contribuez !
Je n'ai pas trouvé les fichiers GTFS des équivalents de TGV en Italie pour Italo. Si vous avez le jeu de données, je suis preneur ! Idem pour Trenitalia, pas sûr d'avoir les bonnes données.
Le projet GitHub explique comment générer des fonds de carte. Si vous voulez une ville en particulier, je peux aussi l'ajouter. Vous pouvez aussi tenter de faire tourner le projet. Normalement c'est bien documenté, mais ça prend un peu de temps (il faut récupérer tous les jeux de données).
# Pourquoi chercher les tracés ?
Posté par tisaac (Mastodon) . Évalué à 4.
Je ne dis pas que cela aurait été mieux, mais je n'aurais pas fait pareil.
Si j'ai bien compris, tu colores les tracés des lignes de chemin de fer selon le temps pour atteindre ces "points" par rapport à la gare de départ que tu as fixé.
Moi, j'aurais eu tendance à colorer uniquement les gares et arrêts. Pourquoi ?
1) C'est plus facile. Si je ne m'abuse, les GTFS comprennent les coordonnées des arrêts => passage par openstreetmap pour chercher les trajets n'est pas nécessaire
2) C'est plus précis. J'imagine qu'entre deux points d'arrêt, tu es obligé d'appliquer une règle un peu approximative pour déterminer le temps de trajets jusqu'à ce "point" là (vu que les GTFS ne donnent à ma connaissance que les horaires aux arrêts et pas entre eux)
3) C'est plus correcte. La plupart des sociétés ferroviaires et autres opérateurs de transport publics, invitent en général les voyageurs à ne pas descendre du train (bus, tram,…) avant l'arrêt complet de celui-ci (en gare). Par conséquent, les points entyre deux arrêts ne sont en fait pas accessibles tels quels. Il faut prendre un autre TC et le temps de parcours et plus long.
Surtout, ne pas tout prendre au sérieux !
[^] # Re: Pourquoi chercher les tracés ?
Posté par barmic 🦦 . Évalué à 6.
Parce que ça permet de visualiser le cheminement ?
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: Pourquoi chercher les tracés ?
Posté par Liorel . Évalué à 2.
Ce qu'on obtient aussi avec le tracé des lignes en gris clair et les points d'arrêt en couleur.
Ça, ce sont les sources. Le mouton que tu veux est dedans.
[^] # Re: Pourquoi chercher les tracés ?
Posté par barmic 🦦 . Évalué à 2.
Le gris est déjà utilisé sur la carte, il faut utiliser ni le gris ni une couleur du dégradé choisi. Je suis pas sûr de la lisibilité finale.
https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll
[^] # Re: Pourquoi chercher les tracés ?
Posté par BLepers . Évalué à 8.
L'idée c'est de voir vite où aller en approximativement moins de X heures. En colorant juste les gares c'est beaucoup moins visuel (c'est aussi ce que je faisais avant). L'objectif n'est pas vraiment d'être précis, mais d'avoir un joli fond de carte pour éveiller l'inspiration et trouver de nouvelles idées de randonnées. :)
Après, tu peux adapter le code à tes besoins, tout est sur GitHub. Il suffit d'enlever le layer des rails et c'est ce que tu décris. Qui peut le plus peut le moins ? ;)
[^] # Re: Pourquoi chercher les tracés ?
Posté par tisaac (Mastodon) . Évalué à 2.
En fait, dans mon équipe (vu qu'on utilise parfois ce genre de représentation)
Surtout, ne pas tout prendre au sérieux !
[^] # Re: Pourquoi chercher les tracés ?
Posté par cluxter . Évalué à 1.
Si c'est facile à mettre en œuvre, pourquoi ne pas inclure une option dans l'interface pour passer d'un mode à l'autre ?
# Villes à l'extrémité
Posté par Olivier Esver (site web personnel) . Évalué à 6.
Si tu as le temps, ça pourrait être sympa d'avoir les villes aux "extrémités" de la France:
- Quimper (semble plus loin en temps de Paris que Brest)
- Bayonne
- Perpignan
- Nice
- Dunkerque
- Cherbourg
S'il y a un problème, il y a une solution; s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
[^] # Re: Villes à l'extrémité
Posté par jmiven . Évalué à 10.
Ça je peux déjà te répondre : non, la durée minimum d'un Paris-Brest est à peu près la même qu'un Paris-Quimper, 3h30.
Le Paris-Quimper est néanmoins plus difficile à trouver en pâtisserie.
[^] # Re: Villes à l'extrémité
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 2.
Bayonne à l'extrêmité de la France? Alors qu'on peut, en partant de Bayonne, prendre un train pour Irun ou St Jean Pied de Port, qui sont encore plus loin?
[^] # Re: Villes à l'extrémité
Posté par BLepers . Évalué à 2.
C'est ajouté ;)
# Belgique
Posté par jnanar (site web personnel) . Évalué à 3.
Merci pour ce projet et ce journal. C'est super intéressant.
Si ça t'intéresse, les données semblent disponibles pour la Belgique. J'essayerai de jeter un coup d’œil pour voir si c'est possible de générer les données avec tes scripts.
https://hello.irail.be/gtfs/
# Il existe un site équivalent
Posté par Renault (site web personnel) . Évalué à 7.
J'ai déjà vu ce genre de choses, présentées un peu différemment évidemment mais qui semble couvrir une bonne aprtie de l'Europe : https://www.chronotrains.com/fr/station/2795011-Ixelles/1
[^] # Re: Il existe un site équivalent
Posté par BLepers . Évalué à 3.
Oui, chronotrains est top ! Malheureusement, le site ne montre que les stations de train principales et là où j'habite on a souvent besoin de prendre train + bus… Petit choix entre vouloir un truc précis depuis sa propre ville (ce que je voulais) et avoir des isochrones pour toute l'Europe :)
Juste à titre de comparaison, 1h depuis Grenoble :
2h depuis Neuchâtel :
L'idéal serait de réussir à avoir toutes les infos pour toutes les stations d'Europe, mais il va y avoir un petit problème de stockage…
[^] # Re: Il existe un site équivalent
Posté par Psychofox (Mastodon) . Évalué à 4.
Oui en Suisse il faut prendre en compte à minima les cars postaux[1] sinon ça ne sert à rien. On pourrait aussi imaginer étendre la distance via des calculs de parcours multimodaux (avec un vélo comme extension par exemple).
[1] j'ai d'ailleurs été étonné de voir il y a quelques années qu'une municipalité du sud de la France utilisait un service opéré par les cars postaux Suisse, ce n'était sans doute pas la seule. Je ne sais pas si c'est toujours le cas.
[^] # Re: Il existe un site équivalent
Posté par esdeem . Évalué à 2. Dernière modification le 19 juin 2023 à 14:12.
J'en avais également croisé dans l'Hérault (à Agde et à Sète). L'entité qui opérait la flotte de bus s'appelait CarPostal France. Elle a été revendue à Keolis SA en 2019. cf. https://www.post.ch/fr/notre-profil/medias/communiques-de-presse/2019/la-poste-conclut-la-vente-de-carpostal-france-a-keolis-sa
0. Assume good faith 1. Be kind to other people 2. Express yourself 4. Apply rule 0
# Autres implémentations open source
Posté par snotling0 . Évalué à 2.
Il y a quelques années, quand je travaillais dans "l'informatique géographique", j'avais utilisé ces 2 outils pour calculer des isochrones:
- https://docs.opentripplanner.org/en/v2.3.0/sandbox/TravelTime/?h=isoc#isochrone-api
- https://github.com/graphhopper/graphhopper#isochrone-web-api
Les 2 prennent du GTFS en entrée si je ne me trompes pas.
[^] # Re: Autres implémentations open source
Posté par anubis . Évalué à 3.
Il y a aussi un service de l'université d'Heidelberg : https://maps.openrouteservice.org/ (piéton, vélo, voiture, bus)
aussi sur le salon xmpp:linuxfr@chat.jabberfr.org?join
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.