Vous êtes ici :

AccueilDocumentation et démonstration Documentation de base

Documentation de base

TEMPUS est construite autour d'un noyau (core), dont la documentation est détaillée ici. Les principales classes de TempusV2 sont :

  • Tempus::Road::Graph qui représente le graphe routier
  • Tempus::PublicTransport::Graph qui représente le graphe des transports en commun
  • Tempus::POI qui représente les point d'intérêt sur le graphe routier
  • Tempus::Multimodal::Graph qui est un wrapper qui appelle les trois classes précédentes.

Les graphes sont évalués par les informations venant d'une base PostgreSQL/PostGIS database. Pour le détail des fonctions disponibles, voir la classe Tempus::PQImporter (src/core/pgsql_importer.hh). Le schéma SQL peut être trouvé ici

Les algorithmes de plus court chemin sont écrits en tant que plugins utilisateurs. La classe plugin de base est (src/core/plugin.hh) qui donne accès à quelques callbacks. Les trois premiers plugins de TempusV2 peuvent servir d'exemples : Tempus::RoadPlugin (src/plugins/sample_road_plugin), Tempus::PtPlugin (src/plugins/sample_pt_plugin) and Tempus::MultiPlugin (src/plugins/sample_multi_plugin/).

Les plugins répondent à des requêtes de plus court chemin stockées dans (src/core/request.hh), classe qui retourne une ou plusieurs feuilles de route (src/core/roadmap.hh).

L'API interne est exposée aux autres programmes et langages à travers un serveur WPS.

API C++

Une description détaillée de l'API C++ est disponible (générée par Doxygen).

Serveur WPS

Le serveur WPS charge les plugins ainsi que les données des graphes routiers et TC provenant d'une base PostgreSQL/PostGIS. Ce serveur permet à l'utilisateur de lancer ces requêtes de plus court chemin.

Le serveur WPS lit des requêtes XML qui peuvent être écrites directement, en utilisant un script python ou via l'interface QGIS.

Requêtes générées en Python

Afin de lancer des requêtes en nombre, un script python peut être écrit tel que (src/python/tempus_request.py).

Un exemple d'un script batch est src/batch/random_patch.py

Le noyau d'un script python appelle TempusRequest.request, où les options du plugin et de la requête sont précisées, par exemple :

result = tempus.request( plugin_name = "sample_road_plugin", plugin_options = { 'prepare_result' : True }, origin = dep, criteria = [Cost.Distance, Cost.NumberOfChanges], steps = [RequestStep(destination = arr)] )


Requêtes générées par QGIS

Un client QGIS est fourni avec TEMPUS. TEMPUS est installé comme un plugin python de QGIS. Une fois activé, l'interface utilisateur permet de définir sa requête..D'abord en se connectant au serveur WPS :

Puis en sélectionnant son plugin et ses options :

La requête de plus court chemin multimodal est précisé dans l'onglet dédié. Les étapes intermédiaires peuvent être ajoutées de façon dynamique.

Une fois le chemin calculé, QGIS affiche une nouvelle couche vecteur avec la solution. L'onglet 'roadmap' donne la feuille de route fournie par le plugin, ainsi que d'autres infos comme le profil altitude (si disponible dans la base).

Des métriques de performances sont définis dans l'onglet 'performances'.

Chaque requête est stockée en mémoire et peut être retrouvée plus tard. Il est possible d'importer des requêtes depuis l'historique.

Loader de données

TEMPUS est livré avec un loader de données qui est une application python dotée de scripts SQL. Le script est utilisé pour alimenter une base Tempus PostgreSQL/PostGIS avec des données de formats externes.

Formats supportés au 1er Septembre 2014 :

  • TomTom multinet (2011.3)
  • NavTeq (2008.3, 2009.3)
  • OpenStreetMap (CloudMade shapefiles et .osm avec osm2shp++)
  • GTFS

Pour OpenStreetMap, l'import de fichiers .osm est possible en deux étapes. D'abord, conversion des .osm en .shp puis utilisation du loader. La conversion peut être effectuée à l'aide de l'outil osm2shp++ fourni avec Tempus.

Vous pouvez vous référer à ce document qui décrit comment le loader utilise la base de données.

Brèves

Coordonnées

TEMPUS

Romain Billot / IFSTTAR/COSYS/LICIT

25 Avenue F. Mitterrand, 69675 Bron cedex

T : 04 78 65 68 70

 

 

Partenaires

IFSTTAR ENTPE CEREMA Oslandia
Vers le haut