Linie vereinfachen (Kartografie)
Zusammenfassung
Vereinfacht Linien durch Entfernen unwesentlicher Biegungen unter Beibehaltung der wesentlichen Form.
Weitere Informationen zur Funktionsweise des Befehls "Linie vereinfachen"
Bild
![]() |
Verwendung
Es gibt zwei Vereinfachungsmethoden:
- Die Methode Point Remove ist schneller, aber weniger verfeinert. Sie entfernt überflüssige Stützpunkte. Verwenden Sie diese Methode für die Datenkomprimierung oder grobere Vereinfachung. Die entstehende Linie weist mit zunehmender Toleranz deutlich mehr Winkel auf, sodass das Ergebnis unter Umständen ästhetisch weniger ansprechend ist als die Eingabe.
- Die Methode Bend Simplify ist langsamer, führt in der Regel jedoch zu Ergebnissen, die die ursprünglichen Features wirklichkeitsgetreuer wiedergeben. Hierbei werden Biegungen entlang einer Linie entfernt. Verwenden Sie diese Methode für eine verfeinerte Vereinfachung.
Der Grad der Vereinfachung wird durch den Wert der Vereinfachungstoleranz bestimmt. Legen Sie für die Toleranz einen Wert fest, der größer oder gleich dem minimal zulässigen Abstand zwischen grafischen Elementen ist. Bei gleicher Toleranz ist das Ergebnis von Point Remove gröber und stärker vereinfacht als das von Bend Simplify.
-
Mit dem Werkzeug werden zwei Ausgabe-Feature-Classes erstellt: eine Line-Feature-Class zum Speichern vereinfachter Linien und eine Point-Feature-Class zum Speichern von Punkten, die alle geschlossenen Linien mit der Länge 0 darstellen. Der Ausgabename und die Position des Punktes werden automatisch aus dem Namen der Ausgabelinie mit dem Suffix _Pnt abgeleitet. Die Ausgabe-Line-Feature-Class enthält alle Felder, die in der Eingabe-Feature-Class vorhanden sind. Die Ausgabe-Point-Feature-Class enthält keines dieser Felder.
-
Es gibt Optionen zum Verarbeiten topologischer Fehler in der Ausgabe:
- Mit dem Parameter Auf topologische Fehler überprüfen werden topologische Fehler identifiziert, die durch den Vereinfachungsprozess entstehen. Wenn die Option aktiviert ist, ist der Parameter Topologische Fehler lösen ebenfalls aktiviert. Durch die Überprüfung auf topologische Fehler kann die Verarbeitungsgeschwindigkeit verlangsamt werden.
- Die Ausgabe-Line-Feature-Class enthält zwei Felder, die angeben, ob ein Feature einen topologischen Fehler aufweist. InLine_FID und SimLnFlag enthalten die Eingabe-Feature-IDs bzw. die topologischen Fehler. Der Wert 1 gibt an, dass ein Fehler aufgetreten ist, der Wert 0 (null) weist darauf hin, dass keine Fehler aufgetreten sind.
- Die Flag-Werte bleiben bestehen, nachdem ein topologischer Fehler behoben wurde. Verwenden Sie das Feld SimLnFlag, um Features zu untersuchen, die topologische Fehler aufweisen.
-
Die Parameter Auf topologische Fehler überprüfen und Topologische Fehler lösen können nicht in einer Editiersitzung verwendet werden. Deaktivieren Sie den Parameter Auf topologische Fehler überprüfen, um das Werkzeug in einer Editiersitzung auszuführen.
Syntax
Parameter | Erläuterung | Datentyp |
in_features |
Die zu vereinfachenden Linien-Features. | Feature Layer |
out_feature_class |
Die zu erstellende Ausgabe-Line-Feature-Class. | Feature Class |
algorithm |
Dadurch wird der Algorithmus für die Linienvereinfachung 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 |
error_resolving_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. Dieser Parameter wird verwendet, wenn 'error_checking_option' auf CHECK festgelegt wurde (Standardwert).
| Boolean |
collapsed_point_option (optional) |
Legt fest, ob während des Vorgangs ermittelte zusammengefasste Linien mit der Länge 0 beibehalten werden. Diese Option wird nur berücksichtigt, wenn NO_CHECK angegeben wurde oder sowohl FLAG_ERRORS als auch CHECK angegeben wurden.
| Boolean |
error_checking_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.
| Boolean |
Codebeispiel
Im folgenden Skript im Python-Fenster wird veranschaulicht, wie Sie das Werkzeug "SimplifyLine" im unmittelbaren Modus verwenden.
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SimplifyLine("roads.shp",
"C:/output/output.gdb/simplified_roads",
"POINT_REMOVE",
20)
Das folgende eigenständige Skript veranschaulicht, wie das Werkzeug "SimplifyLine" verwendet wird.
# Name: SimplifyLine_Example2.py
# Description: Simplify line features from two feature classes, rivers and coastlines,
# while maintaining their connections
# 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
inRiverFeatures = "rivers"
inCoastlineFeatures = "coastlines"
mergedFeatures = "C:/data/PortlandOutput.gdb/merged_lines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/merged_lines_simplified"
tempLayer = "tempLyr"
outRiverFeatureClass = "C:/data/PortlandOutput.gdb/rivers_final"
outCoastlineFeatureClass = "C:/data/PortlandOutput.gdb/coastlines_final"
# Merge rivers and coastlines into one feature class,
# assuming that they have a common f-code field
# with value 40 for rivers and 80 for coastlines.
DM.Merge(inRiverFeatures, inCoastlineFeatures, mergedFeatures)
# Simplify all lines.
CA.SimplifyLine(mergedFeatures,
simplifiedFeatures,
"BEND_SIMPLIFY",
100,
"RESOLVE_ERRORS",
"KEEP_COLLAPSED_POINTS",
"CHECK")
# Select rivers and coastlines by their f-code values
# and put them in separate feature classes.
DM.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 40")
DM.CopyFeatures(tempLayer, outRiverFeatureClass)
DM.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 80")
DM.CopyFeatures(tempLayer, outCoastlineFeatureClass)