L’IFSTTAR, le Cerema et Oslandia développent depuis 2011 l’outil open-source Tempus, qui permet de réaliser des calcul d’itinéraires optimaux dans un réseau de transport multimodal.

Cet outil repose sur un modèle de graphe intégrant l’ensemble des modes de transport disponibles dans une agglomération (transports collectifs, marche, véhicules individuels, véhicules partagés en location classique ou en libre service…) ainsi que sur des algorithmes de calcul d’itinéraires intégrant cette notion de multimodalité. Les lieux de stationnement ou de location de véhicules sont modélisés par des nœuds spécifiques du graphe. Le graphe est rendu le plus compact possible pour limiter la consommation de ressources (mémoire et temps de calcul). Par ailleurs, le calculateur tient compte de temps de parcours statiques (c’est-à-dire constants sur l’ensemble de la période pour chaque arc du graphe) ou dynamiques. Les temps dynamiques peuvent être basés sur des grilles horaires (transports collectifs) ou sur des fonctions de vitesse variant sur l’ensemble de la période considérée (modes individuels soumis au trafic). Différents algorithmes sont développés, chacun ayant ses spécificités (adaptation au type de réseau ou de requêtes à réaliser).

L’outil se compose de différents modules, dont les codes sources peuvent être téléchargés ici :

  • Le module de chargement de données (tempus_loader) permet de générer une base compatible avec le calculateur à partir de multiples types de sources de données décrivant les réseaux de transport.
  • Le “cœur” (tempus_core) gère les structures de graphe et les algorithmes. Il est développé en C++ pour offrir un bon niveau de performance des algorithmes.
  • Les API PostgreSQL (tempus_pg) et Python (tempus_py) encapsulent le cœur. Elles permettent d’appeler les principales fonctions du cœur (construction et destruction du graphe, envoi des requêtes d’itinéraires) dans des langages de moindre complexité que le C++.
  • Deux plugins QGIS ont été développés sur la base de ces API.

    • Le plugin tempus_trip_planner permet de réaliser des calculs d’itinéraires multimodaux d’un point A à un point B et fournit en sortie une représentation cartographique et une feuille de route de l’itinéraire retourné.
    • Le plugin tempus_access permet de calculer des indicateurs relatifs à l’offre de transport et utilise notamment Tempus pour réaliser des calculs d’itinéraires point à point ou des calculs d’isochrones.

Tous les modules développés sont compatibles avec les systèmes d’exploitation Linux et Windows (testés à partir de Windows 10).

Pour en savoir plus, rendez-vous dans la documentation générale du projet,

Chaque module dispose également de sa documentation propre, que vous pouvez retrouver depuis le répertoire du projet : https://gitlab.com/tempus-projects/