Zusammenfassung
Hiermit wird ein Polygon durch Entfernen unwesentlicher Biegungen vereinfacht, behält aber die wesentliche Form bei.
Bild
Verwendung
Es gibt zwei Vereinfachungsmethoden:
- Die Methode Kritische Punkte beibehalten (POINT_REMOVE in Python) ist die schnellere der beiden Prozesse. Sie entfernt überflüssige Stützpunkte. Verwenden Sie diese Methode für die Datenkomprimierung oder eine etwas gröbere Vereinfachung. Dies bietet sich vor allem an, wenn die Daten bekannt sind. Das entstehende Polygon weist mit zunehmender Toleranz jedoch deutlich mehr Winkel (scharfe Ecken) auf, sodass es unter Umständen nicht mehr besonders ästhetisch aussieht.
- Die Methode Kritische Biegungen beibehalten (BEND_SIMPLIFY in Python) ist langsamer, erzeugt jedoch Ergebnisse, die dem Original ähnlicher sind und außerdem ästhetisch ansprechender sind. Bei dieser Methode werden unbedeutende Biegungen an den Polygonen entfernt. Verwenden Sie diese Methode für eine geringere, aber feinere Vereinfachung.
Der Parameter Minimumfläche gilt nur für vereinfachte Polygone. Polygone, die nach dem Vereinfachungsprozess kleiner als die minimale Fläche sind, werden aus der Ausgabe-Feature-Class entfernt. Bei einer Gruppe benachbarter Polygone, die gemeinsame Kanten haben, wird dies auf die Gesamtfläche der Gruppe angewendet.
Das Werkzeug erzeugt zwei Ausgabe-Feature-Classes: Eine Polygon-Feature-Class zum Speichern der vereinfachten Polygone und eine Point-Feature-Class zum Speichern der Punkte, die Polygone wiedergeben, die auf eine Fläche von Null reduziert wurden. Der Ausgabename und das Ausgabeverzeichnis der Punkte werden automatisch vom Ausgabe-Polygonnamen abgeleitet mit dem Suffix _Pnt. Die Polygonausgabe enthält alle Eingabefelder, die Punktausgabe enthält keine der Eingabefelder.
Multipart-Polygone werden als einzelne Teile vereinfacht.
Es bestehen drei Optionen zum Behandeln der topologischen Fehler in der Ausgabe:
- Nicht auf topologische Fehler überprüfen (NO_CHECK in Python): das vom Vereinfachungsprozess generierte Ergebnis wird nicht auf topologische Fehler überprüft. Die Verarbeitung ist schneller. Verwenden Sie diese Option nur, wenn Sie der topologischen Genauigkeit der Daten trauen.
- Fehler kennzeichnen (FLAG_ERRORS in Python): das Ergebnis des Vereinfachungsprozesses wird auf topologische Fehler überprüft, Features mit topologischen Fehlern werden gekennzeichnet. Verwenden Sie diese Option, wenn das Identifizieren von topologischen Fehlern wichtiger ist als das Beheben von Fehlern. Diese Option wird in einer Editiersitzung nicht unterstützt.
- Die Polygonausgabe enthält zwei neue Felder, die angeben, ob ein Feature einen topologischen Fehler aufweist oder nicht. Die Felder InPoly_FID und SimPlyFlag enthalten die Eingabe-Feature-IDs bzw. die topologischen Fehler.
- Das Feld InPoly_FID verknüpft die zusammengefassten Punkte mit ihren Eingabepolygonen.
- Im Feld SimPlyFlag gibt ein Wert von 1 an, dass ein Fehler aufgetreten ist, während 0 (Null) darauf hinweist, dass keine Fehler vorhanden sind.
- Die Flag-Werte bleiben bestehen, nachdem ein topologischer Fehler behoben wurde. Über das Feld SimPlyFlag können Sie die Features prüfen, die topologische Fehler aufweisen.
- Topologische Fehler auflösen (RESOLVE_ERRORS in Python): repariert topologische Fehler, die durch den Vereinfachungsprozess entstehen. Die Verarbeitungszeit verlängert sich. Diese Option wird in einer Editiersitzung nicht unterstützt.
- Die von Ihnen angegebene Toleranz eignet sich für die meisten Polygone, nicht jedoch für alle, z. B. nicht für Polygone in überladenen Bereichen. Wenn nach dem ersten Vereinfachungsvorgang ein topologischer Fehler festgestellt wird, werden die betroffenen Grenzsegmente (nicht die gesamten Polygone) ermittelt, und eine reduzierte Toleranz wird angewendet,
- und zwar eine um 50% reduzierte Toleranz. Diese neue Toleranz wird verwendet, um diese Segmente weiter zu vereinfachen. Dieser Vorgang wird solange wiederholt, bis keine topologischen Fehler mehr festgestellt werden.
- Die Ausgabe-Polygon-Feature-Class enthält dieselbe Anzahl von Polygonen wie die Eingabe sowie zwei neue Felder (MaxSimpTol und MinSimpTol), in denen die bei der Vereinfachung tatsächlich für die einzelnen Polygone angewendete maximale und minimale Toleranz gespeichert wird. Wenn keine Fehler entstanden sind, entsprechen die Werte in MaxSimpTol und MinSimpTol der angegebenen Vereinfachungstoleranz.
- Ein kleines Polygon, das in der Nachbarschaft eines größeren liegt, kann bei einer relativ hohen Vereinfachungstoleranz nach der Vereinfachung innerhalb des größeren Polygons liegen. Dieser Fehler in der räumlichen Beziehung wird vom Programm nicht erkannt.
- Mit den Optionen NO_CHECK und FLAG_ERRORS wird während des Vereinfachungsvorgangs unter Umständen sich selbst schneidende Geometrie erstellt, die automatisch repariert wird. Wenn ein Polygon sich z. B. selbst schneidet, wird das Polygon repariert. Es wird zu einem Multipart-Polygon, sodass kein Teil einen anderen Teil schneidet, obwohl dies immer noch so aussieht.
Die Punktausgabe wird gefüllt, wenn NO_CHECK oder FLAG_ERRORS verwendet wird oder wenn das Kontrollkästchen Zusammengefasste Punkte beibehalten aktiviert ist. Enthält ein Eingabe-Polygon mehrere Teile und wird ein Teil zu einem zusammengefassten Punkt, wird der diesen Teil repräsentierende Punkt ebenfalls in die Punktausgabe aufgenommen.
Syntax
SimplifyPolygon_cartography (in_features, out_feature_class, algorithm, tolerance, {minimum_area}, {error_option}, {collapsed_point_option})
Parameter | Erläuterung | Datentyp |
in_features | Die zu vereinfachenden Polygon-Features. | Feature Layer |
out_feature_class | Die zu erstellende Ausgabe-Polygon-Feature-Class. | Feature Class |
algorithm | Dadurch wird der Algorithmus für die Polygonvereinfachung festgelegt.
| String |
tolerance | Der Grad der Vereinfachung wird durch die Toleranz bestimmt. Die Toleranz muss angegeben und größer als 0 sein. Sie können eine bevorzugte Einheit auswählen. Standardmäßig wird die Feature-Einheit verwendet.
| Linear unit |
minimum_area (optional) | Festlegung der Mindestfläche für ein beizubehaltendes vereinfachtes Polygon. Der Standardwert ist 0, das heißt, alle Polygone müssen beibehalten werden. Sie können Ihre bevorzugte Einheit für den angegebenen Wert auswählen. Standard ist die Feature-Einheit. | Areal unit |
error_option (optional) | Festlegung, wie (möglicherweise durch den Vorgang entstandene) topologische Fehler, wie z. B. sich schneidende, überlappende oder zusammengefasste Linien mit der Länge 0, behandelt werden.
| String |
collapsed_point_option (optional) | Festlegung, ob während des Vorgangs ermittelte zusammengefasste Polygone mit der Fläche "0" beibehalten werden sollen. Diese Option wird nur berücksichtigt, wenn NO_CHECK oder FLAG_ERRORS angegeben ist.
| Boolean |
Codebeispiel
SimplifyPolygon – Beispiel (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie das Werkzeug "SimplifyPolygon" im unmittelbaren Modus verwenden.
import arcpy
from arcpy import env
import arcpy.cartography as CA
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 das Werkzeug "SimplifyPolygon" verwendet wird.
# Name: SimplifyPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
# Author: ESRI
# Import system modules
import arcpy
from arcpy import env
import arcpy.management as DM
import arcpy.cartography as CA
# Set environment settings
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, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
# Smooth lake polygons.
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "FLAG_ERRORS")
Umgebung
Lizenzierungsinformationen
- ArcGIS for Desktop Basic: Nein
- ArcGIS for Desktop Standard: Ja
- ArcGIS for Desktop Advanced: Ja