Linie oder Polygon vereinfachen (Coverage)
Zusammenfassung
Mit diesem Werkzeug wird eine Linie oder Polygongrenze vereinfacht, indem kleine Fluktuationen oder Ausbuchtungen unter Beibehaltung der wesentlichen Form entfernt werden.
Weitere Informationen zur Funktionsweise von "Linie oder Polygon vereinfachen"
Bild
Verwendung
-
Wenn das Eingabe-Coverage bereits überschneidende Linien enthält oder wenn Sie ein schnelles Ergebnis möchten ohne Rücksicht auf topologische Fehler im Ausgabe-Coverage, verwenden Sie die Standardoption, d. h. führen Sie keine Prüfung auf topologische Fehler aus. Beim Vereinfachungsvorgang entstehende topologische Fehler werden dann nicht überprüft und korrigiert. Wenn das Eingabe-Coverage überschneidende Linien enthält und Sie die Option "Auf topologische Fehler überprüfen" wählen, ist die Validierung der Eingabedaten nicht erfolgreich und das Programm wird mit der folgenden Meldung beendet: "Überschneidende Linien im in_cover gefunden. Das Programm wird beendet."
-
Wenn das Eingabe-Coverage keine überschneidenden Linien enthält, verwenden Sie die Option "Auf topologische Fehler überprüfen", um während des Vereinfachungsvorgangs generierte Fehler zu finden und zu vermeiden. Werden topologische Fehler festgestellt, werden die betroffenen Arcs mit einer reduzierten Toleranz neu generalisiert. Anschließend wird das Ergebnis erneut auf Fehler überprüft. Dieser Vorgang wird so oft wiederholt, bis keine Fehler mehr festgestellt werden. Mit dieser Option dauert die Programmausführung sehr viel länger als mit der Standardoption.
-
Wenn keine Datei "input_coverage.AAT" vorhanden ist, enthält die "output_coverage.AAT" ein zusätzliches Feld TOLFLAG, in dem die für jeden Arc verwendete Toleranz in Dezimalzahlen gespeichert ist. Toleranzen, die kleiner sind als die Vereinfachungstoleranz, kennzeichnen Arcs, die zum Vermeiden topologischer Fehler nicht ausreichend vereinfacht wurden.
-
Wenn für das Eingabe-Coverage eine Polygon-Topologie vorhanden ist, wird diese im Ausgabe-Coverage nicht beibehalten. Die PAT des Coverage bleibt jedoch erhalten. Die Polygon-Topologie muss mit "Topologie erstellen" (Build) neu erstellt werden. Vorhandene Labels bleiben erhalten. Label, die sich nach der Vereinfachung außerhalb der Polygongrenze befinden, werden so verschoben, dass sie gerade noch innerhalb des nächstgelegenen Liniensegments der Polygongrenze liegen.
-
Wenn das Eingabe-Coverage Regions enthält, werden diese Regions im Ausgabe-Coverage zu vorläufigen Regions. Wenn Sie mit Topologie erstellen (Build) die Polygon-Topologie neu erstellen, wird auch die Region-Topologie neu erstellt.
-
Die Koordinatengenauigkeit des Ausgabe-Coverages wird durch die aktuelle Verarbeitungsregel entsprechend der Umgebungseinstellung Genauigkeit für abgeleitete Coverages festgelegt. Wenn die Verarbeitungsregel noch nicht festgelegt wurde, hat das Ausgabe-Coverage dieselbe Genauigkeit wie das Eingabe-Coverage.
Syntax
Parameter | Erläuterung | Datentyp |
in_cover |
Das Coverage, das die zu vereinfachenden Arcs oder Polygone enthält. | Coverage |
out_cover |
Das zu erstellende Coverage. Der Name des Ausgabe-Coverages muss sich vom Namen des Eingabe-Coverages unterscheiden. | Coverage |
simplification_tolerance |
Legt die Toleranz in Coverage-Einheiten fest. Die Toleranz muss angegeben werden und größer als 0 sein. | Double |
simplification_operator (optional) |
Gibt den Vereinfachungsoperator an.
| String |
ErrorCheck (optional) |
Gibt an, ob das Ergebnis auf topologische Fehler überprüft werden soll. Dazu gehören Linienüberschneidungen, Linienüberlappungen, Linien mit einer Länge von 0, zusammengefallene Polygone und Löcher außerhalb von Polygonen.
| Boolean |
Codebeispiel
Das folgende eigenständige Skript veranschaulicht, wie das Coverage "Lake" vereinfacht wird.
# Name: SimplifyLineOrPolygon_Example.py
# Description: Simplifies a lake coverage
# Requirements: ArcInfo Workstation
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inCover = "lakeshore"
outCover = "C:/output/cartolake"
simplificationTolerance = 110
simplificationOperator = "BEND_SIMPLIFY"
# Execute SimplifyLineOrPolygon
arcpy.SimplifyLineOrPolygon_arc(inCover, outCover, simplificationTolerance,
simplificationOperator, "")