Zusammenfassung
Generiert einen Bericht über die Geometrieprobleme in einer Feature-Class.
Gültige Eingabeformate sind in einer File-Geodatabase gespeicherte Shapefiles und Feature-Classes.
Weitere Informationen zu Geometrieproblemen, ihren Auswirkungen auf die Software und möglichen Quellen finden Sie im Abschnitt Überprüfen und Reparieren von Geometrien.
Verwendung
Die Ausgabetabelle enthält einen Datensatz für jedes erkannte Geometrieproblem. Wenn keine Probleme gefunden werden, ist die Tabelle leer.
Die Ausgabetabelle enthält die folgenden Felder:
- CLASS: Der vollständige Pfad und Name der Feature-Class, in der das Problem aufgetreten ist.
- FEATURE_ID: Die Feature-ID (FID) oder Objekt-ID (OID) des Features mit dem Geometriefehler.
- PROBLEM: Eine kurze Beschreibung des Problems.
Das Feld PROBLEM enthält einen der folgenden Codes:
- Short segment: Einige Segmente sind kürzer, als es aufgrund der Systemeinheiten des mit der Geometrie verknüpften Raumbezugs zulässig ist.
- Null geometry: Das Feld SHAPE des Features besitzt keine Geometrie bzw. ist leer.
- Incorrect ring ordering: Das Polygon ist topologisch einfach, aber die Ringe sind nicht korrekt ausgerichtet (äußere Ringe im Uhrzeigersinn, innere Ringe gegen den Uhrzeigersinn).
- Incorrect segment orientation: Einzelne Segmente sind nicht einheitlich ausgerichtet. Der Bis-Punkt des Segments i muss mit dem Von-Punkt des Segments i+1 übereinstimmen.
- Self intersections: Ein Polygon darf sich nicht überschneiden.
- Unclosed rings: Der Bis-Punkt des letzten Segments in einem Ring muss mit dem Von-Punkt des ersten Segments übereinstimmen.
- Empty parts: Die Geometrie besteht aus mehreren Teilen, von denen einer leer ist (über keine Geometrie verfügt).
- Duplicate vertex: Die Geometrie hat zwei oder mehr fortlaufende Stützpunkte mit identischen Koordinaten.
- Mismatched attributes: Die Z- oder die M-Koordinate des Endpunktes eines Liniensegments stimmt nicht mit der Z- oder der M-Koordinate des lagegleichen Endpunktes auf dem nächsten Segment überein.
- Discontinuous parts: Einer der Teile der Geometrie besteht aus getrennten oder diskontinuierlichen Abschnitten.
- Empty Z values: Die Geometrie weist einen oder mehrere Stützpunkte mit leerem Z-Wert auf (z. B. NaN).
- Bad envelope: Der Envelope stimmt nicht mit der Koordinatenausdehnung der Geometrie überein.
- Bad dataset extent: Die Ausdehnungseigenschaft des Datasets enthält nicht alle Features im Dataset. Bei diesem Problem ist die FEATURE_ID gleich -1.
Die von diesem Werkzeug erkannten Fehler können wie folgt behoben werden:
- Bearbeiten und korrigieren Sie das Feature mit den Geometrieproblemen. Einige der Probleme können nicht durch Bearbeitung behoben werden.
- Verwenden Sie das Werkzeug Geometrie reparieren.
Der Inhalt der Ausgabetabelle, darunter auch die PROBLEM-Codes, ist in Englisch.
Bei Punkt-Features treten möglicherweise nur Probleme mit NULL-Geometrie auf.
Zur Vereinfachung der Überprüfung der Features, für die Geometrieprobleme gemeldet werden, können Sie die Eingabe-Features mit der Ausgabetabelle verbinden, indem Sie das Werkzeug Verbindung hinzufügen zusammen mit dem Feld OBJECTID oder FID der Eingabe und dem Feld FEATURE_ID der Ausgabetabelle verwenden.
Die Validierungsmethode von Esri stellt mithilfe der vereinfachten Methode von Esri sicher, dass die Geometrie topologisch zulässig ist.
Mit der OGC-Validierungsmethode wird sichergestellt, dass die Geometrie der unter OpenGIS Implementation Standard for Geographic information - Simple feature access - Part 1: Common architecture definierten OGC-Spezifikation entspricht.
Nachdem die Geometrie eines Features mit der OGC-Option repariert wurde, können nachfolgende Bearbeitungen oder Änderungen dazu führen, dass die Geometrie der OGC-Spezifikation nicht mehr entspricht. Führen Sie nach der Änderung des Features das Werkzeug Geometrie überprüfen aus, um zu ermitteln, ob neue Geometrieprobleme vorliegen. Führen Sie das Werkzeug Geometrie reparieren ggf. erneut aus.
Die OGC-Vereinfachung unterstützt keine nicht linearen Segmente wie Bézier-Kurven, Kreisbögen und elliptische Bögen. Diese Segmenttypen müssen mit dem Werkzeug Verdichten im Eingabe-Dataset verdichtet werden, bevor Geometrie überprüfen ausgeführt wird. Um bei der Ausführung des Werkzeugs Verdichten irreversible Änderungen an nicht linearen Segmenten zu vermeiden, erstellen Sie zunächst eine Kopie der Daten. Um zu ermitteln, ob Ihre Daten nicht lineare Segmente aufweisen, verwenden Sie das Werkzeug Geometrieattribute hinzufügen.
Syntax
CheckGeometry(in_features, out_table, {validation_method})
Parameter | Erklärung | Datentyp |
in_features [in_feature,...] | Die Feature-Classes oder Feature-Layer, die auf Geometrieprobleme überprüft werden sollen. | Feature Layer |
out_table | Der Bericht (in Tabellenform) zu den erkannten Problemen. | Table |
validation_method (optional) | Legt fest, welche Geometrievalidierungsmethode zum Identifizieren von Geometrieproblemen verwendet wird.
| String |
Codebeispiel
Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion CheckGeometry im unmittelbaren Modus verwendet wird.
import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management(["contours", "roads", "vegetation"], "CheckGeom_Result")
Das folgende eigenständige Skript verwendet die Funktion CheckGeometry, indem es alle Feature-Classes in einer Geodatabase durchläuft.
# BatchCheckGeometry.py
# Description:
# Loops through all the feature classes in a geodatabase, and generates
# a report of the problems encountered with feature geometry.
# Import modules
import arcpy
import os
# The geodatabase in which the feature classes will be checked
arcpy.env.workspace = "C:\\data\\St_Lucia.gdb"
out_table = "checkGeometryResult"
# A variable that will hold the list of all the feature classes
# inside the geodatabase
fc_list = []
# Identify all feature classes in the geodatabase
for path, dirnames, fcs in arcpy.da.Walk(arcpy.env.workspace,
datatype='FeatureClass'):
for fc in fcs:
fc_list.append(os.path.join(path, fc))
print("Running the check geometry tool on {} feature classes".format(
len(fc_list)))
arcpy.CheckGeometry_management(fc_list, out_table)
print("{} geometry problems found, see {} for details.".format(
arcpy.GetCount_management(out_table)[0], out_table))
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja