Réaliser des anamorphoses avec ArcGIS
On m'a demandé à plusieurs reprises récemment si ArcGIS permettait de créer des cartes en anamorphoses (ou cartogrammes). Me souvenant d'un outil évoqué sur ce blog il y a bien longtemps, je décidai de faire quelques recherches pour vérifier que cet outil existe toujours et surtout qu'il fonctionne encore sur les versions récentes d'ArcGIS.
La première bonne nouvelle, c'est que cet outil développé (en ArcObjects) en 2008 est toujours disponible et peut se télécharger depuis cette page. La seconde bonne nouvelle c'est qu'il a été actualisé en 2009 et fonctionne sur les versions 10.1, 10.2 et 10.3 d'ArcGIS Desktop à condition toutefois de ne pas utiliser l'option d'exécution des géotraitements en arrière-plan. Je reprends donc mon article de l'époque avec les actualisations
La première bonne nouvelle, c'est que cet outil développé (en ArcObjects) en 2008 est toujours disponible et peut se télécharger depuis cette page. La seconde bonne nouvelle c'est qu'il a été actualisé en 2009 et fonctionne sur les versions 10.1, 10.2 et 10.3 d'ArcGIS Desktop à condition toutefois de ne pas utiliser l'option d'exécution des géotraitements en arrière-plan. Je reprends donc mon article de l'époque avec les actualisations
L'installation de l'outil est simple, il vous suffira de lancer le fichier exécutable contenu dans le fichier ZIP téléchargé. Une nouvelle boîte à outils "Cartogram" et un outil "Create a cartogram" seront disponibles dans votre environnement de géotraitement.
L'outil de création d'anamorphose
Sans rentrer trop dans le détail (vous lirez la documentation pour cela), l'outil permet de déformer une couche de polygones) sur la base d'un attribut rapporté, lors du traitement, à la superficie des entités. Pendant le traitement, il est possible de déformer d'autres couches (point, lignes ou polygones) afin de déformer l'ensemble des couches d'une carte. L'outil ne modifie pas la classe d'entités d'origine et autorise l'utilisation d'une jointure sur la classe d'entités d'origine pour l'obtention des valeurs. La méthode de déformation utilisée est basée sur l'algorithme de diffusion de Michael T. Gastner et M. E. J. Newman.
Cet algorithme de diffusion se base sur le processus physique de la diffusion d'un gaz. Une grille régulière est posée sur la carte non-déformée, puis pour chaque point de la grille, la densité actuelle est calculée. À l'aide du formalisme physique sur la diffusion d'un gaz, une solution analytique permet de calculer la déformation de la grille. A la fin, il suffit d'appliquer la grille déformée aux couches à transformer. L'algorithme présente l'avantage de préserver la topologie du maillage spatial initial et notamment l'adjacence entre les polygones de la classe d'entités d'origine.
Cet algorithme de diffusion se base sur le processus physique de la diffusion d'un gaz. Une grille régulière est posée sur la carte non-déformée, puis pour chaque point de la grille, la densité actuelle est calculée. À l'aide du formalisme physique sur la diffusion d'un gaz, une solution analytique permet de calculer la déformation de la grille. A la fin, il suffit d'appliquer la grille déformée aux couches à transformer. L'algorithme présente l'avantage de préserver la topologie du maillage spatial initial et notamment l'adjacence entre les polygones de la classe d'entités d'origine.
En tant qu'outil ArcGIS, il s'intègre complètement à l'environnement de géotraitement d'ArcGIS, il peut être ajouté à un modèle, utilisé dans un script Python ou encore exécuté en batch sur plusieurs jeux de données. C'est cette dernière méthode qui a été utilisée pour créer ces différentes cartes sur l'évolution de la population en Ile de France. L'animation a ensuite été générée avec les outils d'animation standard d'ArcGIS Desktop.