A-Debuter.Rmd
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.
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")
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 (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
.
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.
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("© <a href='https://www.openstreetmap.org/copyright'>OpenStreetMap</a>
contributors"))
Pour revenir au fond de tuiles par défaut :
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
.