Gemeinsame Kanten vereinfachen (Cartography)

Zusammenfassung

Vereinfacht die Kanten von Eingabe-Features, wobei die topologische Beziehung mit den gemeinsamen Kanten von anderen Features beibehalten wird.

Abbildung

Beispiel für das Werkzeug "Gemeinsame Kanten vereinfachen"
Bei Eingabe 1 und Eingabe 2 wurden alle Kanten vereinfacht. Beim Polygon mit einer gemeinsamen Kante und bei der Linie mit einer gemeinsamen Kante wurden nur die mit Eingabe 1 und Eingabe 2 gemeinsamen Kanten vereinfacht.

Verwendung

  • Dieses Werkzeug stellt unterschiedliche Vereinfachungsalgorithmen für verschiedene Zwecke bereit. Weitere Informationen zu diesen Algorithmen finden Sie unter Funktionsweise von "Linie vereinfachen" und "Polygon vereinfachen".

    • Der Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) (algorithm='POINT_REMOVE' in Python) identifiziert und entfernt relativ überflüssige Stützpunkte, um die Daten für die Anzeige in kleineren Maßstäben zu vereinfachen. Er ist der schnellste der Vereinfachungsalgorithmen in diesem Werkzeug. Er wird häufig zur Datenkomprimierung oder für eine grobere Vereinfachung verwendet. Die entstehenden Linien weisen mit zunehmender Toleranz deutlich mehr Winkel auf. Dieser Algorithmus basiert auf dem Douglas-Peucker-Algorithmus: Douglas, David and Peucker, Thomas, "Algorithms for the reduction of the number of points required to represent a digitized line or its caricature," The Canadian Cartographer. 10(2), 112–22 (1973).
    • Der Algorithmus Kritische Biegungen beibehalten (Wang-Müller) (algorithm='BEND_SIMPLIFY' in Python) identifiziert und entfernt relativ unbedeutende Biegungen, um die Daten für die Anzeige in kleineren Maßstäben zu vereinfachen. Er gibt die Eingabe-Geometrie in der Regel wirklichkeitsgetreuer wieder als der Algorithmus Kritische Punkte beibehalten (Douglas-Peucker), kann jedoch mehr Zeit für die Bearbeitung in Anspruch nehmen. Dieser Algorithmus basiert auf dem in Wang, Zeshen and Müller, Jean-Claude, "Line Generalization Based on Analysis of Shape Characteristics," Cartography and Geographic Information Systems 25(1), 3–15 (1998) definierten Algorithmus.
    • Der Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) (algorithm='WEIGHTED_AREA' in Python) identifiziert zuerst Dreiecke einer effektiven Fläche für jeden Stützpunkt. Anschließend erfolgt anhand mehrerer Kennwerte eine Gewichtung der ermittelten Dreiecke nach Flachheit, Schiefe und Krümmung der jeweiligen Fläche. Die gewichteten Flächen bestimmen die Entfernung ihrer entsprechenden Stützpunkte, um die Linie zu vereinfachen, während so viele Eigenschaften wie möglich beibehalten werden. Dieser Algorithmus basiert auf dem Algorithmus, der in Zhou, Sheng und Jones, Christopher B., (2005) "Shape-Aware Line Generalisation with Weighted Effective Area" in Fisher, Peter F. (Hrsg.), Developments in Spatial Handling 11th International Symposium on Spatial Handling, 369–80, definiert wurde.
    • Der Algorithmus Effektive Flächen beibehalten (Visvalingam-Whyatt) (algorithm='EFFECTIVE_AREA' in Python) identifiziert Dreiecke der effektiven Fläche für jeden Stützpunkt, um das Entfernen von Stützpunkten zu steuern und die Linie zu vereinfachen, während möglichst viele Eigenschaften beibehalten werden. Dieser Algorithmus basiert auf dem Algorithmus, der in Visvalingam, M. und Whyatt, J. D., "Line Generalisation by Repeated Elimination of the Smallest Area", Cartographic Information Systems Research Group (CISRG) Discussion Paper 10, University of Hull (1992), definiert wurde.

  • Mit diesem Werkzeug werden die Parameter Eingabe-Features und Features mit gemeinsamer Kante geändert. Es wird keine neue Ausgabe erzeugt.

  • Die Vereinfachung wird auf alle Kanten von Eingabe-Features und nur auf die Kanten von Features mit gemeinsamer Kante, die eine gemeinsame Kante mit Eingabe-Features haben, angewendet. Die Kanten von Features mit gemeinsamer Kante, die keine gemeinsame Kante mit mindestens einer Kante von Eingabe-Features haben, werden nicht vereinfacht.

Syntax

arcpy.cartography.SimplifySharedEdges(in_features, algorithm, tolerance, {shared_edge_features}, {minimum_area}, {in_barriers})
ParameterErklärungDatentyp
in_features
[in_features,...]

Die Linien oder Polygone, die vereinfacht werden sollen.

Feature Layer
algorithm

Legt den Vereinfachungsalgorithmus fest.

  • POINT_REMOVEBehält die kritischen Punkte bei, die die wesentliche Form eines Polygon-Umrisses beibehalten. Alle anderen Punkte werden entfernt (Douglas-Peucker). Dies ist die Standardeinstellung.
  • BEND_SIMPLIFY Behält die kritischen Biegungen bei und entfernt unwesentliche Biegungen von einer Linie (Wang-Müller).
  • WEIGHTED_AREABehält Stützpunkte bei, die Dreiecke der effektiven Fläche bilden und nach Dreiecksform gewichtet wurden (Zhou-Jones).
  • EFFECTIVE_AREA Behält Stützpunkte bei, die Dreiecke der effektiven Fläche bilden (Visvalingam-Whyatt).
String
tolerance

Bestimmt den Grad der Vereinfachung. Wenn keine Einheit angegeben wurde, werden die Eingabeeinheiten verwendet.

  • Beim Algorithmus POINT_REMOVE ist die Toleranz der maximal zulässige senkrechte Abstand zwischen jedem Stützpunkt und der neu erstellten Linie.
  • Beim Algorithmus BEND_SIMPLIFY ist die Toleranz der Durchmesser eines Kreises, der sich einer signifikanten Biegung annähert.
  • Beim Algorithmus WEIGHTED_AREA ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird. Je weiter die Form von dem eines gleichseitigen Dreiecks abweicht, desto höher ist die zugewiesene Gewichtung und desto geringer die Wahrscheinlichkeit, dass es entfernt wird.
  • Beim Algorithmus EFFECTIVE_AREA ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird.
Linear Unit
shared_edge_features
[shared_edge_features,...]
(optional)

Linien- oder Polygon-Features, die entlang der gemeinsamen Kanten mit Eingabe-Features vereinfacht werden. Andere Kanten werden nicht vereinfacht.

Feature Layer
minimum_area
(optional)

Die Mindestfläche für ein beizubehaltendes Polygon. Der Standardwert ist 0. Bei diesem Wert werden alle Polygone beibehalten. Es kann eine Einheit angegeben werden. Falls dies nicht geschieht, wird die Eingabeeinheit verwendet. Dieser Parameter ist nur verfügbar, wenn es sich bei mindestens einer Eingabe um eine Polygon-Feature-Class handelt.

Areal Unit
in_barriers
[in_barriers,...]
(optional)

Punkt-, Linien- oder Polygon-Features, die als Barrieren für die Vereinfachung dienen. Die vereinfachten Features berühren oder kreuzen keine Barrieren-Features.

Feature Layer

Abgeleitete Ausgabe

NameErklärungDatentyp
out_feature_class

Die geglätteten Eingabe-Features.

Feature-Layer
out_shared_edge_feature_class

Die Features mit gemeinsamer Kante.

Feature-Layer

Codebeispiel

SimplifySharedEdges – Beispiel (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie das Werkzeug SimplifySharedEdges im unmittelbaren Modus verwendet wird:

import arcpy
arcpy.env.workspace = "C:/data/LandUse.gdb"
arcpy.SimplifySharedEdges_cartography
arcpy.SimplifySharedEdges_cartography("Water;Parks;", 
                                      "POINT_REMOVE", 
                                      "10 Meters", 
                                      "Commercial;Highways;Buildings", 
                                      "0 SquareMeters")
SimplifySharedEdges – Beispiel (eigenständiges Skript)

Dieses eigenständige Skript stellt ein Beispiel für die Verwendung des Werkzeugs SimplifySharedEdges dar.

# Name: SimplifySharedEdges_standalone_script.py
# Description: Simplifies input features while maintaining topological 
#              relationships along shared edges. For features included as 
#              shared_edge_features (4th argument of 
#              SimplifySharedEdges_cartography()) only the edges that are shared 
#              with in_features (1st argument) are simplified. 

# Import system modules
import arcpy

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

# Set local variables
in_features = "Water;Parks"
algorithm = "POINT_REMOVE"
tolerance = "10 Meters"
shared_edge_features = "Commercial;Highways;Buildings"
minimum_area = "0 SquareMeters"
barriers = None

# Execute Simplify Shared Edges
arcpy.SimplifySharedEdges_cartography(in_features, algorithm, tolerance, 
                                      shared_edge_features, minimum_area, 
                                      barriers)

Lizenzinformationen

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

Verwandte Themen