Zusammenfassung
Hiermit wird ein Polygon durch Entfernen unwesentlicher Biegungen vereinfacht, behält aber die wesentliche Form bei.
Abbildung
Verwendung
Es gibt zwei Vereinfachungsmethoden:
- POINT_REMOVE ist der schneller der beiden Algorithmen. Sie entfernt überflüssige Stützpunkte. Verwenden Sie diese Methode für die Datenkomprimierung oder eine 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 so ästhetisch aussieht wie die Eingabe.
- Die Methode "BEND_SIMPLIFY" ist langsamer, erzeugt jedoch Ergebnisse, die dem Original ähnlicher sind und außerdem ästhetisch ansprechender sind. Bei dieser Methode werden unbedeutende Biegungen an den Umrisslinien des Polygons entfernt. Verwenden Sie diese Methode für eine verfeinerte Vereinfachung.
Der Parameter Mindestfläche gilt nur für vereinfachte Polygone. Polygone, die nach dem Vereinfachungsprozess kleiner als die Mindestflä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 (error_option = '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. Dies ist die Standardeinstellung.
- Fehler kennzeichnen (error_option = 'FLAG_ERRORS' in Python): das Ergebnis des Vereinfachungsprozesses wird auf topologische Fehler überprüft und 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 lösen (error_option = 'RESOLVE_ERRORS' in Python): behebt topologische Fehler, die durch den Vereinfachungsprozess entstehen. Die Bearbeitung nimmt mehr Zeit in Anspruch. Diese Option wird in einer Editiersitzung nicht unterstützt.
- Die 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.
- Es wird eine neue um 50 % geringere Toleranz 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. Sie enthält 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.
- 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 bzw. das Kontrollkästchen Zusammengefasste Punkte beibehalten aktiviert ist. Enthält ein Eingabe-Polygon mehrere Teile und wird ein Teil zu einem zusammengefassten Punkt, wird das diesen Teil repräsentierende Punkt-Feature 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 einer Fläche von Null als Punkte beibehalten werden sollen. Diese Option wird nur berücksichtigt, wenn NO_CHECK oder FLAG_ERRORS angegeben wurde.
| Boolean |
Codebeispiel
SimplifyPolygon – Beispiel (Python-Fenster)
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie das Werkzeug "Polygon vereinfachen" 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 "Polygon vereinfachen" 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")
Umgebungen
Lizenzinformationen
- ArcGIS Desktop Basic: Nein
- ArcGIS Desktop Standard: Ja
- ArcGIS Desktop Advanced: Ja