Linie glätten (Kartografie)
Zusammenfassung
Glättet spitze Winkel in Linien, um die ästhetische oder kartografische Qualität zu verbessern.
Bild
Verwendung
-
Sie können aus zwei Glättungsmethoden wählen:
- Die Methode PAEK (Polynomial Approximation with Exponential Kernel, Polynomiale Approximation mit exponentiellem Kernel) glättet Linien auf der Grundlage einer Glättungstoleranz. Eine geglättete Linie weist möglicherweise mehr Stützpunkte als die ursprüngliche Linie auf. Der Parameter Glättungstoleranz steuert die Länge eines "gleitenden" Pfades, der bei der Berechnung neuer Stützpunkte verwendet wird. Je geringer die Länge, desto mehr Details bleiben erhalten und desto länger ist die Verarbeitungszeit.
- Die BEZIER_INTERPOLATION-Methode glättet Linien ohne Verwendung einer Toleranz durch das Erstellen von Bézierkurven, die den Eingabelinien entsprechen. Wenn die Ausgabe ein Shapefile ist, werden die Bézierkurven approximiert, da in Shapefiles keine echten Bézierkurven gespeichert werden können.
-
Die Glättung verursacht möglicherweise topologische Fehler wie Linienüberschneidungen. Verwenden Sie für den Parameter Verarbeitung topologischer Fehler die Option FLAG_ERRORS, um diese Fehler zu identifizieren. Die Felder "InLine_FID" und "SmoLnFlag" für die Eingabe-Feature-IDs und topologische Fehler werden hinzugefügt. Der Wert 1 im Feld "SmoLnFlag" zeigt einen Topologiefehler an. 0 (null) bedeutet, dass kein Fehler aufgetreten ist. Das Feld "InLineFID" verknüpft die Ausgabelinien mit ihren Eingabelinien. Die Option FLAG_ERRORS kann nicht innerhalb einer Editiersitzung verwendet werden.
-
Während des Glättungsvorgangs erstellte ungültige (sich selbst schneidende) Geometrie wird repariert, aber nicht verbessert. Wenn sich z. B. eine Linie selbst schneidet, wird sie zu einer Multipart-Linie, sieht aber nach wie vor wie eine sich selbst schneidende Linie aus.
Syntax
Parameter | Erläuterung | Datentyp |
in_features |
Die zu glättenden Linien-Features. | Feature Layer |
out_feature_class |
Die zu erstellende Ausgabe-Feature-Class. | Feature Class |
algorithm |
Gibt den Algorithmus für die Glättung an.
| String |
tolerance |
Legt die vom PAEK-Algorithmus verwendete Toleranz fest. 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. Beim Verwenden des Glättungs-Algorithmus BEZIER_INTERPOLATION müssen Sie eine 0 als Platzhalter eingeben. | Linear unit |
endpoint_option (optional) |
Legt fest, ob die Endpunkte für geschlossene Linien beibehalten werden. Diese Option kann nur mit dem PAEK-Algorithmus verwendet werden.
| Boolean |
error_option (optional) |
Festlegung, wie (möglicherweise durch den Vorgang entstandene) topologische Fehler, wie z. B. sich schneidende Linien, behandelt werden.
| String |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie Sie das Werkzeug "SmoothLine" im unmittelbaren Modus verwenden.
import arcpy
from arcpy import env
import arcpy.cartography as CA
env.workspace = "C:/data"
CA.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
Das folgende eigenständige Skript veranschaulicht, wie das Werkzeug "SmoothLine" verwendet wird.
# Name: SmoothLine_Example2.py
# Description: Simplify and then Smooth coastlines
# Import system modules
import arcpy
from arcpy import env
import arcpy.cartography as CA
# Set environment settings
env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inCoastlineFeatures = "coastlines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/coastlines_simplified"
smoothedFeatures = "C:/data/PortlandOutput.gdb/coastlines_smoothed"
# Simplify coastlines.
CA.SimplifyLine(inCoastlineFeatures, simplifiedFeatures, "POINT_REMOVE", 50, "RESOLVE_ERRORS", "KEEP_COLLAPSED_POINTS", "CHECK")
# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", "FLAG_ERRORS")