Polygon vereinfachen (Kartografie)
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 POINT_REMOVE ist die schnellere der beiden. Mit ihr werden überflüssige Stützpunkte entfernt. 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 BEND_SIMPLIFY ist langsamer, aber erzeugt 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:
- NO_CHECK: Topologische Fehler, die beim Vereinfachungsprozess entstanden sind, werden nicht geprüft. Die Verarbeitung ist schneller. Verwenden Sie diese Option nur, wenn Sie der topologischen Genauigkeit der Daten trauen.
- FLAG_ERRORS: Beim Vereinfachungsvorgang entstehende topologische Fehler werden markiert. 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 entfernt wurde. Über das Feld SimPlyFlag können Sie die Features prüfen, die topologische Fehler aufweisen.
- RESOLVE_ERRORS: Beim Vereinfachungsvorgang entstandene topologische Fehler werden repariert. 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
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 Null 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 Null, 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 Null, 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
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)
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")