Finalités du package, public et champ de calcul cibles

Le package metric.osrm a pour vocation de faciliter l’interrogation d’un serveur de routage de type OSRM (Open Source Routing Machine). Il propose :

  • Des fonctions de préparation et conversion des données en entrée : transformation de codes communes (codes INSEE ou LAU) ou d’adresses en coordonnées, conversion entre différents formats d’objets (sf, sp ou data.frame) ;

  • Des fonctions de calcul de matrice de temps et de distances entre sources et destinations (en face à face, par croisement, aller simple ou aller-retour, accès au(x) point(s) d’intérêt le(s) plus proche(s) dans un rayon de x km, …) et de calcul d’isocourbes rapides (isochrones, isodistances) ;

  • Des fonctions de calcul d’indicateurs associés et la visualisation cartographique de certains résultats.

Le package metric.osrm s’adresse principalement aux utlisateurs souhaitant manipuler leurs données en entrée, lancer des calculs potentiellement d’importance et intégrer directement leurs résultats dans un programme plus large d’analyse ou une chaîne de traitement reproductible. Ses fonctions peuvent par ailleurs être ré-utilisées pour le développement d’autres outils.

Développé dans le cadre d’un projet de refonte de l’ancien distancier de référence INSEE (METRIC), il vise principalement à répondre aux besoins spécifiques des chargés d’études de l’institut. Par conséquent, le package metric.osrm a exclusivement été testé sur un serveur OSRM disposant d’une configuration et de données routières OpenStreetMap appartenant à un champ géographique précis (voir image ci-dessous) ; un champ précis faisant l’objet de traitements spécifiques dans le code.

Avant d’utiliser les fonctions

Pour utiliser le package, l’utilisateur devra spécifier, à l’étape 0 de son programme, l’adresse d’un serveur de calcul OSRM et un profil de routage.

# On précise l'adresse d'un serveur, ici celle du serveur expérimental déployé
# sur la plateforme du SSPCloud

options(osrm.server = "https://metric-osrm-backend.lab.sspcloud.fr/")

# On précise le profil de routage, ici "driving" (trajet routier en voiture) seul profil
# actuellement disponible sur le serveur déployé sur le SSPCloud 

options(osrm.profile = "driving")

Organisation des fonctions

Les fonctions proposées par le package s’organisent de la sorte :

  • Des fonctions pour la préparation ou la conversion des données : adresseToCoord, codeComToCoord, codeLauToCoord, convertTo.

  • Des fonctions pour requêter le serveur de calcul : metricOsrmTable, metricOsrmRoute, metricOsrmIsochrone.

  • Des fonctions pour le calcul d’indicateurs : statTable, indTableSrcDst, indIsoSpatial.

  • Des fonctions pour la visualisation des résultats sur une carte : mapRoutes, mapRoutesProp.

Le résultat de metricOsrmTable peut être utilisé pour les fonctions statTable et indTableSrcDst fournissant respectivement des indicateurs statistiques et des indicateurs en volume.

Le résultat de metricOsrmRoute peut être utilisé pour les fonctions mapRoutes et mapRoutesProp permettant de créer des cartes pour représenter des tracés.

Le résultat de metricOsrmIsochrone peut être utilisé pour la fonction indIsoSpatial produisant des indicateurs en volume et spatiaux.

Les articles proposés

Les articles (ou vignettes) proposés dans la documentation expliquent, grâce à des exemples détaillés, comment utiliser à bon escient les différentes fonctionnalités du package.

  • L’article Préparer ses données avec le package {metric.osrm} décrit l’utilisation des fonctions adresseToCoord, codeComToCoord, codeLauToCoord et convertTo. Ces fonctions vous permettent de convertir vos données en entrée dans un format compatible avec le requêtage du serveur.

  • L’article Calculer une matrice de temps et de distances avec le package {metric.osrm} décrit comment utiliser la fonction metricOsrmTable pour réaliser des calculs de couples de coordonnées en face à face ou en croisement selon le produit cartésien. L’article détaille également comment produire des indicateurs statistiques à partir de la fonction statTable.

  • L’article Calculer l’accès aux équipements les plus proches avec le package {metric.osrm} vous montre comment aborder avec le package les problématiques liées à l’accès aux équipements ou autres types de destination. L’article reprend l’utilisation de la fonction metricOsrmTable et plus précisément de ses arguments rayonMax, nbDstVolOiseau, nbDstMeasure et optiMeasure. Le fonctionnement de la fonction indTableSrcDst est également décrit dans cet article.

  • L’article Calculer des isochrones avec le package {metric.osrm} détaille l’utilisation de la fonction metricOsrmIsochrone pour réaliser des courbes isochrones. Cette fonction peut être utilisée pour calculer l’accessibilité d’un ou plusieurs équipements. Cet article décrit également l’utilisation de la fonction indIsoSpatial.

  • Enfin, l’article Visualiser les trajets sur une carte avec le package {metric.osrm} précise comment réaliser des cartes leaflet pour représenter des trajets grâce aux fonctions metricOsrmRoute, mapRoutes et mapRoutesProp.

Les données du package

Pour illustrer les exemples proposés dans les articles, le package metric.osrm met à disposition plusieurs tables de données dans des formats différents. Elles sont installées sur votre machine lors de l’installation du package. Pour connaître leur emplacement, exécutez la ligne de code suivante, que vous retrouverez à chaque import de données : system.file("extdata", package = "metric.osrm").

R propose de multiples packages pour importer des données selon leur format. Les fonctions utilisées dans les prochains articles sont :

  • rio::import pour importer des fichiers .csv et .xls (le package rio permet d’importer beaucoup d’autres formats différents) ;

  • readODS::read_ods pour importer les fichiers .ods ;

  • la fonction readRDS de base pour charger des tables R. Ces données ont été au préalable sauvegardées depuis R avec la fonction saveRDS ;

  • sf::read_sf pour importer des fichiers ShapeFile (.shp) en objets spatiaux de type sf (Simple Features).

Pour être plus précis, un fichier ShapeFile est composé d’au moins 4 fichiers, ne pouvant être séparés :

  • un fichier .shp qui défini la géométrie de l’objet spatial ;

  • un fichier .dbf qui contient les données attributaires des entités spatiales ;

  • un fichier .prj qui défini le système de projection utilisé ;

  • un fichier .shx contenant un index pour l’objet spatial.

Personnalisation des tuiles pour les cartes

Vous pouvez modifier le fond de tuiles utilisé pour les cartes des fonctions mapRoutes et mapRoutesProp. Il vous faudra spécifier l’adresse URL d’un serveur de tuiles ainsi que ses attributions. Vous trouverez des exemples de fonds de tuiles sur ce site.

Par exemple :

options(urlTemplate = "https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png")
options(attribution = 
          paste0("&copy; <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a> 
            contributors"))

Pour revenir au fond de tuiles par défaut :

options(urlTemplate = NULL)
options(attribution = NULL)

Livrables et sources à mentionner

Les livrables Metric-OSRM sont sous licence open source (MIT) et disponibles à tous les publics. Le distancier repose sur un serveur de calcul de type OSRM (Open Source Routing Machine) reflétant actuellement l’état du réseau au 25/02/2022. Tout résultat (tableau, carte,…) émanant d’un livrable du distancier Metric-OSRM se devra de mentionner la source ci-dessous : “Insee, distancier Metric-OSRM, © les contributeurs d’OpenStreetMap et du projet OSRM Le terme « OpenStreetMap » doit comporter un hyperlien vers https://www.openstreetmap.org/copyright. Sur les supports où les liens hypertextes sont impossibles (par exemple sur un support papier), l’adresse du site internet doit être mentionnée explicitement. La mention « projet OSRM » doit idéalement comporter un hyperlien vers l’adresse http://project-osrm.org.