Linie vereinfachen (Kartografie)

Zusammenfassung

Hiermit werden Linien durch Entfernen relativ unwesentlicher Stützpunkte vereinfacht, behalten aber die wesentliche Form bei.

Abbildung

Abbildung des Werkzeugs "Linie vereinfachen"
: Zum Vergleich sind hier Beispielergebnisse der Vereinfachungsalgorithmen dargestellt.

Verwendung

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

    Die Optionen für den Parameter Vereinfachungsalgorithmus sind unten aufgeführt.

    • Der Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) ("POINT_REMOVE" in Python) identifiziert und entfernt relativ redundante Stützpunkte, um die Daten für die Darstellung in kleineren Maßstäben zu vereinfachen. Er ist die schnellste Option des Vereinfachungsalgorithmus in diesem Werkzeug. Diese Option wird häufig zur Datenkomprimierung oder für eine grobere Vereinfachung verwendet. Die entstehenden Linien weisen mit zunehmender Toleranz deutlich mehr Winkel auf.
    • Der Algorithmus Kritische Biegungen beibehalten (Wang-Müller) ("BEND_SIMPLIFY" in Python) identifiziert und entfernt relativ unbedeutende Biegungen, um die Daten für die Darstellung 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.
    • Der Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) ("WEIGHTED_AREA" in Python) identifiziert 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.
    • Der Algorithmus Effektive Flächen beibehalten (Visvalingam-Whyatt) ("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.

  • Der Grad der Vereinfachung wird durch den Wert des Parameters Vereinfachungstoleranz bestimmt. Je größer die Toleranz, desto grober ist die resultierende Geometrie. Kleinere Toleranzen erzeugen eine Geometrie, die die Eingabe genauer wiedergibt. Die Felder MinSimpTol und MaxSimpTol werden der Ausgabe hinzugefügt, in denen die verwendete Toleranz gespeichert wird.

    Vorversion:

    Außerdem haben Versionen des Werkzeugs vor ArcGIS Pro 1.4 im Verlauf der Topologieauflösung Toleranzen pro Feature geändert und diese Werte in den Feldern MinSimpTol und MaxSimpTol gespeichert. In der aktuellen Implementierung sind nun die Werte in diesen Feldern identisch mit und gleich der Toleranz, die im Parameter Vereinfachungstoleranz angegeben wird. Passen Sie vorhandene Modelle und Skripte an, die auf diesen Feldern basieren.

    • Beim Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) ist die Toleranz der maximal zulässige senkrechte Abstand zwischen jedem Stützpunkt und der neu erstellten Linie.
    • Beim Algorithmus Kritische Biegungen beibehalten (Wang-Müller) ist die Toleranz der Durchmesser eines Kreises, der sich einer signifikanten Biegung annähert.
    • Beim Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) 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 Effektive Flächen beibehalten (Visvalingam-Whyatt) ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird.

  • Verwenden Sie den Parameter Zusammengefasste Punkte beibehalten, um eine Ausgabe-Point-Feature-Class zum Speichern der Endpunkte von Linien zu erstellen, die kleiner sind als die räumliche Toleranz der Daten. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie der Parameterwert Ausgabe-Feature-Class, jedoch mit einem _Pnt-Suffix. Die Ausgabe-Line-Feature-Class enthält alle Felder aus der Eingabe-Feature-Class. Die Ausgabe-Point-Feature-Class enthält keines dieser Felder.

  • Bei der Vereinfachung der Geometrie können topologische Fehler wie Schnittpunkte mit sich selbst und Überlappungen zwischen Features entstehen. Der Parameter Verarbeitung topologischer Fehler hat drei Optionen für diese Fälle:

    • Nicht auf topologische Fehler überprüfen: Topologische Fehler werden nicht ermittelt. Die Verarbeitung ist schneller. Verwenden Sie diese Option, wenn Sie der topologischen Genauigkeit der Daten vertrauen.
    • Topologische Fehler kennzeichnen: Topologische Fehler werden ermittelt und gekennzeichnet. Die Ausgabe-Feature-Class enthält die Felder InLine_FID und SimLnFlag. Das Feld InLine_FID enthält die IDs der Eingabe-Features. Das Feld SimLnFlag enthält den Wert 1, wenn ein topologischer Fehler vorliegt, oder den Wert 0 (Null), wenn kein Fehler vorhanden ist.
    • Topologische Fehler lösen: Topologische Fehler werden nicht in der Ausgabe erzeugt, und bei Fehlern in der Eingabe werden an den Schnittpunkten Stützpunkte eingefügt. Vorhandene topologische Beziehungen zwischen Features wie gemeinsame Kanten werden beibehalten. Die Bearbeitung nimmt mehr Zeit in Anspruch. Die Ausgabe-Feature-Class enthält die Felder InLine_FID und SimLnFlag. Das Feld InLine_FID enthält die ID des Eingabe-Features. Das Feld SimLnFlag enthält den Wert 1, wenn die Eingabe einen topologischen Fehler aufweist, oder den Wert 0 (null), wenn kein Fehler vorhanden ist.
    Vorversion:

    Vor ArcGIS Pro 1.4 wurden topologische Fehler mit den Parametern Auf topologische Fehler überprüfen und Topologische Fehler lösen behandelt. Diese Parameter sind aus Gründen der Kompatibilität in Skripten und Modellen nach wie vor in der Syntax des Werkzeugs enthalten, werden aber jetzt ignoriert und aus dem Bereich Geoverarbeitung ausgeblendet. Das Feld SimLnFlag wurde verwendet, um topologische Fehler zu kennzeichnen, die vom Werkzeug bei der Verarbeitung verursacht wurden. In diesem Feld werden die in der Eingabe vorhandenen Fehler identifiziert.

  • Verwenden Sie den Parameter Eingabe-Barriere-Layer zum Identifizieren von Features, die nicht von vereinfachten Linien gekreuzt werden dürfen. Als Barrieren-Features können Punkte, Linien oder Polygone verwendet werden.

  • Domänen und Subtypes werden auch dann in die Ausgabe kopiert, wenn die Umgebungseinstellung Geodatabase-Feldeigenschaften übertragen deaktiviert ist.

  • Bei Verarbeitung von großen Datasets werden möglicherweise Speicherbeschränkungen überschritten. Erwägen Sie in diesem Fall, 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 oder Topologische Fehler kennzeichnen gesetzt wird.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die Eingabe-Linien-Features, die vereinfacht werden sollen.

Feature Layer
Ausgabe-Feature-Class

Die vereinfachte Ausgabe-Line-Feature-Class. Sie enthält alle Felder der Eingabe-Feature-Class. Die Ausgabe-Line-Feature-Class ist topologisch korrekt. Das Werkzeug verursacht keine Topologiefehler, topologische Fehler in den Eingabedaten werden jedoch in der Ausgabe-Line-Feature-Class gekennzeichnet. Die Ausgabe-Feature-Class enthält die Felder InLine_FID und SimLnFlag, die die Eingabe-Feature-IDs bzw. die topologischen Eingabefehler enthalten. Ein SimLnFlag-Wert von 1 gibt an, dass ein topologischer Fehler bei der Eingabe vorliegt. Ein Wert von 0 (Null) gibt an, dass kein Eingabefehler vorhanden ist.

Feature Class
Vereinfachungsalgorithmus

Gibt den zu verwendenden Linienvereinfachungsalgorithmus an.

  • Kritische Punkte beibehalten (Douglas-Peucker)Kritische Punkte, die die wesentliche Form einer Linie bewahren, werden beibehalten. Alle anderen Punkte werden entfernt (Douglas-Peucker). Dies ist die Standardeinstellung.
  • Kritische Biegungen beibehalten (Wang-Müller)Kritische Biegungen werden beibehalten, und unwesentliche Biegungen werden aus der Linie entfernt (Wang-Müller).
  • Gewichtete effektive Flächen beibehalten (Zhou-Jones)Stützpunkte, die Dreiecke einer effektiven Fläche bilden und nach Dreiecksform gewichtet wurden (Zhou-Jones), werden beibehalten.
  • Effektive Flächen beibehalten (Visvalingam-Whyatt)Stützpunkte, die Dreiecke einer effektiven Fläche bilden, werden beibehalten (Visvalingam-Whyatt).
String
Vereinfachungstoleranz

Der zu verwendende Vereinfachungsgrad. Sie können eine bevorzugte Einheit auswählen. Anderenfalls werden die Einheiten der Eingabe verwendet. Die Felder MinSimpTol und MaxSimpTol werden der Ausgabe hinzugefügt, um die Toleranz zu speichern, die bei der Verarbeitung angewendet wurde.

  • Beim Algorithmus Kritische Punkte beibehalten (Douglas-Peucker) ist die Toleranz der maximal zulässige senkrechte Abstand zwischen jedem Stützpunkt und der neu erstellten Linie.
  • Beim Algorithmus Kritische Biegungen beibehalten (Wang-Müller) ist die Toleranz der Durchmesser eines Kreises, der sich einer signifikanten Biegung annähert.
  • Beim Algorithmus Gewichtete effektive Flächen beibehalten (Zhou-Jones) 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 Effektive Flächen beibehalten (Visvalingam-Whyatt) ist das Quadrat der Toleranz die Fläche eines signifikanten Dreieckes, das von drei aneinander grenzenden Stützpunkten definiert wird.
Linear Unit
Topologische Fehler lösen
(optional)
Vorversion:

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde früher verwendet, um zu anzugeben, wie topologische Fehler, die möglicherweise bei der Verarbeitung verursacht wurden, gelöst werden. Dieser Parameter ist aus Gründen der Kompatibilität in Skripten und Modellen nach wie vor in der Syntax des Werkzeugs enthalten, wird aber im Bereich Geoverarbeitung ausgeblendet.

Boolean
Zusammengefasste Punkte beibehalten
(optional)

Gibt an, ob eine Ausgabe-Point-Feature-Class zum Speichern der Endpunkte aller Linien erstellt wird, die kleiner als die räumliche Toleranz sind. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie der Parameterwert Ausgabe-Feature-Class, jedoch mit einem _Pnt-Suffix.

  • Aktiviert: Eine abgeleitete Ausgabe-Point-Feature-Class wird erstellt, um die Endpunkte zusammengefasster Linien mit der Länge 0 zu speichern. Dies ist die Standardeinstellung.
  • Deaktiviert: Eine abgeleitete Ausgabe-Point-Feature-Class wird nicht erstellt.
Boolean
Auf topologische Fehler überprüfen
(optional)
Hinweis:

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde früher verwendet, um zu anzugeben, wie topologische Fehler, die möglicherweise bei der Verarbeitung verursacht wurden, behandelt werden. Dieser Parameter ist aus Gründen der Kompatibilität in Skripten und Modellen nach wie vor in der Syntax des Werkzeugs enthalten, wird aber im Bereich Geoverarbeitung ausgeblendet.

Boolean
Eingabe-Barriere-Layer
(optional)

Eingaben, die Features enthalten, die als Barrieren für die Vereinfachung fungieren. Resultierende vereinfachte Linien berühren oder kreuzen keine Barrieren-Features. Beim Vereinfachen von Konturlinien stellen Höhenpunkte-Eingabe-Features als Barrieren beispielsweise sicher, dass die vereinfachten Konturlinien nicht über diese Punkte hinweg vereinfacht werden. Die Ausgabe verletzt die durch die gemessenen Höhenangaben beschriebene Höhe nicht.

Feature Layer
Verarbeitung topologischer Fehler
(optional)

Gibt an, wie topologische Fehler behandelt werden sollen. Topologische Fehler können während des Vereinfachungsprozesses auftreten, wie z. B. sich kreuzende oder überlappende Linien.

  • Nicht auf topologische Fehler überprüfenTopologische Fehler werden nicht erkannt. Dies ist die Standardeinstellung.
  • Topologische Fehler kennzeichnenTopologische Fehler werden gekennzeichnet.
  • Topologische Fehler lösenTopologische Fehler werden gelöst.
String

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Zu Länge 0 zusammengefasste Linien

Wenn der Parameter Zusammengefasste Punkte beibehalten verwendet wird, wird eine Ausgabe-Point-Feature-Class zum Speichern der Endpunkte von Linien erstellt, die kleiner sind als die räumliche Toleranz der Daten.

Feature Class

arcpy.cartography.SimplifyLine(in_features, out_feature_class, algorithm, tolerance, {error_resolving_option}, {collapsed_point_option}, {error_checking_option}, {in_barriers}, {error_option})
NameErläuterungDatentyp
in_features

Die Eingabe-Linien-Features, die vereinfacht werden sollen.

Feature Layer
out_feature_class

Die vereinfachte Ausgabe-Line-Feature-Class. Sie enthält alle Felder der Eingabe-Feature-Class. Die Ausgabe-Line-Feature-Class ist topologisch korrekt. Das Werkzeug verursacht keine Topologiefehler, topologische Fehler in den Eingabedaten werden jedoch in der Ausgabe-Line-Feature-Class gekennzeichnet. Die Ausgabe-Feature-Class enthält die Felder InLine_FID und SimLnFlag, die die Eingabe-Feature-IDs bzw. die topologischen Eingabefehler enthalten. Ein SimLnFlag-Wert von 1 gibt an, dass ein topologischer Fehler bei der Eingabe vorliegt. Ein Wert von 0 (Null) gibt an, dass kein Eingabefehler vorhanden ist.

Feature Class
algorithm

Gibt den zu verwendenden Linienvereinfachungsalgorithmus an.

  • POINT_REMOVEKritische Punkte, die die wesentliche Form einer Linie bewahren, werden beibehalten. Alle anderen Punkte werden entfernt (Douglas-Peucker). Dies ist die Standardeinstellung.
  • BEND_SIMPLIFYKritische Biegungen werden beibehalten, und unwesentliche Biegungen werden aus der Linie entfernt (Wang-Müller).
  • WEIGHTED_AREAStützpunkte, die Dreiecke einer effektiven Fläche bilden und nach Dreiecksform gewichtet wurden (Zhou-Jones), werden beibehalten.
  • EFFECTIVE_AREAStützpunkte, die Dreiecke einer effektiven Fläche bilden, werden beibehalten (Visvalingam-Whyatt).
String
tolerance

Der zu verwendende Vereinfachungsgrad. Sie können eine bevorzugte Einheit auswählen. Anderenfalls werden die Einheiten der Eingabe verwendet. Die Felder MinSimpTol und MaxSimpTol werden der Ausgabe hinzugefügt, um die Toleranz zu speichern, die bei der Verarbeitung angewendet wurde.

  • 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
error_resolving_option
(optional)
Vorversion:

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde früher verwendet, um zu anzugeben, wie topologische Fehler, die möglicherweise bei der Verarbeitung verursacht wurden, gelöst werden. Dieser Parameter ist aus Gründen der Kompatibilität in Skripten und Modellen nach wie vor in der Syntax des Werkzeugs enthalten, wird aber im Bereich Geoverarbeitung ausgeblendet.

Boolean
collapsed_point_option
(optional)

Gibt an, ob eine Ausgabe-Point-Feature-Class zum Speichern der Endpunkte aller Linien erstellt wird, die kleiner als die räumliche Toleranz sind. Die Punktausgabe wird abgeleitet. Sie verwendet den gleichen Namen und die gleiche Position wie der Parameterwert out_feature_class, aber mit einem _Pnt-Suffix.

  • KEEP_COLLAPSED_POINTSEine abgeleitete Ausgabe-Point-Feature-Class wird erstellt, um die Endpunkte zusammengefasster Linien mit der Länge 0 zu speichern. Dies ist die Standardeinstellung.
  • NO_KEEPEine abgeleitete Ausgabe-Point-Feature-Class wird nicht erstellt.
Boolean
error_checking_option
(optional)
Hinweis:

Dies ist ein älterer Parameter, der nicht mehr verwendet wird. Er wurde früher verwendet, um zu anzugeben, wie topologische Fehler, die möglicherweise bei der Verarbeitung verursacht wurden, behandelt werden. Dieser Parameter ist aus Gründen der Kompatibilität in Skripten und Modellen nach wie vor in der Syntax des Werkzeugs enthalten, wird aber im Bereich Geoverarbeitung ausgeblendet.

Boolean
in_barriers
[in_barriers,...]
(optional)

Eingaben, die Features enthalten, die als Barrieren für die Vereinfachung fungieren. Resultierende vereinfachte Linien berühren oder kreuzen keine Barrieren-Features. Beim Vereinfachen von Konturlinien stellen Höhenpunkte-Eingabe-Features als Barrieren beispielsweise sicher, dass die vereinfachten Konturlinien nicht über diese Punkte hinweg vereinfacht werden. Die Ausgabe verletzt die durch die gemessenen Höhenangaben beschriebene Höhe nicht.

Feature Layer
error_option
(optional)

Gibt an, wie topologische Fehler behandelt werden sollen. Topologische Fehler können während des Vereinfachungsprozesses auftreten, wie z. B. sich kreuzende oder überlappende Linien.

  • NO_CHECKTopologische Fehler werden nicht erkannt. Dies ist die Standardeinstellung.
  • FLAG_ERRORSTopologische Fehler werden gekennzeichnet.
  • RESOLVE_ERRORSTopologische Fehler werden gelöst.
String

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_point_feature_class

Wenn KEEP_COLLAPSED_ POINTS als Parameter collapsed_point_option verwendet wird, wird eine Ausgabe-Point-Feature-Class zum Speichern der Endpunkte von Linien erstellt, die kleiner sind als die räumliche Toleranz der Daten.

Feature Class

Codebeispiel

SimplifyLine: Beispiel 1 (Python-Fenster)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.cartography.SimplifyLine(
    "roads.shp", 
    "C:/output/output.gdb/simplified_roads", 
    "POINT_REMOVE", 
    20)
SimplifyLine: Beispiel 2 (eigenständiges Skript)

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

# Name: SimplifyLine_Example2.py
# Description: Simplify line features from two feature classes, rivers and coastlines,
# while maintaining their connections

# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/Portland.gdb/Hydrography"
 
# Set local variables
inRiverFeatures = "rivers"
inCoastlineFeatures = "coastlines"

mergedFeatures = "C:/data/PortlandOutput.gdb/merged_lines"
simplifiedFeatures = "C:/data/PortlandOutput.gdb/merged_lines_simplified"
tempLayer = "tempLyr"

outRiverFeatureClass = "C:/data/PortlandOutput.gdb/rivers_final"
outCoastlineFeatureClass = "C:/data/PortlandOutput.gdb/coastlines_final"

# Merge rivers and coastlines into one feature class, 
# assuming that they have a common f-code field 
# with value 40 for rivers and 80 for coastlines.
arcpy.management.Merge(inRiverFeatures, inCoastlineFeatures, mergedFeatures)

# Simplify all lines.
arcpy.cartography.SimplifyLine(mergedFeatures, 
                simplifiedFeatures, 
                "BEND_SIMPLIFY", 
                100, 
                "KEEP_COLLAPSED_POINTS")
 
# Select rivers and coastlines by their f-code values 
# and put them in separate feature classes.
arcpy.management.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 40")
arcpy.management.CopyFeatures(tempLayer, outRiverFeatureClass)

arcpy.management.MakeFeatureLayer(simplifiedFeatures, tempLayer, "f-code = 80")
arcpy.management.CopyFeatures(tempLayer, outCoastlineFeatureClass)

Lizenzinformationen

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

Verwandte Themen