Linie glätten (Kartografie)

Zusammenfassung

Glättet spitze Winkel in Linien, um die ästhetische oder kartografische Qualität zu verbessern.

Erfahren Sie mehr zur Funktionsweise der Werkzeuge "Linie glätten" und "Polygon glätten".

Abbildung

Option "Algorithmus" des Werkzeugs "Linie glätten" – Beispiele
Die spitzen Winkel einer Linie können entweder mit der PAEK- oder der Bezier-Interpolationsmethode geglättet werden.

Verwendung

  • Zwei Glättungsmethoden sind verfügbar:

    • Mit der Methode PAEK (Polynomial Approximation with Exponential Kernel, Polynomiale Approximation mit exponentiellem Kernel) (PAEK in Python) werden Linien auf der Grundlage einer Glättungstoleranz geglättet. 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.
    • Bei der Methode Bézier-Interpolation (BEZIER_INTERPOLATION in Python) werden Linien ohne die Verwendung einer Toleranz geglättet. Dabei werden approximierte Bézierkurven erstellt, die den Eingabelinien entsprechen.
  • Verwenden Sie den Parameter Eingabe-Barriere-Layer zum Bestimmen von Features, die nicht von geglätteten Linien gekreuzt werden dürfen. Als Barrieren-Features können Punkte, Linien oder Polygone verwendet werden.

  • Bei Verarbeitung von großen Datasets werden möglicherweise Speicherbeschränkungen überschritten. Erwägen Sie in solchen Fällen, die Eingabedaten partitionsweise zu verarbeiten, indem Sie eine relevante Polygon-Feature-Class in der Umgebungseinstellung Kartografische Partitionen angeben. Die Teile der Daten, die durch Partitionsgrenzen definiert werden, werden sequenziell verarbeitet. Die sich ergebende Feature-Class ist an den Partitionsrändern nahtlos und konsistent. Weitere Informationen erhalten Sie unter Generalisieren von großen Datasets mit Partitionen.

    Vorsicht:

    Die Umgebungseinstellung "Kartografische Partitionen" wird ignoriert, wenn der Parameter Verarbeitung topologischer Fehler auf Nicht auf topologische Fehler überprüfen (error_option = "NO_CHECK" in Python) oder Topologische Fehler kennzeichnen (error_option = "FLAG_ERRORS" in Python) gesetzt wird.

  • Domänen und Subtypes werden auch dann in die Ausgabe kopiert, wenn die Umgebungseinstellung Felddomäne, Subtypes und Attributregeln übertragen deaktiviert ist.

  • Die Ausgabe-Line-Feature-Class ist topologisch korrekt. Alle topologischen Fehler in den Eingabedaten werden in der Ausgabe-Line-Feature-Class gekennzeichnet. Die Ausgabe-Feature-Class umfasst zwei zusätzliche Felder: InLine_FID und SmoLnFlag, die die Eingabe-Feature-IDs bzw. die topologischen Fehler der Eingabe enthalten. Ein SmoLnFlag-Wert von 1 gibt an, dass ein topologischer Fehler vorliegt. Der Wert 0 (Null) gibt an, dass keine Fehler vorhanden sind.

    Vorversion:

    Vor der ArcGIS Pro 2.2-Version dieses Werkzeugs wurde der Parameter Endpunkt für Ringe beibehalten (endpoint_option in Python) verwendet, um anzugeben, ob der Endpunkt eines entstandenen isolierten Polygonrings beibehalten werden soll. Dieser Parameter ist in der Syntax des Werkzeugs für Kompatibilität in Skripten und Modellen nach wie vor enthalten, wird aber nun ignoriert und aus dem Dialogfeld des Werkzeugs ausgeblendet.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die zu glättenden Linien-Features.

Feature Layer
Ausgabe-Feature-Class

Die zu erstellende Ausgabe-Feature-Class.

Feature Class
Glättungsalgorithmus

Gibt den Algorithmus für die Glättung an.

  • PAEK (Polynomial Approximation with Exponential Kernel, Polynomiale Approximation mit exponentiellem Kernel)Dieses Akronym steht für "Polynomial Approximation with Exponential Kernel" (Polynomiale Approximation mit exponentiellem Kernel). Eine geglättete Linie, die nicht durch die Stützpunkte der Eingabelinie verläuft, wird berechnet. Dies ist die Standardeinstellung.
  • Bezier-InterpolationBézierkurven werden zwischen den Stützpunkten angepasst. Die entstehenden Linien verlaufen durch die Stützpunkte der Eingabelinien. Für diesen Algorithmus ist keine Toleranz erforderlich. Bézierkurven werden bei der Ausgabe annähernd berechnet.
String
Glättungstoleranz

Eine vom Algorithmus PAEK (Polynomial Approximation with Exponential Kernel, Polynomiale Approximation mit exponentiellem Kernel) verwendete Toleranz. 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. Dieser Parameter ist nicht verfügbar, wenn der Algorithmus Bézier-Interpolation verwendet wird.

Linear Unit
Endpunkte bei geschlossenen Linien beibehalten
(optional)

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde verwendet, um anzugeben, ob Endpunkte von geschlossenen Linien beibehalten werden. Dieser Parameter ist in der Syntax des Werkzeugs für Kompatibilität in Skripten und Modellen nach wie vor enthalten, wird aber aus dem Dialogfeld des Werkzeugs ausgeblendet.

Gibt an, ob die Endpunkte geschlossener Linien beibehalten werden. Diese Option kann nur mit dem PAEK-Algorithmus verwendet werden.

  • Aktiviert: Der Endpunkt einer geschlossenen Linie wird beibehalten. Dies ist die Standardeinstellung.
  • Deaktiviert: Der Endpunkt einer geschlossenen Linie wird nicht beibehalten. Er wird geglättet.
Boolean
Verarbeitung topologischer Fehler
(optional)

Gibt an, wie (möglicherweise bei der Verarbeitung entstandene) topologische Fehler, z. B. sich schneidende Linien oder Überlappungen, behandelt werden.

  • Nicht auf topologische Fehler überprüfenTopologische Fehler werden nicht erkannt. Dies ist die Standardeinstellung.
  • Topologische Fehler kennzeichnenWenn topologische Fehler gefunden werden, werden diese gekennzeichnet.
  • Topologische Fehler lösenWenn topologische Fehler gefunden werden, werden diese gelöst.
String
Eingabe-Barriere-Layer
(optional)

Eingaben mit Features, die als Barrieren für das Glätten fungieren. Die resultierenden geglätteten Linien berühren oder kreuzen keine Barrieren-Features. Beim Glätten von Konturlinien stellen Sie beispielsweise mit Höhenpunkt-Eingabe-Features als Barrieren sicher, dass die geglätteten Konturlinien nicht über diese Punkte hinweg geglättet werden. Die Ausgabe verletzt die durch die gemessenen Höhenangaben beschriebene Höhe nicht.

Feature Layer

arcpy.cartography.SmoothLine(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})
NameErläuterungDatentyp
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.

  • PAEKDieses Akronym steht für "Polynomial Approximation with Exponential Kernel" (Polynomiale Approximation mit exponentiellem Kernel). Eine geglättete Linie, die nicht durch die Stützpunkte der Eingabelinie verläuft, wird berechnet. Dies ist die Standardeinstellung.
  • BEZIER_INTERPOLATIONBézierkurven werden zwischen den Stützpunkten angepasst. Die entstehenden Linien verlaufen durch die Stützpunkte der Eingabelinien. Für diesen Algorithmus ist keine Toleranz erforderlich. Bézierkurven werden bei der Ausgabe annähernd berechnet.
String
tolerance

Eine vom PAEK-Algorithmus verwendete Toleranz. 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)

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde verwendet, um anzugeben, ob Endpunkte von geschlossenen Linien beibehalten werden. Dieser Parameter ist in der Syntax des Werkzeugs für Kompatibilität in Skripten und Modellen nach wie vor enthalten, wird aber aus dem Dialogfeld des Werkzeugs ausgeblendet.

Gibt an, ob die Endpunkte geschlossener Linien beibehalten werden. Diese Option kann nur mit dem PAEK-Algorithmus verwendet werden.

  • FIXED_CLOSED_ENDPOINTDer Endpunkt einer geschlossene Linie wird beibehalten. Dies ist die Standardeinstellung.
  • NO_FIXEDDer Endpunkt einer geschlossene Linie wird nicht beibehalten. Er wird geglättet.
Boolean
error_option
(optional)

Gibt an, wie (möglicherweise bei der Verarbeitung entstandene) topologische Fehler, z. B. sich schneidende Linien oder Überlappungen, behandelt werden.

  • NO_CHECKTopologische Fehler werden nicht erkannt. Dies ist die Standardeinstellung.
  • FLAG_ERRORSWenn topologische Fehler gefunden werden, werden diese gekennzeichnet.
  • RESOLVE_ERRORSWenn topologische Fehler gefunden werden, werden diese gelöst.
String
in_barriers
[in_barriers,...]
(optional)

Eingaben mit Features, die als Barrieren für das Glätten fungieren. Die resultierenden geglätteten Linien berühren oder kreuzen keine Barrieren-Features. Beim Glätten von Konturlinien stellen Sie beispielsweise mit Höhenpunkt-Eingabe-Features als Barrieren sicher, dass die geglätteten Konturlinien nicht über diese Punkte hinweg geglättet werden. Die Ausgabe verletzt die durch die gemessenen Höhenangaben beschriebene Höhe nicht.

Feature Layer

Codebeispiel

SmoothLine – Beispiel (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion SmoothLine im unmittelbaren Modus verwendet wird.

import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SmoothLine("contours.shp", "C:/output/output.gdb/smoothed_contours", "PAEK", 100)
SmoothLine – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript veranschaulicht, wie die Funktion SmoothLine verwendet wird.

# Name: SmoothLine_Example2.py
# Description: Simplify and then Smooth coastlines

# Import system modules
import arcpy
import arcpy.cartography as CA

# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"

# Set local variables
inCoastlineFeatures = "coastlines"
barriers = "C:/data/Portland.gdb/Structures/buildings"
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", barriers)

# Smooth coastlines.
CA.SmoothLine(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "", 
              "FLAG_ERRORS", barriers)

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen