{"word_count": 456, "character_count": 3467}
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, ...).Référence : A Diffusion-based method for producing density equalizing maps, Michael T. Gastner and M. E. J. Newman, Proc. Natl. Acad. Sci. USA 101, 7499-7504 (2004)InstallationL'installation s'effectue en deux temps.1) Télécharger et installer le package Rcartogram.http://www.omegahat.org/Rcartogram/2) Installer le package GetcartrDans 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/UtilisationL'utilisation du package est extrêmement simple. Elle repose sur quelques instructions très faciles à mettre en oeuvre.1) Faire un cartogrammequick.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 &#60;- quick.carto(spdf,spdf@data$DATA2_GDP2,res=4096)2) Afficher la grille de déformationL'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éformationwarp.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.&#160;Références : http://chrisbrunsdon.github.io/getcartr/&#160;