Archives par mot-clé : distance

New version of osrm

The osrm package is an interface between R and the OSRM API. OSRM is a routing service based on OpenStreetMap data.
This package allows computing shortest paths, travel time and travel distance matrices between points.

The osrm package functions are:

  • osrmTable(): travel time and travel distance matrices between points.
  • osrmRoute(): shortest path between two points.
  • osrmTrip(): shortest trip between multiple unordered points.
  • osrmIsochrone(): polygons of isochrones

This package relies on the use of an OSRM server (tested with version 5.22.0 of OSRM).
By default the package uses the OSRM demo server (API usage policy). It is possible to use a different server if you want to make intensive use of the API. You can run your own instance of OSRM following guidelines provided on the OSRM GitHub repository. The simplest solution is the one based on docker containers.

The main change introduced by this update is the support of sf objects as input and output in all functions: using the argument returnclass = "sf" in osrmRoute(), osrmIsochrone() and osrmTrip() allows to output sf objects.

The algorithm for isochrones has been changed to a more robust one that uses isoband package.

In the following example more than 800 shortest paths to the useR2019 conference in Toulouse are displayed:

In the next example isochrones around Toulouse are displayed:

Code for the figures is in this gist.

Mise à jour du package osrm (version 2.0.0)

Le package osrm assure le lien entre R et l’API d’OSRM. OSRM est un service de routage basé sur les données OpenStreetMap.
Ce package permet d’obtenir le temps de trajet, la distance et le plus court chemin entre deux points via le réseau routier d’OpenStreetMap. Il est également possible d’obtenir des matrices de distances entre deux séries de points.

Pour suivre l’évolution de l’API qu’il interface, j’ai mis à jour le package osrm.
Vue l’ampleur des modifications sur l’API, la compatibilité descendante n’est pas assurée, les codes anciens ne fonctionneront plus. Continuer la lecture de Mise à jour du package osrm (version 2.0.0)

Temps de trajet et matrices de distances avec R et OpenStreetMap

Le package osrm assure le lien entre R et l’API d’OSRM. OSRM est un service de routage basé sur les données OpenStreetMap.
Ce package permet d’obtenir le temps de trajet, la distance et le plus court chemin entre deux points via le réseau routier d’OpenStreetMap. Il est également possible d’obtenir des matrices de distances entre deux séries de points. Continuer la lecture de Temps de trajet et matrices de distances avec R et OpenStreetMap

Quatrièmes Rencontres R

J’étais conférencier invité aux Quatrièmes Rencontres R qui ont eu lieu à Grenoble du 24 au 26 juin et j’ai pu y faire la présentation suivante : Représentation et traitement de l’information géographique.
Le plan de la présentation :

Les API de cartographie
Représentations cartographiques
Opérations de géotraitements
Lissage spatial
Ressources

La présentation est un peu lourde (~20 Mo) et peut donc peut mettre un peu de temps à se charger. Je mettrai en ligne les données utilisées et le script de création de la présentation d’ici quelques jours.
[MAJ]Données et scripts sont disponibles ici.[/MAJ]

Création d’une matrice de distances routières avec l’API de Google Maps

[MAJ] La fonction geocode du package ggmap fait la même chose, de l’importance de bien se renseigner sur ce qui existe déjà avant de coder… Cela m’aura quand même permis de m’initier aux API. [/MAJ]

Si la mise en place de l’outil graphHopper vous semble trop fastidieuse vous avez la possibilité d’utiliser l’API de Google Maps. L’utilisation de cette API ne va pas sans quelques limitations.

A partir des mêmes données que celle utilisées ici voici un exemple de script R permettant la constitution d’une matrice de distances par interrogation de l’API de Google Maps : Continuer la lecture de Création d’une matrice de distances routières avec l’API de Google Maps

Création d’une matrice de distances routières avec des outils et des données libres (2/2)

2 – Interrogation de l’API et constitution de la matrice de distance avec R

Le programme R suivant construit la matrice de distance entre une table d’origines et une table de destination. Le format de ces tables doit comprendre un champ d’identifiant et deux champs contenant les longitudes et latitudes des points en WGS84. Continuer la lecture de Création d’une matrice de distances routières avec des outils et des données libres (2/2)

Création d’une matrice de distances routières avec des outils et des données libres (1/2)

Comment créer une matrice de distances (calculées en kilomètres ou en minutes) entre plusieurs points du globe?

Il existe plusieurs solutions commerciales et plus ou moins fermées pour construire ce genre de matrices (The Google Distance Matrix API, Bing Routes API ou MapQuest par exemple). Ces solutions présentent plusieurs inconvénients : limites d’extraction, limites d’utilisation, limite de diffusion…

La solution proposée ici n’utilise que des données et des outils libres :

  • Un réseau routier, issu d’OpenStreetMap (OSM).
  • Le logiciel Osmosis permettant de manipuler les données OSM.
  • L’application GraphHopper pour calculer les itinéraires.
  • R pour interroger l’API de GraphHopper et constituer la matrice de distance.

L’objectif est ici de calculer une matrice de distances entre une vingtaine de villes françaises, belges, allemandes luxembourgeoises et néerlandaises. Continuer la lecture de Création d’une matrice de distances routières avec des outils et des données libres (1/2)