Générer un cartogramme contigu (Cartographie)

Synthèse

Génère un cartogramme en déformant la surface des polygones proportionnellement les uns par rapport aux autres en fonction d’un champ numérique, tout en conservant les limites partagées.

Illustration

Illustration de l’outil Générer un cartogramme contigu
Les limites partagées sont conservées alors que la taille et la forme des polygones en entrée sont déformées de sorte que la surface de chaque entité représente la valeur d’un champ attributaire, qui en l’occurrence représente la population totale de chaque entité.

Utilisation

  • La sortie sera une nouvelle couche d’entités surfaciques avec des polygones transformés de sorte que la surface de chaque entité soit proportionnelle à la valeur d’un champ numérique, par rapport à la somme de ce champ dans toutes les entités de l’entrée.

  • Les données attributaires de la couche en entrée seront transférées vers la sortie. La symbologie et l’étiquetage seront transférés dans le cas où l’entrée est une couche symbolisée.

  • Le paramètre Méthode comporte les options suivantes :

    • Centré sur les flux : cette option est une évolution de la méthode Diffusion, et son exécution est souvent plus rapide. La forme des polygones en sortie peut être différente ou présenter une distorsion un peu plus importante comparativement. Il s’agit de l’option par défaut.
    • Diffusion : cette option peut appliquer une distortion un peu moins importante aux formes d’origine que l’option Centré sur les flux, mais son exécution prend plus de temps.
    Chaque option va tenter de garder la forme générale des polygones individuels tout en conservant les tronçons partagés.

  • Pour réduire le temps de traitement, vous pouvez exécuter l’outil Simplifier un polygone sur les entités en entrée avant d’exécuter cet outil. Certains polygones en sortie peuvent alors apparaître exagérément simplifiés si leur déformation les agrandit considérablement.

  • Les données en entrée ou la carte active affichant les données doivent utiliser une projection équivalente adaptée à cette région. Ainsi, la surface visible des polygones en entrée représentera de manière plus précise la surface réelle avant modification. Utilisez l’environnement Système de coordonnées cartographiques s’il n’y a pas de carte active et si les données utilisent une projection non équivalente. Affichez les résultats dans la même projection équivalente pour obtenir une représentation précise des surfaces des entités ajustées.

  • Les valeurs de champ du paramètre Nom du champ doivent être positives. Toute entité dont la valeur est négative ou égale à 0 ne sera pas présente dans la sortie.

  • Ressources supplémentaires :

    Gastner, Michael T. and M. E. J. Newman. 2004. "Diffusion-based method for producing density-equalizing maps." Proceedings of the National Academy of Sciences of the United States of America, 101(20): 7499–7504.

    Gastner, Michael T., Vivien Seguy, and Pratyush More. 2018. "Fast flow-based algorithm for creating density-equalizing map projections." Proceedings of the National Academy of Sciences of the United States of America, 115(10): E2156-E2164.

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Entités surfaciques en entrée qui seront utilisées pour générer le cartogramme.

Feature Layer
Nom de champ

Champ numérique contenant les valeurs qui détermineront la surface des entités surfaciques dans le cartogramme en sortie. Toute entité dont la valeur est négative ou égale à 0 sera omise de la sortie.

Field
Classe d’entités en sortie

Polygones en sortie avec la transformation par cartogramme appliquée.

Feature Layer
Méthode
(Facultatif)

Indique la méthode qui sera utilisée pour transformer l’entrée et créer le cartogramme.

  • Centré sur les fluxUne évolution, souvent plus rapide, de la méthode Diffusion sera utilisée. Ainsi, il est possible que la distorsion augmente. Il s’agit de l’option par défaut.
  • DiffusionLa méthode Diffusion sera utilisée. Elle peut appliquer une distorsion moins importante que la méthode Centré sur les flux, mais son exécution prend plus de temps.
String

arcpy.cartography.GenerateContiguousCartogram(in_features, field_name, out_features, {method})
NomExplicationType de données
in_features

Entités surfaciques en entrée qui seront utilisées pour générer le cartogramme.

Feature Layer
field_name

Champ numérique contenant les valeurs qui détermineront la surface des entités surfaciques dans le cartogramme en sortie. Toute entité dont la valeur est négative ou égale à 0 sera omise de la sortie.

Field
out_features

Polygones en sortie avec la transformation par cartogramme appliquée.

Feature Layer
method
(Facultatif)

Indique la méthode qui sera utilisée pour transformer l’entrée et créer le cartogramme.

  • FLOW-BASEDUne évolution, souvent plus rapide, de la méthode Diffusion sera utilisée. Ainsi, il est possible que la distorsion augmente. Il s’agit de l’option par défaut.
  • DIFFUSIONLa méthode Diffusion sera utilisée. Elle peut appliquer une distorsion moins importante que la méthode Centré sur les flux, mais son exécution prend plus de temps.
String

Exemple de code

Exemple d’utilisation de l’outil GenerateContiguousCartogram (fenêtre Python)

Le script ci-dessous pour la fenêtre Python montre comment utiliser la fonction GenerateContiguousCartogram en mode immédiat.

import arcpy
arcpy.env.workspace = "C:/data/admin.gdb"
arcpy.cartography.GenerateContiguousCartogram(
    "countries", 
    "population", 
    "countries_cartogram_population", 
    "FLOW-BASED")
Exemple d’utilisation de l’outil GenerateContiguousCartogram (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction GenerateContiguousCartogram.

# Name: GenerateContiguousCartogram_sample2.py
# Description: Output a contiguous cartogram of country polyons 
#              based on popuplation.

# Import System Modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/admin.gdb"

# Set Local Variables
in_features = "countries"
value_field = "population"
out_cartogram = "countries_cartogram_population"
algorithm = "DIFFUSION"

# Execute Generate Contiguous Cartogram
arcpy.cartography.GenerateContiguousCartogram(
    in_features, 
    value_field, 
    out_cartogram, 
    algorithm)