OpenTripPlanner (OTP) est un planificateur d'itinéraire multimodal open source et multiplateforme. Un avantage majeur de l'exécution de votre propre planificateur d'itinéraire multimodal est la possibilité d'effectuer une analyse en utilisant des données de transport modifiées. (source github.com/marcusyoung/otp-tutorial/blob/master/intro-otp.pdf)
OTP permet aussi de calculer des isochrones, qui donnent la zone accessible en X minutes d'un point donné: une excellente illustration des qualités d'un projet. © opentripplanner.readthedocs.io/en/latest/Intermediate-Tutorial
...pour exhiber l’explosion de la mobilité décarbonée obtenue grace à
ses excellentes dessertes des poles (non effectuées par le réseau de tram) à Strasbourg (peut-être ok à Bordeaux ou Nantes pour ce point)
sa vitesse moyenne doublée (par rapport au tram) voire triplée sur l’hypercentre.
un métro 🚇 automatique fait chuter les frais d’exploitation, alors qu’avec un tram 🚃, ils explosent comparé au réseau bus seul.
le tram 🚃 est saturé sur l’hypercentre et le métro 🚇 offre une capacité doublée en mode 25m de long... et donc capacité encore augmentable dans le mode 50m de long (Toulouse et Lille y passent en ce moment)
une telle activité est probablement utilisée par les concepteurs de nouvelles lignes de métro, mais aussi pour promouvoir un projet de transport en commun.
Résultat: ça marche. en local pour l'instant, car il faut trouver un serveur internet avec Java.
Intéret: on peut clique sur START puis STOP, puis déplacer simplement ces 2 curseurs et constater que le métro est pris en compte très très souvent: donc très souvent le + rapide. Excellent. Assez grisant de saisir comment serait la meilleure mobilité décarbonée sur Strasbourg.
Limites: on ne voit pas, mais il faut le savoir: le métro est aussi
le beaucoup moins cher à l'exploitation, donc pour toujours, et
il n'est pas saturé:
mieux il a d'avantage de trafic: grace aux meilleurs flux/vitesse/fréquence, on peut rabattre plein de lignes de surface sur la colonne vertébrale: +rapide -cher.
Mais la limite la plus grosse est que OTP ne nous donne pas les POLES à desservir: pour ça, il faut connaitre la ville. Cf. le dessin principal avec les bulles des POLES sur la ville: croquis ci-dessous.
À faire absolument avec OTP:
les isochrones.
sur un serveur internet pour que d'avantage de personnes puissent jouer avec.
Étude impact évaluation projet, page 26: la première ligne: enjeux de desserte
Centre Schilick -> Centre Meinau, via l'hypercentre, la colonne vertébrale de la ville.
24 minutes en 🚇métro au lieu de 45 minutes en 🚃tram (une liaison en bus est en 32 minutes, mais bus = cher ET flux limité)
Le 🚇 Métro Strasbourg: la meilleure mobilité décarbonée.
Et en plus d'avantage de passagers.
Et moins cher à l'exploitation ad aeternam.
ressource: un mac book air pas très récent suffit.
télécharger gratuits: (1) java, (2) OTP, et (3) les horaires de la CTS (pour Strasbourg)
à partir de là, on peut rapidement avoir en local:
un service de recherche d’itinéraire
créer un isochrone. faut lancer 3 lignes de commande…
ensuite faut avoir la liste des stations de métro de la ville (pour Strasbourg, la liste est connue) et de ça, il faut un peu travailler:
chercher les coordonnées GPS de chaque station
ensuite calculer un horaire d’un passage dans un sens,
puis dans l’autre.
dans l’horaire fictif, il suffit de dire que cet horaire est cyclique et toute l’année.
à partir, de là relancer OTP.
En local, pour tester si ça marche et créer les isochrones. Installer JDK 13.0.1 Java 181Mb de oracle.com ✅ will take 310Mb
Les horaires de toutes les sociétés de transport en commun sont toujours libres et gratuits. Données CTS récupérées ✅
INUTILE: Plan libre et gratuit de OpenStreetMap OSM 🗺 sympa, mais inutile d'installer quoi que ce soit, car l'installation de OTP en local ou non cherche la carte OSM sur internet. Et en plus, c'est plus rapide à se lancer. On ne veut pas changer ici la carte des rues...
les horaires et positions GPS des stations du réseau actuel de Strasbourg
cts-strasbourg.eu/fr/portail-open-data/
les horaires théoriques de son réseau: la CTS les met à disposition. Il faut les contacter par email.
mais une recherche sur google “cts strasbourg open data” permet de trouver ça directement:
data.gouv.fr/en/organizations/cts-compagnie-des-transports-strasbourgeois/
data.gouv.fr/en/datasets/gtfs-strasbourg/
Download: data.gouv.fr/en/datasets/r/eeea9e52-4f8a-459e-aef5-a093a3b05356
📄 google_transit.zip, 5.6Mb, format GFTS à mettre dans le répertoire 📁otp/bin ✅
INUTILE: Plan open-source de OpenStreetMap:
aller sur openstreetmap.org Chercher Strasbourg, zoomer pour voir Hoenheim et Illkirch, openstreetmap.org/export#map=12/48.5730/7.7399 , exporter, il me dit «You requested too many nodes (limit is 50000).» Bon... Sur la même page, le lien sur download.geofabrik.de
alsace-latest.osm.pbf, 105Mb, an extract from OSM covering Alsace area, obtained from: download.geofabrik.de/europe/france/alsace.html
Tutoriel, Téléchargement, Configuration du serveur
Basic Tutorial opentripplanner.readthedocs.io/en/latest/Basic-Tutorial
✅ Getting OTP opentripplanner.readthedocs.io/en/latest/Getting-OTP
Pre-built JARs: repo1.maven.org/maven2/org/opentripplanner/otp le plus récent est 1.4.0 sauver le fichier 📄 otp-1.4.0-shaded.jar, 62Mb dans le répertoire 📁otp/bin
✅ Configurer opentripplanner.readthedocs.io/en/latest/Configuration dans 📁otp/bin avoir ceci:
👎🏻📄build-config.json 📄router-config.json ne sont pas obligatoires ici. On peut régler des trucs, genre: Temps d'accès verticaux de la surface aux quais souterrains. Quels stations? voir 3 lignes en coupe. D'expérience à Munich: 20s en tranchée couverte, 40s en tunnel foré. Donc mettons 30s. Les temps d'accès horizontaux sont calculés automatiquement par OTP... c'est le but.
📄Graph.obj ❓à générer. nécessaire pour les isochrones.
👍🏻📄gfts-strasbourg-google_transit.zip 5.2Mb est le fichier GTFS de la CTS
✅ lancer le programme dans un Terminal:
java -Xmx1G -jar otp-1.4.0-shaded.jar --build $PWD --inMemory
après qq instants, on voit le texte: Grizzly server running.
👍🏻 localhost:8080/?setLng=fr marchera avec OTP sur votre machine locale avec vos données CTS.
Faire qq essai: genre, centre Meinau, à Place Kléber: 22 minutes, contre 9 minutes en métro... Les 13 minutes gagnées le sont aussi loin de la station de métro: il est souvent plus rapide de rabattre un bus sur la ligne forte... ce qui coute moins cher à l'exploitation qu'un réseau dense en surface.
✅ Programmer les horaires du métro 🚇 voir paragraphe E) ci-dessous.
Nouvelle partie, 15 avril 2020, Configuration
BUT: Contruire des isochrones, avec et sans le métro
Suivons ce tutoriel: github.com/marcusyoung/otp-tutorial/blob/master/intro-otp.pdf
Créer cette structure de répertoire et fichiers:
otp-1.4.0-shaded.jar
graphs/metro/gtfs-strasbourg-val.zip
graphs/metro/gtfs-strasbourg-google_transit.zip
le mot «metro» est le nom de notre Graphe ou Router: vous pouvez le choisir...
le tutoriel dit de créer ensuite le fichier Graph.obj
java -Xmx1G -jar *.jar --build graphs/metro
pendant 5 minutes l'ordinateur chauffe, et ceci crée un nouveau fichier de 15Mb graphs/metro/Graph.obj
relancer le serveur, mais avec d'autres options que précédemment:
java -Xmx1G -jar otp-1.4.0-shaded.jar --router metro --graphs graphs --server
vérifier que ceci marche encore: 👍🏻 localhost:8080/?setLng=fr marchera avec OTP sur votre machine locale avec vos données CTS.
coordonnées GPS d'un point de départ: visible dans l'URL sur http://maps.google.fr quand vous avez cherché une adresse.
opentripplanner.readthedocs.io/en/latest/Intermediate-Tutorial me dit de faire:
cet URL métro🚇
cet URL tram🚈
bien changer la date: vérifiez que votre date donne ce que vous voulez dans le mode recherche d'itinéraire en ligne.
on va faire des coupures: 20 min, 30 min et 40 min, donc 1200s, 1800s, 2400s
arrive l'erreur: org.opentripplanner.routing.error.VertexNotFoundException: vertices not found: [from] vertices not found: [from]
https://groups.google.com/forum/#!topic/opentripplanner-users/UHjAwMtdSF8 dit qu'il faut le fichier OSM...
ok, chargeons graphs/current/alsace-latest.osm.pbf, re-créons Graph.obj, ça prend 9 minutes.
ok, bon, maintenant, ça génère un truc, qui serait au format JSON, lisible par GIS. Sauver dans un fichier le résultat bizarre qui s'affiche dans votre brouseur, genre isochrone-metro.json
aller sur http://geojson.io et ouvrir votre fichier: ça marche! Résultats ci-dessous.
🚇métro, isochrone⏱ 20 min, 30 min, 40 min
départ Mairie Bischheim
Centre du Nord de l'Eurométropole Strasbourg
🚋tram, isochrone⏱ 20 min, 30 min, 40 min
départ Mairie Bischheim
Centre du Nord de l'Eurométropole Strasbourg
🚇métro, isochrone⏱ 20 min, 30 min, 40 min
départ Neudorf Marché
Centre du Sud de l'Eurométropole Strasbourg
🚋tram, isochrone⏱ 20 min, 30 min, 40 min
départ Neudorf Marché
Centre du Sud de l'Eurométropole Strasbourg
Vidéos, Articles
Vidéos:
l’interface semble top: youtube.com/watch?v=YXLUnlI8dOU
présentation du projet: youtube.com/watch?v=90OcCaYYZb8 minute “20” “accessibility from a given point” : avec ça, on va pouvoir comparer avec et sans métro. Il suffira d'activer, désactiver le métro lors d'une recherche.
excellente à écouter complètement: Simulating Cities with OpenStreetMap (OSM) and OpenTripPlanner (OTP) - Kevin Webb youtube.com/watch?v=Fj75sbygLmc exactement ce que nous voulons faire. Cette vidéo explique bien le concept global de OTP. Imprimer l’image minute 4. Il y est arrivé en 5 mn dit-il en chopant des données libres sur internet. À la minute 24, il explique que c’est utilisé pour Paris: en qq heures, ils ont pu simuler les nouvelles lignes de métro avec effet sur les déplacements. Son adresse email à la fin.
Articles:
playthecity.nl/page/4684/open-trip-planner OpenTripPlanner (OTP) is the leading open source platform for multimodal trip itinerary planning and network analysis. Launched in 2009, the project has since attracted a thriving community of users and developers, with live deployments now found in twelve countries.
May be (a guy trying like me) (old obsolete page?) groups.google.com/forum/#!topic/transit-developers/Urki2wh4U_g
Documentation sur la structure interne du logiciel delftswa.gitbooks.io/desosa2016/opentripplanner/chapter.html
Ile-de-France (le pôle de la Meinau) à Gare
en tram 🚃 : 27 minutes
Pour référence, de Étude impact évaluation projet:
en métro VAL 🚇 : 10 minutes (via Poles Neudorf et Centre) (à grand débit) (exploitation moins chère)
les 10 minutes rapprochent tous les environs autour des stations de tout le reste de la ville.
la diminution du temps est ressenti de tous les quartiers.
Sans les données du métro, mais réseau CTS en local sur l'ordi perso: donc nous allons pouvoir rajouter le métro 🚇
Créer les horaires pour chaque station en se basant sur
la vitesse moyenne du métro automatique de 36km/h . Pratique: c'est exactement 10m/s .
les fréquences prévues (dans le dossier officiel ou d’une autre ville)
pour la démonstration faire un horaire simple de jour de la semaine, pas en vacances.
pas non plus de temps réel bien sûr, vu que c'est un projet.
Références:
prendre comme départ les fichiers de la CTS (voire plus haut)
GTFS Examples” is a tutorial on GTFS basics rilliumtransit.com/2016/07/05/gtfs-examples
Résultat:
agency.txt ✅ reprendre simplement le fichier de décrivant CTS. 1 row.
agency_name,agency_url,agency_timezone,agency_phone,agency_fare_url,agency_lang
CTS,http://www.cts-strasbourg.eu/,Europe/Paris,0388777070,http://www.cts-strasbourg.eu/fr/Boutique-en-ligne/tarifs/,fr
calendar.txt ✅ est très simple. 1 row.
service_id,start_date,end_date,monday,tuesday,wednesday,thursday,friday,saturday,sunday
service_1,19940101,30000101,1,1,1,1,1,1,1
routes.txt ✅ 2 lignes = 2 routes. 2 rows. 1 signifie métro, FFFF00 est le code du jaune.
route_id,route_short_name,route_long_name,route_desc,route_type,route_color,route_text_color
route_M1A,M1A,"Hautepierre - Illkirch",,1,FFFF00,FFFFFF
route_M1B,M1B,"Kléber - Hoenheim",,1,FFFF00,FFFFFF
trips.txt ✅ sur les deux routes, on a deux sens, donc 4 trips:
trip_id,route_id,service_id,direction_id,trip_headsign
trip_illkirch,route_M1A,service_1,0,Illkirch
trip_hautepierre,route_M1A,service_1,1,Hautepierre
trip_kleber,route_M1B,service_1,0,Kléber
trip_hoenheim,route_M1B,service_1,1,Hoenheim
frequencies.txt ✅ on va super simplifier: une seule fréquence de 120s (normalement uniquement en heure de pointe)
trip_id,headway_secs,start_time,end_time
trip_illkirch,120,4:00:00,23:59:00
trip_hautepierre,120,4:00:00,23:59:00
trip_kleber,120,4:00:00,23:59:00
trip_hoenheim,120,4:00:00,23:59:00
stops.txt ✅ 1 gare de connection, 8 gares ligne M1-Nord, 14 gares ligne M1-Ouest-Sud. movable-type.co.uk/scripts/latlong.html permetde calculer des distances:
stop_id,stop_name,stop_lat,stop_lon
M1_N_09,Hoenheim,48.6207,7.7553
trip_kleber,1,M1_N_09,9:00:00,9:00:00 **on commence là et on descend pour calculer la suite**
trip_hoenheim,9,M1_N_09,9:08:26,9:08:26
distance = 687 m => durée = 69 s = 1 min 9 s
M1_N_08,Mairie Bischheim,48.6148,7.7525
trip_kleber,2,M1_N_08,9:01:09,9:01:09
trip_hoenheim,8,M1_N_08,9:07:17,9:07:17
distance = 573 m => durée = 57 s
M1_N_07,Rue de Bitche,48.6098,7.7506
trip_kleber,3,M1_N_07,9:02:06,9:02:06
trip_hoenheim,7,M1_N_07,9:06:20,9:06:20
distance = 622 m => durée = 62 s = 1 min 2 s
M1_N_06,Hotel de Ville,48.6045,7.7479
trip_kleber,4,M1_N_06,9:03:08,9:03:08
trip_hoenheim,6,M1_N_06,9:05:18,9:05:18
distance = 644 m => durée = 64 s = 1 min 4 s
M1_N_05,Wacken,48.6007,7.7545
trip_kleber,5,M1_N_05,9:04:12,9:04:12
trip_hoenheim,5,M1_N_05,9:04:14,9:04:14
distance = 505 m => durée = 51 s
M1_N_04,Palais des Congrès,48.5985,7.7605
trip_kleber,6,M1_N_04,9:05:03,9:05:03
trip_hoenheim,4,M1_N_04,9:03:23,9:03:23
distance = 528 m => durée = 53 s
M1_N_03,Pl. de Bordeaux,48.5940,7.7582
trip_kleber,7,M1_N_03,9:05:56,9:05:56
trip_hoenheim,3,M1_N_03,9:02:30,9:02:30
distance = 697 m => durée = 70 s = 1 min 10 s
M1_N_02,Av. des Vosges,48.5895,7.7516
trip_kleber,8,M1_N_02,9:07:06,9:07:06
trip_hoenheim,2,M1_N_02,9:01:20,9:01:20
distance = 799 m => durée = 80 s = 1 min 20 s
M1_01,Kléber,48.5840,7.7446 ❎
trip_kleber,9,M1_01,9:08:26,9:08:26 ENLEVER_26_SECONDES... ou forcer 09:00:00 👨🏻💻
trip_hoenheim,1,M1_01,9:00:00,9:00:00 **on commence là et on monte pour calculer la suite**
M1_O_05,Hautepierre CHU,48.5915,7.7069
trip_illkirch,1,M1_O_05,9:00:00,9:00:00 **on commence là et on descend pour calculer la suite**
trip_hautepierre,15,M1_O_05,9:17:52,9:17:52
distance = 637 m => durée = 64 s = 1 min 4 s
M1_O_04,Rue des Ducs,48.5901,7.7153
trip_illkirch,2,M1_O_04,9:01:04,9:01:04
trip_hautepierre,14,M1_O_04,9:16:48,9:16:48
distance = 738 m => durée = 74 s = 1 min 14 s
M1_O_03,Rotonde,48.5918,7.725
trip_illkirch,3,M1_O_03,9:02:18,9:02:18
trip_hautepierre,13,M1_O_03,9:15:34,9:15:34
distance = 1078 m => durée = 108 s = 1 min 48 s
M1_O_02,Gare,48.5849,7.7353
trip_illkirch,4,M1_O_02,9:04:06,9:04:06
trip_hautepierre,12,M1_O_02,9:13:46,9:13:46
distance = 691 m => durée = 69 s = 1 min 9 s
M1_01,Kléber,48.5840,7.7446 ❎
trip_illkirch,5,M1_01,9:05:15,9:05:15 ENLEVER_15_SECONDES... ou forcer 09:01:00 👨🏻💻
trip_hautepierre,11,M1_01,9:12:37,9:12:37 RAJOUTER_23_SECONDES... ou forcer 09:01:00 👨🏻💻
distance = 529 m => durée = 53 s
M1_S_02,Ancienne Douane,48.5804,7.7493
trip_illkirch,6,M1_S_02,9:06:08,9:06:08
trip_hautepierre,10,M1_S_02,9:11:44,9:11:44
distance = 402 m => durée = 40 s
M1_S_03,Austerlitz,48.5778,7.7531
trip_illkirch,7,M1_S_03,9:06:48,9:06:48
trip_hautepierre,9,M1_S_03,9:11:04,9:11:04
distance = 630 m => durée = 63 s = 1 min 3 s
M1_S_04,Étoile,48.5724,7.7557
trip_illkirch,8,M1_S_04,9:07:51,9:07:51
trip_hautepierre,8,M1_S_04,9:10:01,9:10:01
distance = 796 m => durée = 80 s = 1 min 20 s
M1_S_05,Neudorf Marché,48.5657,7.7595
trip_illkirch,9,M1_S_05,9:09:11,9:09:11
trip_hautepierre,7,M1_S_05,9:08:41,9:08:41
1988: via Racing, mais redondant avec le tram 🚃 ligne A
distance = 768 m => durée = 77 s
M1_S_06_1988,Racing,48.5603,7.7530
distance = 580 m => durée = 58 s
2019: via Gravière, car le tram 🚃 ligne C y passe: passer à l'Est du stade
distance = 605 m => durée = 61 s = 1 min 1 s
M1_S_06_2019,Gravière,48.5611,7.7639
trip_illkirch,10,M1_S_06_2019,9:10:12,9:10:12
trip_hautepierre,6,M1_S_06_2019,9:07:40,9:07:40
distance = 1010 m => durée = 101 s = 1 min 41 s
M1_S_07,Offenstein,48.5551,7.7536
trip_illkirch,11,M1_S_07,9:11:53,9:11:53
trip_hautepierre,5,M1_S_07,9:05:59,9:05:59
distance = 572 m => durée = 57 s
M1_S_08,Ile-de-France,48.5503,7.7508
trip_illkirch,12,M1_S_08,9:12:50,9:12:50
trip_hautepierre,4,M1_S_08,9:05:02,9:05:02
distance = 1118 m => durée = 112 s = 1 min 52 s
M1_S_09,Baggersee,48.5450,7.7379
trip_illkirch,13,M1_S_09,9:14:42,9:14:42
trip_hautepierre,3,M1_S_09,9:03:10,9:03:10
distance = 917 m => durée = 92 s = 1 min 32 s
M1_S_10,Illkirch Colonne,48.5377,7.7321
trip_illkirch,14,M1_S_10,9:16:14,9:16:14
trip_hautepierre,2,M1_S_10,9:01:38,9:01:38
distance = 980 m => durée = 98 s = 1 min 38 s
M1_S_11,IUT Illkirch,48.5290,7.7300
trip_illkirch,15,M1_S_11,9:17:52,9:17:52
trip_hautepierre,1,M1_S_11,9:00:00,9:00:00 **on commence là et on monte pour calculer la suite**
stop_times.txt ✅ affecter à chaque STOP un TRIP et une date (heure, minute) donc 24x2 rows. Calculer les horaires en fonction de la distance et la vitesse moyenne de 36km/h. On ne fait que les 4 voyages possibles, le tout étant reproduit grace au fichier frequencies.txt...
trip_id,stop_sequence,stop_id,arrival_time,departure_time
trip_1,1,stop_1,9:00:00,9:00:00
trip_1,2,stop_2,9:10:00,9:10:00
c'est fait dans la partie stops.txt ci-dessus...
Le moteur de recherche d’itinéraire pourrait être accessible de tout le monde, donc il faudra un Web Hosting Java
«free web hosting java» heliohost.org 1GB, let's try this one 👍🏻❓pas de java ❗️
Java Hosting whoishostingthis.com/compare/java VPS, Virtual Private Server
5 Best Cheap Java Hosting Services – Secure & Fast [2019 Update] websiteplanet.com/blog/best-cheap-java-hosting-services
de.hostadvice.com/hosting-services/free-java-hosting seems to refer several java free hosting servers.
sitepoint.com/top-5-iaas-solutions-hosting-java-applications/ If you are deploying a Java app, you can install your app server (Tomcat, Web Sphere, etc.) into one VM
Hosting Hebergement Web
ubuntu.com/aws 81€/mois
gandi.net/fr/simple-hosting 7,20€ 256MB
gandi.net/fr/cloud 5,26€ 256MB 10GB
lws.fr/hebergement_web.php 1,80€ 100GB