Planificateur FabMob

De Communauté de la Fabrique des Mobilités
Aller à :navigation, rechercher



Objectifs

Le Planificateur de la FabMob est utilisé afin de mener des expérimentations sur les besoins des utilisateurs en matière de planification de trajets, ainsi que pour tester de nouvelles technologies en la matière. Il ne cherche en aucun cas à compétitionner les autres applications de planification de trajet.

Description technique

L'application se divise en trois parties: Le backend, le frontend, et le proxy. Elle se base sur le projet OpenTripPlanner

Le backend est tout simplement OpenTripPlanner.

Le frontend est une version modifiée de otp-react-redux.

Le proxy se place entre le frontend et le backend. Plutôt que d'appeler directement le backend, le frontend appelle le proxy. Celui-ci ajoute des fonctionnalités au backend. Pour le moment, il permet l'intégration de l'API de taxi de la ville de Montréal.

Installation

Le backend

L'installation de OpenTripPlanner est déjà bien documentée dans la doc de celui-ci. Nous détaillons ici les étapes afin de le configurer avec les données requises dans le contexte du Planificateur de la FabMob.

1. Préparation de OpenTripPlanner

1. Installation du jdk-17 de Java

 sudo apt install openjdk-17-jre
 sudo update-alternatives --config java # Sélectionner la version 17

2. Téléchargement de la version 2.3.0 de OpenTripPlanner

 wget https://github.com/opentripplanner/OpenTripPlanner/releases/download/v2.3.0/otp-2.3.0-shaded.jar

3. Création d'un dossier pour les données

 mkdir otp

2. Préparation des données GTFS

1. Préparation des données GTFS de la STM

 wget https://www.stm.info/sites/default/files/gtfs/gtfs_stm.zip
 mkdir otp/gtfs_stm
 unzip gtfs_stm.zip -d otp/gtfs_stm

2. Répéter ces étapes pour les autres opérateurs (EXO, par exemple)

Note importante: Les fichiers GTFS ont une date de péremption. Il faut les retélécharger périodiquement. Si le planificateur n’affiche plus les trajets, cela signifie que les GTFS sont expirés

3. Préparation des donnés OpenStreetMap

1. Télécharger les données OpenStreetMap pour le Québec sur http://download.geofabrik.de/north-america/canada/quebec.html

2. Réduction de la taille de la région pour inclure seulement l'île de Montréal

 sudo apt install osmium-tool
 osmium extract --strategy complete_ways --bbox -74.7776,45.0009,-71.6165,46.3992 quebec-latest.osm.pbf -o montreal.osm.pbf
 mv montreal.osm.pbf otp

4. Préparation des données pour OpenTripPlanner

1. Construire les données pour OpenTripPlanner

 java -Xmx8G -jar otp-2.3.0-shaded.jar --build --save otp
 java -Xmx8G -jar otp-2.3.0-shaded.jar --buildStreet otp
 java -Xmx8G -jar otp-2.3.0-shaded.jar --loadStreet --save otp

5. Démarrage de OpenTripPlanner

1. Lancer OpenTripPlanner

 java -Xmx2G -jar otp-2.3.0-shaded.jar --load otp

Le proxy

Le proxy doit être téléchargé sur GitHub: https://github.com/FabmobQC/planificateur-otp-proxy

Les étapes sont déjà décrites dans le readme du projet. Il est nécessaire d'avoir une clé pour l'API de taxi la ville de Montréal. Si le backend est lancé en local, la valeur de OTP_ADDRESS sera par défaut http://localhost:8080.

Le frontend

1. Télécharger le projet

 git clone https://github.com/FabmobQC/otp-react-redux.git
 cd otp-react-redux

2. Sélectionner la bonne branche

 git checkout taxi # Il s'agit pour le moment de la seule branche valide

3. Modifier le fichier config-fabmob.yml afin de se connecter au proxy. Le fichier est déjà configuré correctement pour se connecter au proxy en local.

 title: "Planificateur FabmobQC"
 homeTimezone: America/Toronto
 api:
   host: http://localhost
   path: /otp/routers/default
   port: 3000

4. Lancer le frontend indiquant le fichier de configuration. Attention, YAML_CONFIG doit indiquer le chemin absolu vers config-fabmob.yml.

 env YAML_CONFIG=$(pwd)/config-fabmob.yml yarn build

Si les étapes ont été effectuées en local, l'application est maintenant disponible sur http://localhost:9966/


Organisations utilisatrices ou intéressées pour utiliser la ressource :

Contributeur(s) :

Tags :

Catégories : Logiciel

Thème :

Référent :

Défi auquel répond la ressource :

Personnes clés à solliciter :

Autre commun proche :

Richesse recherchée :

Compétences recherchées :

Communauté d'intérêt :

Type de licence :

Conditions Générales d’Utilisation (CGU) :

Niveau de développement :

Lien vers l’outil de gestion des actions :

Lien vers l’outil de partage de fichiers :

Besoins :

Prochaines étapes :

Documentation des expérimentations :



Autres informations

Liste des acteurs qui utilisent ou souhaitent utiliser ce commun : aucun pour le moment

Liste des CR d’atelier en lien avec ce commun :