Zusammenhängendes Kartogramm generieren (Cartography)

Zusammenfassung

Generiert ein Kartogramm, indem es die Fläche der Polygone basierend auf einem numerischen Feld so verzerrt, dass sie sich proportional zueinander verhalten, wobei die gemeinsamen Grenzen erhalten bleiben.

Abbildung

Abbildung des Werkzeugs "Zusammenhängendes Kartogramm generieren"
Gemeinsame Grenzen werden beibehalten, während die Größe und die Form der Eingabepolygone so verzerrt werden, dass die Fläche jedes Features den Wert eines Attributfeldes darstellt; in diesem Fall ist dies die Gesamtbevölkerung jedes Features.

Verwendung

  • Die Ausgabe ist ein neuer Polygon-Feature-Layer, in dem die Polygone so transformiert sind, dass die Fläche jedes Features proportional zum Wert eines numerischen Feldes verglichen mit der Summe des betreffenden Feldes im Verhältnis zu allen Features in der Eingabe ist.

  • Die Attributdaten des Eingabe-Layers werden in die Ausgabe übertragen. Die Symbolisierung und die Beschriftung werden übertragen, wenn die Eingabe ein symbolisierter Layer ist.

  • Der Parameter Methode hat die folgenden Optionen:

    • Flussbasiert: Diese Option ist eine Weiterentwicklung der Methode Diffusion. Sie ist oftmals schneller. Die Form der Ausgabepolygone ist ggf. anders oder enthält im Vergleich etwas mehr Verzerrungen. Dies ist die Standardeinstellung.
    • Diffusion: Diese Option verzerrt die ursprünglichen Formen etwas weniger als die Option Flussbasiert, dauert jedoch länger.
    Mit jeder Option wird versucht, die allgemeine Form einzelner Polygone beizubehalten, ohne dabei die gemeinsamen Kanten zu verändern.

  • Um die Verarbeitungszeit zu verkürzen, können Sie das Werkzeug Polygon vereinfachen an den Eingabe-Features ausführen, bevor Sie dieses Werkzeug ausführen. Dies kann bei einigen Ausgabepolygonen dazu führen, dass sie allzu vereinfacht erscheinen, wenn sie so verzerrt werden, dass sie deutlich größer sind.

  • Die Eingabedaten oder die aktive Karte, auf der die Daten angezeigt werden, sollten eine flächentreue Projektion verwenden, die für die betreffende Region passend ist. Auf diese Weise stellt die sichtbare Fläche der Eingabepolygone die tatsächliche Fläche genauer dar, bevor sie verändert wird. Verwenden Sie die Umgebung Kartografisches Koordinatensystem, wenn keine aktive Karte vorhanden ist und die Daten eine nicht flächentreue Projektion verwenden. Zeigen Sie die Ergebnisse in derselben flächentreuen Projektion an, um die angepassten Feature-Flächen genau darzustellen.

  • Die Feldwerte im Parameterwert Feldname sollten positive Zahlen sein. Alle Features mit negativen Werten oder Werten von 0 sind in der Ausgabe nicht vorhanden.

  • Zusätzliche Ressourcen:

    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.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die Eingabe-Polygon-Features, die zum Generieren des Kartogramms verwendet werden.

Feature Layer
Feldname

Das numerische Feld, das die Werte enthält, durch die die Fläche der Polygon-Features im Ausgabekartogramm bestimmt wird. Alle Features mit einem negativen oder einem Wert von 0 werden in der Ausgabe ausgelassen.

Field
Ausgabe-Feature-Class

Die Ausgabepolygone mit angewendeter Kartogrammtransformation.

Feature Layer
Methode
(optional)

Gibt die Methode an, die zum Transformieren der Eingabe und zum Erstellen des Kartogramms verwendet wird.

  • FlussbasierteEs wird eine Weiterentwicklung der Diffusionsmethode verwendet, die oftmals schneller ist, was zu einer stärkeren Verzerrung führen kann. Dies ist die Standardeinstellung.
  • DiffusionEs wird die Diffusionsmethode verwendet, bei der es zu einer geringeren Verzerrung als bei der flussbasierten Methode kommen kann, während sie länger dauert.
String

arcpy.cartography.GenerateContiguousCartogram(in_features, field_name, out_features, {method})
NameErläuterungDatentyp
in_features

Die Eingabe-Polygon-Features, die zum Generieren des Kartogramms verwendet werden.

Feature Layer
field_name

Das numerische Feld, das die Werte enthält, durch die die Fläche der Polygon-Features im Ausgabekartogramm bestimmt wird. Alle Features mit einem negativen oder einem Wert von 0 werden in der Ausgabe ausgelassen.

Field
out_features

Die Ausgabepolygone mit angewendeter Kartogrammtransformation.

Feature Layer
method
(optional)

Gibt die Methode an, die zum Transformieren der Eingabe und zum Erstellen des Kartogramms verwendet wird.

  • FLOW-BASEDEs wird eine Weiterentwicklung der Diffusionsmethode verwendet, die oftmals schneller ist, was zu einer stärkeren Verzerrung führen kann. Dies ist die Standardeinstellung.
  • DIFFUSIONEs wird die Diffusionsmethode verwendet, bei der es zu einer geringeren Verzerrung als bei der flussbasierten Methode kommen kann, während sie länger dauert.
String

Codebeispiel

GenerateContiguousCartogram: Beispiel (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion GenerateContiguousCartogram im unmittelbaren Modus verwendet wird.

import arcpy
arcpy.env.workspace = "C:/data/admin.gdb"
arcpy.cartography.GenerateContiguousCartogram(
    "countries", 
    "population", 
    "countries_cartogram_population", 
    "FLOW-BASED")
GenerateContiguousCartogram: Beispiel (eigenständiges Skript)

Das folgende eigenständige Skript veranschaulicht, wie die Funktion GenerateContiguousCartogram verwendet wird.

# 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)