Archives par mot-clé : cartography

The popcircle package

The popcircle package has been released on GitHub. This one-function package computes circles with areas scaled to a variable and displays them using a compact layout (higher values in the center, lower values at the periphery). Original polygons are scaled to fit inside these circles (size are roughly proportional, not strictly).

The circles creation relies on packcircles, spatial data manipulation relies on sf.

## Package install:
library(remotes)
install_github("rCarto/popcircle")

This is a typical example of the package usage based on the dataset shipped with the package. We use cartography to display labels.

library(sf)
library(popcircle)
library(cartography)
mtq <- st_read(system.file("gpkg/mtq.gpkg", 
                           package="popcircle"))
res <- popcircle(x = mtq, var = "POP")
circles <- res$circles
shapes <- res$shapes
par(mar = c(0,0,0,0))
plot(st_geometry(circles), col = "#bcd39c", 
     border = "white", bg = "#eafdcf")
plot(st_geometry(shapes), col = "#fffc99", 
     border = "#fffc99", add = TRUE)
labelLayer(x = circles[1:20,], txt = "LIBGEO",
           halo = TRUE, col ="#8e8358", 
           cex = seq(.8,.4, length.out = 20),
           font = 2, bg = "white", r = .15, 
           overlap = FALSE)

The next example was a bit more difficult to design. We had to work on some multipolygons countries (e.g. France, USA or Russia) in order to keep only the largest polygon.

Code for the figure
Code for the figure

As popcircle produces sf objects it is possible to display them interactively:

You can find here an example of interactive visualisation using leaflet.

popcircle changes the position of spatial units. It will work better with regions already well known to the target audience. Chances are that the first figure on Martinique municipalities will be more appropriate and effective for the inhabitants of Martinique.

The tanaka package

The tanaka package has been released on CRAN. This package is a simplified implementation of the Tanaka method.
Also called « relief contours method », « illuminated contour method » or « shaded contour lines method », the Tanaka method enhances the representation of topography on a map using shaded contour lines.
North-west white contours represent illuminated topography and south-east black contours represent shaded topography.

The contour lines creation relies on isoband, spatial data manipulation and display rely on sf.

tanaka is a small package with only two functions:

  • tanaka() uses a raster object and displays the map directly;
  • tanaka_contour() builds the isopleth polygon layer.

This is a typical example of the package usage based on the dataset shipped with the package.

library(tanaka)
library(raster)
ras <- raster(system.file("grd/elev.grd", 
                          package = "tanaka"))
tanaka(x = ras, breaks = seq(80,400,20), 
       legend.pos = "topright", 
       legend.title = "Elevation\n(meters)")

In the second example, the elevatr package is used to download an elevation raster on a specific area. Then the tanaka_contour() function is used to create an isopleth layer and finally the tanaka()function is used to to display the map with a custom color palette.

library(tanaka)
library(elevatr)
# use elevatr to get elevation data
ras <- get_elev_raster(
  locations = data.frame(
    x = c(6.7, 7), y = c(45.8,46)
  ),
  z = 10, prj = "+init=epsg:4326", 
  clip = "locations"
)
# create the isopleth layer
iso <- tanaka_contour(
  x = ras, 
  breaks = seq(500,4800,250)
)
# display the isopleth layer
plot(st_geometry(iso))
# create a custom color palette
pal <- colorRampPalette(colors = c("#F9D3A1", "#1E315B"))
# display the map
tanaka(iso, col = pal(nrow(iso)))

The last example illustrates the use of tanaka with non-topographical data. This map is based on the Global Human Settlement Population Grid (1km).

Code for this figure

Shaded contour lines or Tanaka method with R

The following post, Tanaka method or how to make shaded contour lines on LandscapeArchaeology.org blog, explains clearly and thoroughly what shaded contour lines are and how to draw them with QGIS.
How hard would it be to implement this method with R?

From LandscapeArchaeology.org

Continuer la lecture de Shaded contour lines or Tanaka method with R

Faire des cartogrammes avec R

Le package cartogram permet de construire des cartogrammes avec R. Trois types de déformations sont proposés  :

  • les cartogrammes continus (Dougenik et al. 1985) avec la fonction cartogram_cont(),
  • les cartogrammes discontinus (Olson 1976) avec la fonction cartogram_ncont(),
  • les cartogrammes en cercles (Dorling 1996) avec la fonction cartogram_dorling().

Le package peut être utilisé avec des objets sp ou sf.
Continuer la lecture de Faire des cartogrammes avec R

Zoomer sur une carte avec R

Dans ce billet je propose une manière de zoomer sur une zone particulière d’une carte avec R.
Ce zoom peut être défini précisément si l’on connaît à l’avance les coordonnées géographiques de la zone à afficher (sa bounding box), il peut aussi être défini interactivement grâce à la fonction locator().

J’utilise les packages sf (pour la gestion des objets spatiaux), cartography (pour l’ajout d’éléments d’habillage) et rnaturalearth (pour acceder aux fonds de cartes libres de Natural Earth).

Continuer la lecture de Zoomer sur une carte avec R

Cartographic Explorations of the OpenStreetMap Database with R

This post exposes some cartographic explorations of the OpenStreetMap (OSM) database with R.
These explorations begin with the downloading and the cleaning of OSM data. Then I propose a set of map visualizations of the spatial distributions of bars and restaurants in Paris. Of course, these examples could be adapted to other spatial contexts and thematics (e.g. pharmacies in Roma, bike parkings in Dublin…).

This reproducible analysis is hosted on GitHub (code + data + walk-through).

Continuer la lecture de Cartographic Explorations of the OpenStreetMap Database with R

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

Pourquoi et comment inscrire la production de cartes statistiques dans un processus de recherche reproductible

Le 9 juin, Nicolas Lambert et moi participions à la journée « Cartostats – La cartographie statistique : Quelles méthodologies dans un contexte d’accélération et de diversification des pratiques ? » avec la présentation suivante :

Pourquoi et comment inscrire la production de cartes statistiques dans un processus de recherche reproductible.

La manière la plus répandue pour construire des cartes statistiques mobilise un ensemble de logiciels variés (tableur, logiciel de statistique, SIG, édition vectoriel…) utilisant une série de formats de données et de fichiers différents. Cette grande diversité d’outils rend difficile la reproduction, la mise à jour et la pérennité des analyses et des cartes produites.
L’utilisation du logiciel R et de son langage nous permet de couvrir l’ensemble de la chaîne de traitement allant de l’analyse à la représentation de l’information géographique. Particulièrement adapté aux traitements statistiques, R dispose également de fonctionnalités spatiales permettant de manipuler et de représenter les données.
Le package cartography, développé à l’UMS RIATE, permet de réaliser la plupart des cartes statistiques usuelles et de les insérer dans des analyses traçables et complexes.

De superbes cartes thématiques…

Dans un très complet billet de blog, Timo Grossenbacher décrit la création d’une carte thématique avec ggplot2.

Beautiful thematic maps with ggplot2 (only)


Il y détaille les étapes nécessaires à la création de cette carte en évoquant par exemple des questions de reproductibilité, l’import et la sélection des données, le choix d’une discrétisation, le choix d’une gamme de couleur, l’utilisation de données raster (pour le relief), les questions d’habillage et de design.

Dans les commentaires quelqu’un propose une version de cette même carte construite avec lattice (beautiful-thematic-maps: alternative code without using ggplot2) et une version interactive a aussi été développée (Thematic Interactive Map).

Voici donc ma contribution sans ggplot2, ni lattice, ni interactivité :-).
Continuer la lecture de De superbes cartes thématiques…

mapinsetr, faire un carton avec R

Dans un billet précédent, je proposais une solution pour créer des cartons cartographique en jouant avec les paramètres graphiques des figures.
Dans celui-ci j’introduis le package mapinsetr qui permet de créer « en dur » des fond de carte comprenant des cartons.
J’utilise les jeux de données, la problématique et une partie du code proposés par Arthur Charpentier dans son post « Cartographier le vote pour le Brexit« .

Le script complet (import et préparation des données, visualisations) est disponible ici. Continuer la lecture de mapinsetr, faire un carton avec R

Le package cartography a 1 an!

cartography a été déposé sur le CRAN le 5 octobre 2015.
Depuis cette date nous avons poursuivi le développement du package et, outre quelques corrections de bugs mineurs et diverses optimisations, nous y avons ajouté un certain nombre de fonctionnalités.

Le développement du package se passe toujours sur GitHub (https://github.com/Groupe-ElementR/cartography). Nous utilisons Travis CI et AppVeyor comme solutions d’intégration continue.
Vous pouvez nous faire des suggestions, signaler des bugs ou poser des questions ici.

Le package a été présenté dans différentes conférences, par exemple lors du FOSS4G (présentation) ou des Cinquièmes Rencontres R (présentation).

Nous avons également publié le package dans The Journal of Open Source Software.
Continuer la lecture de Le package cartography a 1 an!

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.

Panama Papers : d’où viennent les reporters

A la lecture des premiers articles portant sur les Panama Papers je me suis demandé d’où venaient les centaines de journalistes ayant travaillé sur le dossier.

Les différents articles évoquent plus de 100 médias dans plus de 70 pays.

En me basant sur la liste de journalistes diffusée sur le site de l’ICIJ (The International Consortium of Investigative Journalists) j’ai pu produire la carte suivante : Continuer la lecture de Panama Papers : d’où viennent les reporters

Comment faire un carton avec R?

Comme le dit Wikipédia :
« En cartographie, un carton est une petite carte complémentaire d’une carte principale, insérée dans la même page. »

Dans ce post je propose une solution pour créer des cartons cartographique en utilisant le package cartography. J’en profite pour introduire la fonction getFigDim qui aide à choisir les dimensions d’une figure lors de son export. Continuer la lecture de Comment faire un carton avec R?

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)

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