OsmGt

2 minute read

OsmGT est une librairie qui propose une solution pour créer un graphe, avec l’utilisation de la librairie Graph-tools à partir des données routes d’OpenStreetMap (OSM). OsmGT, à l’image d’OSMnx (utilisant Networkx), peut ainsi récupérer un réseau (à partir du nom d’une localité ou d’une bbox) sur l’ensemble de la planète à la fois sous la forme d’un GeoDataframe (GeoPandas) et d’un graphe.

Libraries et données mobilisées

Geopandas
  • GeoPandas est une librarie qui propose l’utilisation des GeoDataframe facilitant la manipulation de données géographiques à partir d’une structure tabulaire. GeoPandas est la surcouche géographique des Dataframe de Pandas.
graph-tools
  • Graph-tools est une librairie qui va nous permettre de générer des graphes et de réaliser des analyses de réseaux.

    Graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks).

OpenStreetMap
  • OpenStreetMap (OSM) est, selon wikipedia:

    un projet collaboratif de cartographie en ligne qui vise à constituer une base de données géographiques libre du monde (permettant par exemple de créer des cartes sous licence libre), en utilisant le système GPS et d’autres données libres. Il sera notre “réservoir” de données.

La topologie: la problématique…

La principale problématique de cette librairie est topologique. En effet, les données d’OSM ne sont pas tout à fait correcte, du moins elles demandent un certain nombre de corrections géométriques afin d’assurer de la validité de la topologie du réseau (notamment au niveau des intersections), et donc la construction d’un graphe, l’élément primordiale à toute analyse de réseau… Nous avons également ajouté la possibilité de connecter des POI (Point of interest) à ce réseau, soit à partir des données OSM ou bien d’une liste de coordonées que l’utilisateur pourra définir sous la forme d’un Geodataframe. Ces connections sont évideement prisent en charge lors de la création du graphe.

Les données d'OSM corrigées topologiquement.

Des analyses…

OsmGT propose également quelques outils d’analyse de réseau “clé en main” à l’aide des fonctionnalités de graph-tools:

  • calcul de plus court chemins
  • calcul d’isolignes et d’isochrones à partir d’un ou plusieurs noeuds

Evidemment, le graphe généré reste évidemment utilisable par la libraire graph-tools et reste lié attributairement au GeoDataframe pour la reconstitution des résultats après les analyses. Néanmoins si le graphe est modifié, les changements ne seront pas répercutés au sein du GeoDataframe, et vice-versa.

Un plus court chemin.
Un résultat d'isochrones et isolignes.

Un Jupyter notebook pour découvrir

Pour un exemple plus concret, il est possible de parcourir ce jupyter notebook

Un exemple d’application: FindMyPath

Afin d’illustrer ce projet, une application (Flask + Angular), nommée FindMyPath, est en cours de développement. Elle permet de générer un chemin sur le réseau d’OSM à partir de noeuds définis par l’utilisateur. Il a la possiblité de choisir le mode de transport, pour l’instant piéton ou routier. En lien avec la visualisation du parcours du chemin, il est possible de consulter la courbe topographique de ce dernier (données provenant de Mapzen). À noter que la courbe est discutable en milieu urbain (bâtiments…). En revanche, en milieu rural, elle est beaucoup plus pertinente.

Comments