Zusammenfassung
Hiermit werden Polygon-Umrisse durch Entfernen relativ unwesentlicher Stützpunkte vereinfacht, behalten aber die wesentliche Form bei.
Weitere Informationen zur Funktionsweise von Linie vereinfachen und Polygon vereinfachen
Verwendung
Dieses Werkzeug stellt unterschiedliche Vereinfachungsalgorithmen für verschiedene Zwecke bereit:
- Der Algorithmus POINT_REMOVE 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. Der entstehende Polygon-Umriss weist 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).
- Der Algorithmus BEND_SIMPLIFY 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 POINT_REMOVE, kann jedoch mehr Zeit für die Bearbeitung in Anspruch nehmen. Die Methode ist langsamer, führt in der Regel jedoch zu Ergebnissen, die die ursprünglichen Features wirklichkeitsgetreuer wiedergeben. Bei dieser Methode werden unbedeutende Biegungen an den Umrisslinien des Polygons entfernt. 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.
- Der Algorithmus WEIGHTED_AREA identifiziert zuerst Dreiecke einer effektiven Fläche für jeden Stützpunkt. Diese Dreiecke werden dann von einer Reihe von Kennwerten gewichtet, um die Ebenheit, Schiefe und Konvexität jeder Fläche zu vergleichen. 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 and Jones, Christopher B., (2005) "Shape-Aware Line Generalisation with Weighted Effective Area" in Fisher, Peter F. (Ed.) Developments in Spatial Handling 11th International Symposium on Spatial Handling, 369–80, definierten Algorithmus.
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 wirklichkeitsgetreuer wiedergibt. MinSimpTol und MaxSimpTol-Felder werden der Ausgabe hinzugefügt, um die verwendete Toleranz zu speichern.
- 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.
Sämtliche Polygone, die kleiner sind als der Parameter 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 wurden, weil sie unterhalb der Mindestfläche liegen. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie der Parameter 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. topologischen Fehler der Eingabe enthalten. Ein SimPgnFlag-Wert von 1 gibt an, dass ein topologischer Fehler vorliegt. 0 (Null) gibt an, dass keine Fehler vorhanden sind.
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.
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.
Syntax
SimplifyPolygon_cartography (in_features, out_feature_class, algorithm, tolerance, {minimum_area}, {error_option}, {collapsed_point_option}, {in_barriers})
Parameter | Erläuterung | Datentyp |
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 der Eingabe enthalten. Ein SimPgnFlag-Wert von 1 gibt an, dass ein topologischer Fehler bei der Eingabe vorliegt. 0 (Null) gibt an, dass kein Eingabefehler vorhanden ist. | Feature Class |
algorithm | Dadurch wird der Algorithmus für die Polygonvereinfachung festgelegt.
| 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. MinSimpTol und MaxSimpTol-Felder werden zur Ausgabe hinzugefügt, um die Toleranz zu speichern, die bei der Verarbeitung verwendet wurde.
| Linear Unit |
minimum_area (optional) | Festlegung der 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) | String | |
collapsed_point_option (optional) | Bestimmt, ob eine Ausgabe-Point-Feature-Class erstellt wird, um die Mittelpunkte aller Polygone zu speichern, die entfernt wurden, da sie kleiner als der Parameter minimum_area sind. Die Punktausgabe wird abgeleitet. Sie trägt den gleichen Namen wie die Ausgabe-Polygon-Feature-Class, die Sie mit dem Parameter out_feature_class angeben, jedoch mit einem _Pnt-Suffix, der sich im gleichen Ordner befindet.
| 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 |
Codebeispiel
SimplifyPolygon – Beispiel (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie das Werkzeug 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)
Im folgenden eigenständigen Skript wird veranschaulicht, wie das Werkzeug 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")
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Nein
- ArcGIS Desktop Standard: Ja
- ArcGIS Desktop Advanced: Ja