Archives par mot-clé : package

New version of the cartography package

A new version of the cartography package (v2.0.1) has arrived on CRAN.

cartography allows various cartographic representations such as proportional symbols, chroropleth, typology, flows or discontinuities maps. It also offers several features enhancing the graphic presentation of maps like cartographic palettes, layout elements (scale, north arrow, title…), labels, legends or access to some cartographic APIs.

Up to version 1.4.2 cartography was mainly based on sp and rgeos for its spatial data management and geoprocessing operations. These dependencies have been as much as possible replaced by sf functions since version 2.0.0.
Most functions are kept unchanged except for the addition of an x argument used to take sf objects as inputs.
See the NEWS file for the full list of changes and see sf README in case of installation problems with sf.
Continuer la lecture de New version of the cartography package

sf & cartography v2.0.0

Ce billet évoque les évolutions récentes du traitement des données spatiales avec R ainsi que la mise à jour du package cartography pour prendre en compte ces changements.

Le package sf

Le 31 octobre 2016 le package sf a été mis à disposition sur le CRAN par Edzer Pebesma (déjà maintainer de sp et contributeur actif à rgeos et rgdal).
Le package sf est une implémentation du standard Simple Features de l’OGC.

Jusqu’à présent l’import, l’export, la gestion, le traitement des données spatiales dans R se faisaient grâce à 3 packages principaux : rgdal (pour l’import/export des données et les opérations de projections), sp (pour la gestion et l’affichage des données) et rgeos (pour les géotraitements). sf rassemble en un seul package la plupart des fonctionnalités de ces trois packages.

Le nouveau format fourni par sf et visant a remplacer les formats Spatial*DataFrame est le data.frame enrichi d’une « colonne-liste » de géométries :

Simple Features for R – Edzer Pebesma

Ce format est considéré comme tidy et les fonctions de sf sont compatibles avec l’opérateur pipe.
Vous trouverez à la fin du billet une liste de ressources sur le package sf.

Le package cartography

L’avenir du spatial dans R s’oriente à plus ou moins court terme vers l’utilisation de sf en lieu et place du trio rgdal/sp/rgeos.
Nous avons donc décidé de rendre le package cartography compatible avec les objets de type sf, nous utilisons également les fonctions et formats sf dans les fonctions du package.

La plupart des fonctions restent inchangées, mis à part l’ajout d’un argument x en première place, destiné à l’utilisation des objets sf.
Avant :

choroLayer(spdf, spdfid, df, dfid, var, ...)

Après :

choroLayer(x, spdf, spdfid, df, dfid, var, ...)

Les objets sf contiennent les données attributaires et les géométries d’une manière beaucoup plus pratique que les Spatial*DataFrame. Si l’argument x est utilisé les données attributaires doivent être contenues dans l’objet sf et les arguments spdf, spdfid, df, dfid ne sont pas pris en compte.

Certaines fonctions ont changé plus profondément d’input et d’output (getBorders, getLinkLayer, getGridLayer, discLayer…), l’ensemble des changement est visible ici : NEWS.

La version de cartography prenant en compte sf est pour l’instant disponible sur GitHub et sera bientôt sur le CRAN.

require(devtools)
install_github("riatelab/cartography")

Ressources sur le package sf

La page GitHub du package sf
C’est dans ce dépôt GitHub que se déroule le développement du package et que se tiennent les discussions à son sujet.

Ressources publiées par Edzer Pebesma

Billets de blogs / tutoriels

linemap

Le package linemap permet de réaliser des cartes composées de lignes. Le package contient deux fonctions, linemap et getgrid.

  • La fonction linemap permet d’afficher la carte. Elle prend en entrée un data frame contenant les coordonnées des points d’une grille régulière et au moins une variable.
  • La fonction getgrid permet de transformer un maillage de polygones irrégulier en data frame pouvant être utilisé avec la fonction linemap. Les polygones en entrée doivent être au format sf et, la fonction reposant sur des calculs d’intersections, il est fortement conseillé d’utiliser le package sf dans une version supérieure ou égale à 0.5-1. En effet à partir de cette version sf intègre les index spatiaux, ce qui accélère très significativement certains géotraitements (dont les calculs d’intersections).

Exemples d’utilisation

linemap

library(linemap)
data("popOcc")
data("occitanie")
opar <- par(mar=c(0,0,0,0), bg = "ivory2")
plot(sf::st_geometry(occitanie), col="ivory1", border = NA)
linemap(x = popOcc, var = "pop", k = 2.5, threshold = 50,
        col = "ivory1", border = "ivory4", lwd = 0.6, add = TRUE)
mtext(text = "Population\nen Occitanie", side = 3, line = -4, 
      col = "white", font = 4, adj = 0.05, cex = 2 )
mtext(text = "Données carroyées à 1 kilomètre, INSEE 2010", side=1, 
      line = - 1, col = "white", font = 3, adj = 0.98, cex = 0.8 )
par(opar)

getgrid

library(linemap)
library(sf)
data("bretagne")
data("france")
bret <- getgrid(x = bretagne, cellsize = 2000, var = "POPULATION")
opar <- par(mar = c(0,0,0,0))
plot(st_geometry(france), col="lightblue3", border = NA, 
     bg = "lightblue2",
     xlim = c(min(bret$X), max(bret$X)), 
     ylim= c(min(bret$Y), max(bret$Y)))
linemap(x = bret, var = "POPULATION", k = 5, threshold = 1,
        col = "lightblue3", border = "white", lwd = 0.7,
        add = TRUE)
mtext(text = "GEOFLA® 2016 v2.2 Communes France Métropolitaine", 
      side=4, line = - 0.9, col = "lightblue1", font = 3, 
      adj = 0.01, cex = 0.4 )
par(opar)

Installation

Le package est disponible sur Github.

library(devtools)
install_github("rCarto/linemap")

Inspiration

Ce package s’inspire évidement de la pochette de l’album Unknown Pleasures de Joy Division. Il s’inspire également des réalisations de James Cheshire (Population Lines: How and Why I Created It) et Ryan Brideau (GeospatialLineGraphs).

FOSS4G, RUSS et Cinquièmes Rencontres R

Voici les liens vers trois présentations que j’ai données récemment autour de la cartographie avec R.

Mise à jour du package osrm (version 3.0.0)

L’API du service de routage open source OSRM vient de passer à la version 5. J’ai donc adapté le package osrm à cette nouvelle version qui devrait rester assez stable pendant quelque temps. Il s’agit à nouveau d’une version majeur (la compatibilité descendante n’est pas assurée). Continuer la lecture de Mise à jour du package osrm (version 3.0.0)

Encoder et décoder les polylines Google avec le package gepaf

L’encodage de polylines (Encoded Polyline Algorithm Format)
est un algorithme de compression (avec pertes) qui permet de stocker une liste de coordonnées dans une simple chaîne de caractères.

Cet encodage a été créé pour être utiliser par l’API de Google Maps. Mais d’autres services peuvent y faire appel, c’est le cas par exemple de l’API du service de routage open source OSRM.

Le package gepaf permet d’encoder un dataframe de coordonnées vers une chaîne de caractères avec la fonction encodePolyline et de décoder une chaîne de caractères vers un dataframe de coordonnées avec la fonction decodePolyline.

Le package, créé par Matthieu Viry, est disponible sur le CRAN ainsi que sur GitHub.

Create and integrate maps in your R workflow with the cartography package

The cartography package allows various cartographic representations such as proportional symbols, chroropleth, typology, flows or discontinuities. In addition it also proposes some useful features like cartographic palettes, layout (scale, north arrow, title…), labels, legends or access to cartographic API to ease the graphic presentation of maps. Continuer la lecture de Create and integrate maps in your R workflow with the cartography package

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)

Mise à jour du package SpatialPosition

Nous venons de mettre à jour le package SpatialPosition. Nous avions déjà présenté ce package ici et ici.

Les principales nouveautés sont :

  • l’ajout d’une vignette montrant un exemple de calcul de potentiels sur des données européennes (la carte illustrant l’article est issue de cette vignette);
  • une amélioration de la fonction permettant d’exporter les potentiels en format vectoriel (ce qui peut être utile si l’on veut utiliser une couche de potentiels dans un SIG ou si l’on veut mettre en page une carte de potentiels dans un logiciel d’édition vectorielle).

Le package est sur le CRAN et sur GitHub.

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

Cartographie avec R : le package cartography

Le package cartography est sur le CRAN.
Ce package permet la création de la plupart des types de cartes statistiques ou thématiques avec R.

Dans ce post je propose une série de cartes réalisées avec ce package.
J’ai indiqué sous chacune d’entre elles les principales fonctions utilisées.
L’intégralité des scripts mis en place pour créer les cartes sont disponibles dans la vignette du package.
Les fonds de cartes et les données sur les régions européennes mobilisées ici sont fournis avec le package. Continuer la lecture de Cartographie avec R : le package cartography

Géocoder en masse avec R et sans Google Maps

Il existe différentes solutions pour géocoder des adresses ou des lieux avec R. Les plus fréquemment citées sont basées sur des services commerciaux et utilisent des données non libres. D’autres utilisent des logiciels libres et des données libres (OpenStreetMap). La nature commerciale / non commerciale, libre / non libre d’une solution a des implications sur la construction et la diffusion des données géocodées.
Je propose ici une petite revue des différentes possibilités de géocodage dans R ainsi qu’un package pour interroger l’une des API de géocodage basé sur OpenStreetMap (photon). Continuer la lecture de Géocoder en masse avec R et sans Google Maps

Reilly, Huff et Stewart : le package SpatialPosition

Comme annoncé sur le blog du Groupe ElementR nous venons de déposer sur le CRAN le package SpatialPosition qui permet permet de calculer et de visualiser les résultats de modèles de positions : modèle de Reilly, modèle de Huff et modèle de Stewart. Ces modèles d’interaction spatiale permettent de saisir l’influence exercée par un lieu sur tous les autres (aire de marché d’un commerce, aire d’influence d’une ville, etc.). Pour plus d’information et de ressources sur ce type de modèles, vous pouvez vous référer à la vignette associée au package. Continuer la lecture de Reilly, Huff et Stewart : le package SpatialPosition

Installer devtools sur Ubuntu 14.04

Lorsque j’ai essayé d’installer devtools sur un pc sous Uubuntu 14.04 j’ai eu le message d’erreur suivant :

checking for curl-config... no
Cannot find curl-config
ERROR: configuration failed for package ‘RCurl’
* removing ‘/home/tg/R/i686-pc-linux-gnu-library/3.1/RCurl’
Warning in install.packages :
  installation of package ‘RCurl’ had non-zero exit status

Continuer la lecture de Installer devtools sur Ubuntu 14.04

Recherche Reproductible et création de packages

Dans le cadre des séances de formation du Groupe ElementR Hadrien Commenges et moi avons préparé des documents pédagogiques autour de la notion de recherche reproductible avec R.

Lors de cette trop courte séance j’ai présenté sous forme de tutoriel un module sur la recherche reproductible et la création de packages: Continuer la lecture de Recherche Reproductible et création de packages