G-installation.Rmd
L’installation est impossible depuis l’environnement AUS de
l’Insee. L’installation se fait sur poste de travail pour R >=
3.4.0, idéalement une version récente
de R. Pour l’installation des dépendances sur les versions récentes de R
on choisira par exemple 2:CRAN packages only pour une installation assez
rapide. Sur les versions de R un peu anciennes, si les versions des
dépendances ne sont pas disponibles il sera peut-être nécessaire de
recompiler le code. Vous devez disposer de suffisamment d’espace disque
et des droits en écriture. L’instruction
options(download.file.method = "curl")
évite un échec pour
cause de timeout dépassé.
install.packages("remotes") # si le package remote n'est pas installé
options(download.file.method = "curl") # si l'installation dépasse 60 secondes
remotes::install_gitlab(repo = 'metric-osrm/metric-osrm-package',
host = 'git.lab.sspcloud.fr',
force = TRUE)
rio::install_formats() # ajoute la possibilité d'importer plusieurs formats dont ods
Pour la mise à jour du package, il suffit de le télécharger de la même façon et de redémarrer votre Rstudio ou de faire un Session/Restart R (ou ctrl + shift + F10).
L’application sur poste de travail de {shinyMetricOSRM} facilite l’interrogation du serveur pour l’usager peu familiarisé avec R. Comme pour le package {metric.osrm} une installation en locale et un accès internet sont nécessaires. Toutefois passer directement par le package {metric.osrm} permet de réaliser des gains de temps sur des calculs volumineux.
options(download.file.method = "curl") # si l'installation dépasse 60 secondes
install.packages("remotes") # si le package remote n'est pas installé
# installation ou réinstallation au préalable de metric.osrm
remotes::install_gitlab(repo = 'metric-osrm/metric-osrm-package',
host = 'git.lab.sspcloud.fr',
force = TRUE)
rio::install_formats() # ajoute la possibilité d'importer plusieurs formats dont ods
# installation ou réinstallation du package {shinyMetricOSRM}
remotes::install_gitlab(repo = 'metric-osrm/metric-osrm-application-shiny',
host = 'git.lab.sspcloud.fr',
force = TRUE)
# Une fois le package {shinyMetricOSRM} et {metric.osrm} installés
# l’application {shinyMetricOSRM} s'ouvre en éxécutant la ligne de commande :
shinyMetricOSRM::run_app(osrm.server = "https://metric-osrm-backend.lab.sspcloud.fr/")
Si vous travaillez depuis Rstudio dans la fenêtre Package il est
possible d’effectuer une montée de version via l’update de l’onglet
packages. Parfois le système d’exploitation refuse de désinstaller des
packages déjà chargés, pour les packages rlang, glue, Rcpp, digest,
httpuv par exemple. L’instruction getLoadedDLLs()
permet
alors de les identifier ainsi que la librairie de packages. Vous pouvez
essayer de redémarer Rstudio depuis un environnement vide de programmes
et projets, pour qu’aucun package avec dll ne soit déjà chargé dans
l’environnement. Si vous échouez à mettre à jour ces packages via
Rstudio, une solution radicale consiste à supprimer (ou renommer) les
répertoires contenant les packages depuis windows. L’installation de
metric.osrm devrait alors réussir.
La commande install_gitlab fait appel à une API qui peut ne pas répondre. Des alternatives à install_gitlab sont possibles pour télécharger le package metric.osrm :
utils::install.packages("~/metric.osrm_1.1.4.tar.gz", repos = NULL, type = "source")
install.packages("metric.osrm",
repos = c("https://metric-osrm.pages.lab.sspcloud.fr/drat",
getOption("repos")
)
)
Vous devrez spécifier l’URL d’un serveur de calcul OSRM et un profil
À CHAQUE UTILISATION du package. Une fois le package
metric.osrm installé vérifions la réponse d’un serveur OSRM à une
requête simple de l’aide de la fonction ?metricOsrmTable
ou
d’un article
de la documentation en ligne.
library(metric.osrm)
options(osrm.server = "https://metric-osrm-backend.lab.sspcloud.fr/")
options(osrm.profile = "driving")
# les longitude et latitude sont en systeme de projection WGS84, epsg 4326
metricOsrmTable(src=data.frame(id="1",lon=5.38584, lat=43.30132),
dst=codeComToCoord(codeInsee = c("13001"),geo = "2023",type = "chx"),
exclude ="ferry")
# ID idSrc lonSrc latSrc idDst lonDst latDst duree distance
# 1 1 adresse_1 5.38584 43.30132 13001 5.44604 43.53001 30.02 30.607
Peut-être que si le serveur ne répond pas c’est que vous avez oublié les options server et profile à lancer avant chaque utilisation ? Avez-vous bien précisé et exécuté les options suivantes avant de lancer metricOsrmTable ?
Le package metric.osrm
a besoin d’accèder à
internet pour interroger un serveur de routage de type OSRM.
Dans de nombreuses institutions, la navigation sur Internet par un proxy
(intermédiaire entre le web et un ordinateur). Il est possible que votre
proxy bloque les résultats de la requête envoyé au serveur.
Pour modifier le fichier .Renviron vous pouvez consulter la documentation utilitR
Pour connaître les éventuelles adresses du proxy pour les requêtes http et https et savoir si la configuration de votre environnement en tient compte :
curl::ie_get_proxy_for_url() # adresse de votre proxy
Sys.getenv("http_proxy") # indique le proxy déclaré pour les requêtes http
Sys.getenv("https_proxy") # indique le proxy déclaré pour les requêtes https
si ie_get_proxy_for_url() indique un proxy non encore déclaré une
solution non pérenne consiste à lancer les commandes suivantes :
Sys.setenv("http_proxy"=curl::ie_get_proxy_for_url())
Sys.setenv("https_proxy"=curl::ie_get_proxy_for_url())
Il est possible de personnaliser la configuration générale ou celle du projet pour que R puisse passer le proxy de façon pérenne.
Éxécutez les commandes suivantes pour éditer le fichier .Renviron
curl::ie_get_proxy_for_url() # adresse de votre proxy à copier
file.edit('~/.Renviron') #éditer le fichier .Renviron
Si le fichier .Renviron contient déjà des lignes de commandes avec les adresses de votre proxy, il est déjà configuré.
Si les deux lignes de commandes ne figurent pas dans le .Renviron
vous devez ajouter manuellement deux lignes de commandes
http_proxy =
et https_proxy =
au fichier
.Renviron en collant les adresses http et https optenues plus haut. Puis
ajoutez une ligne vide en fin de fichier.
http_proxy =...
https_proxy =...
(+ éventuellement d’autres lignes de commandes)
bien ajouter une ligne vide en bas de fichier avant d’enregistrer
Vous pouvez alors enregistrer le fichier .Renviron
. vous
devez ensuite redémarrer votre session Rstudio via ctrl+shift+F10 ou via
Session > restart.
Ce fichier Renviron ne devra pas être partagé sur git et internet car l’adresse de votre proxy est confidentielle.
Vérifiez au préalable qu’aucun proxy bloque la réponse (voir plus
haut), et que c’est bien l’adresse du serveur expérimental déployé sur
la plateforme du SSPCloud qui a été renseigné dans l’options
(osrm.server = https://metric-osrm-backend.lab.sspcloud.fr/
.)
Si le serveur ne répond toujours pas il peut y avoir des
problèmes de liaison internet, une maintenance en cours sur le SSPcloud
ou encore un plantage du serveur. Si le serveur ne redémare pas seul,
merci de le signaler de préférence via par messagerie sur
:DR13-psar-at@insee.fr
, plutôt que sur la section issues du
git.lab, moins consultée.
Le serveur expérimental déployé sur la plateforme du SSPCloud n’a pas de garantie de service, mais il est possible de déployer son propre serveur de routage. L’algorithme de routage employé est le Multi-Level Dijkstra (MLD) : osrm-routed –algorithm mld. Notre serveur situé sur le SSPCLOUD utilise le profil “standard” d’un serveur OSRM utilisant la version 5.26.0 du moteur de routage backend OSRM (https://github.com/Project-OSRM/osrm-backend). L’image docker du backend OSRM utilisée par notre serveur de calcul était la version 0.26 (https://hub.docker.com/r/osrm/osrm-backend/). Le pull de cette image docker s’effectue idéalement via son sha :
osrm/osrm-backend@sha256:af5d4a83fb90086a43b1ae2ca22872e6768766ad5fcbb07a29ff90ec644ee409
Le serveur de calcul OSRM que nous avons déployé ne fait pas
d’hypothèse de trafic/heure de la journée. Il retourne un trajet routier
en voiture “optimal”, c’est à dire le plus court en temps en s’appuyant
sur les limitations de vitesse déclarées de chaque tronçon ou à défaut
sur un profil de vitesses moyennes par type de route. À ces vitesses
s’ajoute tout un système de pénalités (intersections, présence de feux
rouges, qualité de la chaussée, et autre critère du fichier de
configuration routability). Sont disponibles sous
https://minio.lab.sspcloud.fr/projet-metric-osrm/data/
:
le fond pbf du réseau routier de fin février 2022
pbf/france-transfrontalier-2022.osm.pbf
le profil des temps de parcours selon la catégorie de tronçon de
route car_routability_v5260.lua