Polygon vereinfachen (Kartografie)

Zusammenfassung

Hiermit werden Polygon-Features durch Entfernen relativ unwesentlicher Stützpunkte vereinfacht, behalten aber die wesentliche Form bei.

Abbildung

Option "Algorithmus" des Werkzeugs "Polygon vereinfachen" – Beispiele
Zum Vergleich sind hier Beispielergebnisse der Vereinfachungsalgorithmen dargestellt.

Verwendung

  • Dieses Werkzeug verwendet unterschiedliche Vereinfachungsalgorithmen für verschiedene Zwecke. Weitere Informationen zu diesen Algorithmen finden Sie unter Funktionsweise von "Linie vereinfachen" und "Polygon vereinfachen".

    • Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) (algorithm = "POINT_REMOVE" in Python): Identifiziert und entfernt relativ überflüssige Stützpunkte, um die Daten für die Anzeige in kleineren Maßstäben zu vereinfachen. Er ist der schnellste der Vereinfachungsalgorithmen in diesem Werkzeug. Er wird häufig zur Datenkomprimierung oder für eine grobere Vereinfachung verwendet. Die entstehenden Polygon-Umrisse weisen mit zunehmender Toleranz deutlich mehr Winkel auf. Dieser Algorithmus basiert auf dem Douglas-Peucker-Algorithmus: Douglas, David and Peucker, Thomas, "Algorithms for the reduction of the number of points required to represent a digitized line or its caricature," The Canadian Cartographer 10(2), 112–122 (1973).
    • Algorithmus Kritische Biegungen beibehalten (Wang-Müller) (algorithm = "BEND_SIMPLIFY" in Python): Identifiziert und entfernt relativ unbedeutende Biegungen, um die Daten für die Anzeige in kleineren Maßstäben zu vereinfachen. Er gibt die Eingabe-Geometrie in der Regel wirklichkeitsgetreuer wieder als der Algorithmus Kritische Punkte beibehalten (Douglas-Peucker), kann jedoch mehr Zeit für die Bearbeitung in Anspruch nehmen. Dieser Algorithmus basiert auf dem in Wang, Zeshen and Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998) definierten Algorithmus.
    • Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) (algorithm = "WEIGHTED_AREA" in Python): Identifiziert Dreiecke einer effektiven Fläche für jeden Stützpunkt. Anschließend erfolgt anhand mehrerer Kennwerte eine Gewichtung der ermittelten Dreiecke nach Flachheit, Schiefe und Krümmung der jeweiligen Fläche. Die gewichteten Flächen bestimmen die Entfernung ihrer entsprechenden Stützpunkte, um den Polygon-Umriss zu vereinfachen, während so viele Eigenschaften wie möglich beibehalten werden. Dieser Algorithmus basiert auf dem in Zhou, Sheng und Jones, Christopher B., (2005) "Shape-Aware Line Generalisation with Weighted Effective Area" in Fisher, Peter F. (Hrsg.), Developments in Spatial Handling 11th International Symposium on Spatial Handling, 369–80 (2005), definierten Algorithmus.
    • Algorithmus Effektive Flächen beibehalten (Visvalingam-Whyatt) (algorithm = "EFFECTIVE_AREA" in Python): Identifiziert Dreiecke der effektiven Fläche für jeden Stützpunkt, um das Entfernen von Stützpunkten zu steuern und den Polygon-Umriss zu vereinfachen, während möglichst viele Eigenschaften beibehalten werden. Dieser Algorithmus basiert auf dem definierten Algorithmus in Visvalingam, M. und Whyatt, J. D., "Line Generalisation by Repeated Elimination of the Smallest Area", Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, University of Hull (1992).

  • Der Grad der Vereinfachung wird durch den Wert des Parameters Vereinfachungstoleranz bestimmt. Je größer die Toleranz, desto grober ist die resultierende Geometrie. Kleinere Toleranzen erzeugen eine Geometrie, die die Eingabe genauer wiedergibt. Die Felder MinSimpTol und MaxSimpTol werden der Ausgabe hinzugefügt, um die verwendete Toleranz zu speichern.

    • Beim Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) ist die Toleranz der maximal zulässige senkrechte Abstand zwischen jedem Stützpunkt und der neu erstellten Linie.
    • Beim Algorithmus Kritische Biegungen beibehalten (Wang-Müller) ist die Toleranz der Durchmesser eines Kreises, der sich einer signifikanten Biegung annähert.
    • Beim Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird. Je weiter die Form von dem eines gleichseitigen Dreiecks abweicht, desto höher ist die zugewiesene Gewichtung und desto geringer die Wahrscheinlichkeit, dass es entfernt wird.
    • Beim Algorithmus Effektive Flächen beibehalten (Visvalingam-Whyatt) ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird.

  • Sämtliche Polygone, die kleiner sind als der Parameterwert Mindestfläche, werden aus der Ausgabe-Feature-Class entfernt. Bei einer Gruppe benachbarter Polygone, die gemeinsame Kanten haben, wird die Mindestfläche auf die Gesamtfläche der Gruppe angewendet. Verwenden Sie den Parameter Zusammengefasste Punkte beibehalten, um einen Datensatz entfernter Polygone als Punkt-Features beizubehalten.

  • Multipart-Polygone werden als einzelne Teile vereinfacht.

  • Verwenden Sie den Parameter Zusammengefasste Punkte beibehalten (collapsed_point_option in Python), um eine Ausgabe-Point-Feature-Class zum Speichern von Punkten zu erstellen, die Polygone wiedergeben, die entfernt werden, weil sie kleiner als die Mindestfläche sind. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie der Parameterwert Ausgabe-Feature-Class (out_feature_class in Python), jedoch mit einem _Pnt-Suffix. Die Ausgabe-Polygon-Feature-Class enthält alle Felder, die in der Eingabe-Feature-Class vorhanden sind. Die Ausgabe-Point-Feature-Class enthält keines dieser Felder.

  • Die Ausgabe-Polygon-Feature-Class ist topologisch korrekt. Alle topologischen Fehler in den Eingabedaten werden in der Ausgabe-Polygon-Feature-Class gekennzeichnet. Die Ausgabe-Feature-Class umfasst zwei zusätzliche Felder: InPoly_FID und SimPgnFlag, die die Eingabe-Feature-IDs bzw. die topologischen Fehler oder Abweichungen der Eingabe enthalten.

    SimPgnFlag Die Feldwerte:

    • SimPgnFlag = 0 gibt an, dass es keine Fehler gibt.
    • SimPgnFlag = 1 gibt an, dass es einen topologischen Fehler gibt.
    • SimPgnFlag = 2 gibt Features an, die von einer Partition aufgeteilt wurden und sich nach der Vereinfachung unterhalb der Mindestfläche befinden. Dieses Flag wird möglicherweise nur für ein Teil des Teilungs-Features angezeigt. Alle Features werden in der Ausgabe-Feature-Class beibehalten. Diese Situation tritt nur dann auf, wenn die Umgebungseinstellung Kartografische Partitionen verwendet wird.
    Vorversion:

    In vorherigen Versionen dieses Werkzeugs konnten topologische Fehler bei der Verarbeitung erzeugt werden. Der Parameter Verarbeitung topologischer Fehler (error_option in Python) ist in der Syntax des Werkzeugs für Kompatibilität in Skripten und Modellen nach wie vor enthalten, wird aber nun ignoriert und aus dem Dialogfeld des Werkzeugs ausgeblendet.

    Das Feld SimPgnFlag wurde zur Kennzeichnung topologischer Fehler in der Ausgabe-Feature-Class verwendet, die vom Werkzeug bei der Verarbeitung verursacht wurden. Dieses Feld kennzeichnet nun Fehler, die in der Eingabe vorhanden waren. Außerdem haben frühere Versionen des Werkzeugs im Verlauf der Topologieauflösung Toleranzen pro Feature geändert und diese Werte in den Feldern MinSimpTol und MaxSimpTol gespeichert. In der aktuellen Implementierung sind die Werte in diesen Feldern identisch mit und gleich der Toleranz, die im Parameter Vereinfachungstoleranz angegeben wird. Ändern Sie vorhandene Modelle oder Skripte, die auf einem dieser Felder basieren.

  • Verwenden Sie den Parameter Eingabe-Barriere-Layer zum Identifizieren von Features, die nicht von vereinfachten Polygonen gekreuzt werden dürfen. Als Barrieren-Features können Punkte, Linien oder Polygone verwendet werden.

  • Domänen und Subtypes werden auch dann in die Ausgabe kopiert, wenn die Umgebungseinstellung Felddomäne, Subtypes und Attributregeln übertragen deaktiviert ist.

  • Bei Verarbeitung von großen Datasets werden möglicherweise Speicherbeschränkungen überschritten. Erwägen Sie in diesem Fall, die Eingabedaten partitionsweise zu verarbeiten, indem Sie eine relevante Polygon-Feature-Class in der Umgebungseinstellung Kartografische Partitionen angeben. Die Teile der Daten, die durch Partitionsgrenzen definiert werden, werden sequenziell verarbeitet. Die sich ergebende Ausgabe-Feature-Class ist an den Partitionsrändern nahtlos und konsistent. Weitere Informationen erhalten Sie unter Generalisieren von großen Datasets mit Partitionen.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die zu vereinfachenden Eingabe-Polygon-Features.

Feature Layer
Ausgabe-Feature-Class

Die vereinfachte Ausgabe-Polygon-Feature-Class. Sie enthält alle Felder, die in der Eingabe-Feature-Class vorhanden sind. Die Ausgabe-Polygon-Feature-Class ist topologisch korrekt. Das Werkzeug verursacht keine Topologiefehler, topologische Fehler in den Eingabedaten werden jedoch in der Ausgabe-Polygon-Feature-Class gekennzeichnet.

Die Ausgabe-Feature-Class umfasst zwei zusätzliche Felder: InPoly_FID und SimPgnFlag, die die Eingabe-Feature-IDs bzw. topologischen Fehler oder Abweichungen der Eingabe enthalten.

SimPgnFlag Die Attributwerte:

  • SimPgnFlag = 0 gibt an, dass es keine Fehler gibt.
  • SimPgnFlag = 1 gibt an, dass es einen topologischen Fehler gibt.
  • SimPgnFlag = 2 gibt Features an, die von einer Partition aufgeteilt wurden und sich nach der Vereinfachung unterhalb der Mindestfläche befinden. Dieses Flag wird möglicherweise nur für ein Teil des Teilungs-Features angezeigt. Alle Features werden in der Ausgabe-Feature-Class beibehalten. Diese Situation tritt nur dann auf, wenn die Umgebungseinstellung Kartografische Partitionen verwendet wird.

Feature Class
Vereinfachungsalgorithmus

Dadurch wird der Algorithmus für die Polygonvereinfachung festgelegt.

  • Kritische Punkte beibehalten (Douglas-Peucker)Kritische Punkte, die die wesentliche Form einer Polygon-Umrisslinie bewahren, werden beibehalten. Alle anderen Punkte werden entfernt (Douglas-Peucker). Dies ist die Standardeinstellung.
  • Kritische Biegungen beibehalten (Wang-Müller)Kritische Biegungen werden beibehalten, unwesentliche Biegungen werden aus einer Linie entfernt (Wang-Müller).
  • Gewichtete effektive Flächen beibehalten (Zhou-Jones)Stützpunkte, die Dreiecke der effektiven Fläche bilden und nach Dreiecksform gewichtet wurden (Zhou-Jones), werden beibehalten.
  • Effektive Flächen beibehalten (Visvalingam-Whyatt)Stützpunkte, die Dreiecke der effektiven Fläche bilden, werden beibehalten (Visvalingam-Whyatt).
String
Vereinfachungstoleranz

Der Grad der Vereinfachung wird durch die Toleranz bestimmt. Sie können eine bevorzugte Einheit auswählen. Anderenfalls werden die Einheiten der Eingabe verwendet. Die Felder MinSimpTol und MaxSimpTol werden zur Ausgabe hinzugefügt, um die Toleranz zu speichern, die bei der Verarbeitung verwendet wurde.

  • Beim Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) ist die Toleranz der maximal zulässige senkrechte Abstand zwischen jedem Stützpunkt und der neu erstellten Linie.
  • Beim Algorithmus Kritische Biegungen beibehalten (Wang-Müller) ist die Toleranz der Durchmesser eines Kreises, der sich einer signifikanten Biegung annähert.
  • Beim Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird. Je weiter die Form von dem eines gleichseitigen Dreiecks abweicht, desto höher ist die zugewiesene Gewichtung und desto geringer die Wahrscheinlichkeit, dass es entfernt wird.
  • Beim Algorithmus Effektive Flächen beibehalten (Visvalingam-Whyatt) ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird.
Linear Unit
Mindestfläche
(optional)

Die Mindestfläche für ein beizubehaltendes Polygon. Der Standardwert ist 0, das heißt, alle Polygone müssen beibehalten werden. Sie können eine bevorzugte Einheit für den angegebenen Wert auswählen. Anderenfalls werden die Einheiten der Eingabe verwendet.

Areal Unit
Verarbeitung topologischer Fehler
(optional)
Vorversion:

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde früher verwendet, um anzugeben, wie topologische Fehler, die möglicherweise bei der Verarbeitung verursacht wurden, behandelt werden. Dieser Parameter ist in der Syntax des Werkzeugs für Kompatibilität in Skripten und Modellen nach wie vor enthalten, wird aber aus dem Dialogfeld des Werkzeugs ausgeblendet.

String
Zusammengefasste Punkte beibehalten
(optional)

Gibt an, ob eine Ausgabe-Point-Feature-Class zum Speichern der Mittelpunkte von Polygonen erstellt wird, die entfernt werden, da sie kleiner als der Parameterwert für Mindestfläche sind. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie der Parameter Ausgabe-Feature-Class, jedoch mit einem _Pnt-Suffix.

  • Aktiviert: Es wird eine abgeleitete Ausgabe-Point-Feature-Class zum Speichern der Mittelpunkte von Polygonen erstellt, die entfernt werden, da sie kleiner als der Parameter für die Mindestfläche sind. Dies ist die Standardeinstellung.
  • Deaktiviert: Eine abgeleitete Ausgabe-Point-Feature-Class wird nicht erstellt.
Boolean
Eingabe-Barriere-Layer
(optional)

Eingaben, die Features enthalten, die als Barrieren für die Vereinfachung fungieren. Resultierende vereinfachte Polygone berühren oder kreuzen keine Barrieren-Features. Beim Vereinfachen von Waldgebieten kreuzen die resultierenden vereinfachten Waldpolygone beispielsweise keine Straßen-Features, die als Barrieren definiert sind.

Feature Layer

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Zu Null-Fläche zusammengefasste Polygone

Wenn der Parameter Zusammengefasste Punkte beibehalten (collapsed_point_option in Python) verwendet wird, wird eine Ausgabe-Point-Feature-Class zum Speichern von Punkten erstellt, die Polygone wiedergeben, die entfernt werden, weil sie kleiner als die Mindestfläche sind.

Feature Class

arcpy.cartography.SimplifyPolygon(in_features, out_feature_class, algorithm, tolerance, {minimum_area}, {error_option}, {collapsed_point_option}, {in_barriers})
NameErläuterungDatentyp
in_features

Die zu vereinfachenden Eingabe-Polygon-Features.

Feature Layer
out_feature_class

Die vereinfachte Ausgabe-Polygon-Feature-Class. Sie enthält alle Felder, die in der Eingabe-Feature-Class vorhanden sind. Die Ausgabe-Polygon-Feature-Class ist topologisch korrekt. Das Werkzeug verursacht keine Topologiefehler, topologische Fehler in den Eingabedaten werden jedoch in der Ausgabe-Polygon-Feature-Class gekennzeichnet.

Die Ausgabe-Feature-Class umfasst zwei zusätzliche Felder: InPoly_FID und SimPgnFlag, die die Eingabe-Feature-IDs bzw. topologischen Fehler oder Abweichungen der Eingabe enthalten.

SimPgnFlag Die Attributwerte:

  • SimPgnFlag = 0 gibt an, dass es keine Fehler gibt.
  • SimPgnFlag = 1 gibt an, dass es einen topologischen Fehler gibt.
  • SimPgnFlag = 2 gibt Features an, die von einer Partition aufgeteilt wurden und sich nach der Vereinfachung unterhalb der Mindestfläche befinden. Dieses Flag wird möglicherweise nur für ein Teil des Teilungs-Features angezeigt. Alle Features werden in der Ausgabe-Feature-Class beibehalten. Diese Situation tritt nur dann auf, wenn die Umgebungseinstellung Kartografische Partitionen verwendet wird.

Feature Class
algorithm

Dadurch wird der Algorithmus für die Polygonvereinfachung festgelegt.

  • POINT_REMOVEKritische Punkte, die die wesentliche Form einer Polygon-Umrisslinie bewahren, werden beibehalten. Alle anderen Punkte werden entfernt (Douglas-Peucker). Dies ist die Standardeinstellung.
  • BEND_SIMPLIFYKritische Biegungen werden beibehalten, unwesentliche Biegungen werden aus einer Linie entfernt (Wang-Müller).
  • WEIGHTED_AREAStützpunkte, die Dreiecke der effektiven Fläche bilden und nach Dreiecksform gewichtet wurden (Zhou-Jones), werden beibehalten.
  • EFFECTIVE_AREAStützpunkte, die Dreiecke der effektiven Fläche bilden, werden beibehalten (Visvalingam-Whyatt).
String
tolerance

Der Grad der Vereinfachung wird durch die Toleranz bestimmt. Sie können eine bevorzugte Einheit auswählen. Anderenfalls werden die Einheiten der Eingabe verwendet. Die Felder MinSimpTol und MaxSimpTol werden zur Ausgabe hinzugefügt, um die Toleranz zu speichern, die bei der Verarbeitung verwendet wurde.

  • Beim Algorithmus POINT_REMOVE ist die Toleranz der maximal zulässige senkrechte Abstand zwischen jedem Stützpunkt und der neu erstellten Linie.
  • Beim Algorithmus BEND_SIMPLIFY ist die Toleranz der Durchmesser eines Kreises, der sich einer signifikanten Biegung annähert.
  • Beim Algorithmus WEIGHTED_AREA ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird. Je weiter die Form von dem eines gleichseitigen Dreiecks abweicht, desto höher ist die zugewiesene Gewichtung und desto geringer die Wahrscheinlichkeit, dass es entfernt wird.
  • Beim Algorithmus EFFECTIVE_AREA ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird.
Linear Unit
minimum_area
(optional)

Die Mindestfläche für ein beizubehaltendes Polygon. Der Standardwert ist 0, das heißt, alle Polygone müssen beibehalten werden. Sie können eine bevorzugte Einheit für den angegebenen Wert auswählen. Anderenfalls werden die Einheiten der Eingabe verwendet.

Areal Unit
error_option
(optional)
Vorversion:

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde früher verwendet, um anzugeben, wie topologische Fehler, die möglicherweise bei der Verarbeitung verursacht wurden, behandelt werden. Dieser Parameter ist in der Syntax des Werkzeugs für Kompatibilität in Skripten und Modellen nach wie vor enthalten, wird aber aus dem Dialogfeld des Werkzeugs ausgeblendet.

String
collapsed_point_option
(optional)

Gibt an, ob eine Ausgabe-Point-Feature-Class zum Speichern der Mittelpunkte von Polygonen erstellt wird, die entfernt werden, da sie kleiner als der Parameterwert für minimum_area sind. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie die im Parameter out_feature_class angegebene Ausgabe-Polygon-Feature-Class, jedoch mit einem _Pnt-Suffix.

  • KEEP_COLLAPSED_POINTSEs wird eine abgeleitete Ausgabe-Point-Feature-Class zum Speichern der Mittelpunkte von Polygonen erstellt, die entfernt werden, da sie kleiner als der Parameter für die Mindestfläche sind. Dies ist die Standardeinstellung.
  • NO_KEEPEine abgeleitete Ausgabe-Point-Feature-Class wird nicht erstellt.
Boolean
in_barriers
[in_barriers,...]
(optional)

Eingaben, die Features enthalten, die als Barrieren für die Vereinfachung fungieren. Resultierende vereinfachte Polygone berühren oder kreuzen keine Barrieren-Features. Beim Vereinfachen von Waldgebieten kreuzen die resultierenden vereinfachten Waldpolygone beispielsweise keine Straßen-Features, die als Barrieren definiert sind.

Feature Layer

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_point_feature_class

Wenn der Parameter Zusammengefasste Punkte beibehalten (collapsed_point_option in Python) verwendet wird, wird eine Ausgabe-Point-Feature-Class zum Speichern von Punkten erstellt, die Polygone wiedergeben, die entfernt werden, weil sie kleiner als die Mindestfläche sind.

Feature Class

Codebeispiel

SimplifyPolygon – Beispiel 1 (Python-Fenster)

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

import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SimplifyPolygon("soils.shp", "C:/output/output.gdb/simplified_soils", "POINT_REMOVE", 100)
SimplifyPolygon – Beispiel 2 (eigenständiges Skript)

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

# Name: SimplifyPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake 
#              boundaries.

# Import system modules
import arcpy
import arcpy.management as DM
import arcpy.cartography as CA
 
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"
 
# Set local variables
inLakeFeatures = "lakes"
eliminatedFeatures = "C:/data/PortlandOutput.gdb/lakes_eliminated"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/lakes_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/lakes_smoothed"

# Eliminate small islands in lake polygons.
DM.EliminatePolygonPart(inLakeFeatures, eliminatedFeatures, 100, "OR", 0, 
                        "CONTAINED_ONLY")
 
# Simplify lake polygons
CA.SimplifyPolygon(eliminatedFeatures, simplifiedFeatures, "POINT_REMOVE", 50, 
                   200, "#", "KEEP_COLLAPSED_POINTS")

# Smooth lake polygons
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, 
                 "FLAG_ERRORS")

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen