Zusammenfassung
Glättet spitze Winkel in Umrisslinien von Polygonen, um die ästhetische oder kartografische Qualität zu verbessern.
Abbildung
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 Polygone auf der Grundlage einer Glättungstoleranz geglättet. Ein geglättetes Polygon hat möglicherweise mehr Stützpunkte als das ursprüngliche Polygon. 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 Polygone ohne die Verwendung einer Toleranz geglättet. Dabei werden approximierte Bézierkurven erstellt, die den Eingabe-Polygonen entsprechen.
Verwenden Sie den Parameter Eingabe-Barriere-Layer zum Bestimmen von Features, die nicht von geglätteten Polygonen 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.
Die Ausgabe-Polygon-Feature-Class ist topologisch korrekt. Alle topologischen Fehler in den Eingabedaten werden in der Ausgabe-Polygon-Feature-Class gekennzeichnet. Die Ausgabe-Feature-Class umfasst zwei zusätzliche Felder: InPoly_FID und SmoPgnFlag, die die Eingabe-Feature-IDs bzw. die topologischen Fehler der Eingabe enthalten. Ein SmoPgnFlag-Wert von 1 gibt an, dass ein topologischer Fehler vorliegt. Der Wert 0 (Null) gibt an, dass keine Fehler vorhanden sind.
Syntax
arcpy.cartography.SmoothPolygon(in_features, out_feature_class, algorithm, tolerance, {endpoint_option}, {error_option}, {in_barriers})
Parameter | Erklärung | Datentyp |
in_features | Die zu glättenden Polygon-Features. | Feature Layer |
out_feature_class | Die zu erstellende Ausgabe-Polygon-Feature-Class. | Feature Class |
algorithm | Gibt den Algorithmus für die Glättung an.
| String |
tolerance | Eine vom PAEK-Algorithmus verwendete Toleranz. Die Toleranz muss angegeben und größer als 0 sein. Sie können eine bevorzugte Einheit angeben. Standardmäßig wird die Feature-Einheit verwendet. Beim Verwenden des Glättungs-Algorithmus "Bézier-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 der Endpunkt eines isolierten Polygonrings beibehalten wird. 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 von isolierten Polygonringen beibehalten werden. Diese Option kann nur mit dem PAEK-Algorithmus verwendet werden.
| Boolean |
error_option (optional) | Gibt an, wie (möglicherweise bei der Verarbeitung entstandene) topologische Fehler, z. B. sich schneidende Linien oder Überlappungen, behandelt werden.
| String |
in_barriers [in_barriers,...] (optional) | Eingaben mit Features, die als Barrieren für das Glätten fungieren. Die resultierenden geglätteten Polygone berühren oder kreuzen keine Barrieren-Features. | Feature Layer |
Codebeispiel
SmoothPolygon – Beispiel (Python-Fenster)
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion SmoothPolygon im unmittelbaren Modus verwendet wird.
import arcpy
import arcpy.cartography as CA
arcpy.env.workspace = "C:/data"
CA.SmoothPolygon("soils.shp", "C:/output/output.gdb/smoothed_soils", "PAEK", 100)
SmoothPolygon – Beispiel 2 (eigenständiges Skript)
Das folgende eigenständige Skript veranschaulicht, wie die Funktion SmoothPolygon verwendet wird.
# Name: SmoothPolygon_Example2.py
# Description: Eliminate small islands before simplifying and smoothing lake boundaries
# Import system modules
import arcpy
import arcpy.cartography as CA
import arcpy.management as DM
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"
# Set local variables
inLakeFeatures = "lakes"
barriers = "C:/data/Portland.gdb/Structures/buildings"
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", barriers)
# Smooth lake polygons.
CA.SmoothPolygon(simplifiedFeatures, smoothedFeatures, "PAEK", 100, "",
"FLAG_ERRORS", barriers)
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Ja
- Advanced: Ja