[R] Faire des anamorphoses cartographiques avec Getcartr
Comment faire des cartogrammes avec R ?
Aujourd’hui, c’est possible grâce aux récents développements de Chris Brunsdon de l’université de Maynooth (Irlande) qui a réalisé un front office (Getcartr) permettant d’utiliser simplement et efficacement le package Rcartogram. La méthode d’anamorphose proposée par ce package est basée directement sur le code C développé par Mark Newman (cart). Cette méthode, conçue conjointement avec Michael Gastner, repose sur le processus physique de la diffusion de la chaleur (diffusion linéaire). L’idée directrice est qu’un gaz dense entouré de gaz moins denses va progressivement se diluer jusqu’à ce que la densité s’équilibre (e.g. goutte d’encre dans une piscine). Concrètement, le calcul de densité s’effectue dans une grille régulière donnée qui est progressivement déformée selon la valeur d’une donnée quantitative absolue (stock). Le fond de carte originel est ainsi déformé puis recréé sans produire d’erreurs topologiques. In fine, chaque polygone ainsi redessiné a une surface proportionnelle à la variable quantitative prise en compte. C’est la méthode la plus couramment utilisée dans les logiciels (arcGis, ScapeToad, …).
Installation
L’installation s’effectue en deux temps.
1) Télécharger et installer le package Rcartogram.
http://www.omegahat.org/Rcartogram/
2) Installer le package Getcartr
Dans R, tapez la ligne suivante pour télécharger et installer package Getcartr développé par Chris Brunsdon :
library(devtools);install_github('chrisbrunsdon/getcartr',subdir='getcartr')
Vous pouvez aussi télécharger et installer manuellement le package : http://chrisbrunsdon.github.io/getcartr/
Utilisation
L’utilisation du package est extrêmement simple. Elle repose sur quelques instructions très faciles à mettre en oeuvre.
1) Faire un cartogramme
quick.carto
permet de faire rapidement un cartogramme à partir d’un spatial dataframe et d’un vecteur. Rappelons ici que ce type de déformation – variable visuelle de taille en implantation zonale – s’applique uniquement à des données quantitatives absolues (i.e. données de stock). Attention, pour que la déformation soit correcte, la grille de calcul doit être suffisamment fine, c-à-d plus fine que la maille administrative. Pour réaliser une carte sur les régions européennes, j’ai par exemple utilisé une résolution de 4096 * 4096, ce qui accroît considérablement le temps de calcul. Mais si la grille de calcul est trop grossière, le résultat est erroné.
eu.carto <- quick.carto(spdf,spdf@data$DATA2_GDP2,res=4096)
2) Afficher la grille de déformation
L’instruction dispersion
permet d’afficher la grille de déformation. Cette instruction remplace l’ancienne instruction mesh
, toujours présente dans le package, mais qui ne fonctionne pas.
3) Ajout d’autres couches à la déformation
warp.points,
warp.lines,
warp.polys
permettent d’ajouter d’autres couches à déformer en fonction du cartogramme. Cela permet par exemple de déformer un réseau routier en fonction d’une donnée absolue liée à un maillage administratif.
NB : si de nombreuses couches sont à déformer, une approche alternative est proposée avec l’utilisation de carto.transform
qui permet de créer une fonction de déformation alors applicable sur n’importe quel spatial dataframe.
Références : http://chrisbrunsdon.github.io/getcartr/
OpenEdition vous propose de citer ce billet de la manière suivante :
Nicolas Lambert (19 novembre 2014). [R] Faire des anamorphoses cartographiques avec Getcartr. Carnet (neo)cartographique. Consulté le 7 octobre 2024 à l’adresse https://doi.org/10.58079/rret
bonjour! je n’arrive pas as faire linstallation
1) Télécharger et installer le package Rcartogram.
http://www.omegahat.org/Rcartogram/
2) Installer le package Getcartr
comme quoi.rcartogram n’existe pas ((
> library(Rcartogram)
Ошибка в library(Rcartogram) :нет пакета под названием ‘Rcartogram’
> library(getcartr)
Ошибка в library(getcartr) :нет пакета под названием ‘getcartr’
> library(devtools);install_github(‘chrisbrunsdon/getcartr’,subdir=’getcartr’)
Предупреждение:
пакет ‘devtools’ был собран под R версии 3.2.3
Downloading GitHub repo chrisbrunsdon/getcartr@master
from URL https://api.github.com/repos/chrisbrunsdon/getcartr/zipball/master
Installing getcartr
Skipping 1 unavailable package: Rcartogram
“C:/PROGRA~1/R/R-32~1.1/bin/x64/R” –no-site-file –no-environ –no-save \
–no-restore CMD INSTALL \
“C:/Users/serge/AppData/Local/Temp/RtmpsLVtym/devtools66c44dc3528/chrisbrunsdon-getcartr-fcfd4b3/getcartr” \
–library=”C:/Users/serge/Documents/R/win-library/3.2″ –install-tests
ERROR: dependency ‘Rcartogram’ is not available for package ‘getcartr’
* removing ‘C:/Users/serge/Documents/R/win-library/3.2/getcartr’
Ошибка: Command failed (1)
pouvez vous m’aider a l’installer
Bonjour,
Est ce qu’il y a deja des tuto sur son utilisation?
Non, pas encore.
Bonjour Nicolas,
Merci pour cet article.. mais je suis déjà bloquée à la première étape… j’ai téléchargé le package mais je n’arrive pas à l’installer 🙁
Une petite aide ?
Ce billet date un peu. Nous réfléchissons à la mise en place d’autres solutions plus pratiques à utiliser. Mais pour l’instant, rien de vraiment opérationnel avec cet algorithme.
D’accord ! Merci de la réponse 🙂