Geometrie überprüfen (Data Management)

Zusammenfassung

Generiert einen Bericht über die Geometrieprobleme in einer Feature-Class.

Weitere Informationen zu Geometrieproblemen, ihren Auswirkungen auf die Software und möglichen Quellen finden Sie im Abschnitt Überprüfen und Reparieren von Geometrien.

Verwendung

  • Gültige Eingabeformate sind in einer File- oder Enterprise-Geodatabase gespeicherte Shapefiles und Feature-Classes. Für Feature-Classes, die in einer Enterprise-Geodatabase gespeichert sind, werden die folgenden räumlichen Datentypen unterstützt:

    • Microsoft SQL Server Geometry und Geography
    • PostgreSQL PostGIS Geometry und Geography
    • Oracle SDO Geometry

  • Die Ausgabetabelle enthält einen Datensatz für jedes erkannte Geometrieproblem. Wenn keine Probleme gefunden werden, ist die Tabelle leer.

  • 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 Vereinfachungsmethode von Esri sicher, dass die Geometrie topologisch zulässig ist. Für Daten, die in einer Enterprise-Geodatabase gespeichert sind, ist nur die Esri-Validierung verfügbar.

  • Mit der Validierungsmethode des Open Geospatial Consortium (OGC) 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 Option OGC 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 Vereinfachungsmethode des OGC 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.

  • Die von diesem Werkzeug erkannten Probleme 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. Einige Probleme in Verbindung mit Daten, die in einer Enterprise-Datenbank gespeichert werden, können möglicherweise mit ArcGIS-Werkzeugen repariert werden.
  • 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.

    Für Daten in Enterprise-Geodatabases enthält das Feld PROBLEM nur einen der folgenden Codes:

    • NEEDS_REORDERING: Das Shape ist in Ordnung, es muss lediglich neu angeordnet werden, und/oder Doppelpunkte müssen entfernt werden.
    • SE_INVALID_ENTITY_TYPE: Ungültiger Entitätstyp
    • SE_SHAPE_INTEGRITY_ERROR: Fehler in Shape-Integrität
    • SE_INVALID_SHAPE_OBJECT: Der angegebene Shape-Objekt-Handle ist ungültig.
    • SE_COORD_OUT_OF_BOUNDS: Die angegebene Koordinate überschreitet den gültigen Koordinatenbereich.
    • SE_POLY_SHELLS_OVERLAP: Zwei Kreisringe oder zwei äußere Hüllen überlappen sich.
    • SE_TOO_FEW_POINTS: Die Anzahl der Punkte ist geringer, als für das Feature erforderlich.
    • SE_INVALID_PART_SEPARATOR: Teil-Trennzeichen befindet sich in falscher Position.
    • SE_INVALID_POLYGON_CLOSURE: Polygon schließt nicht richtig.
    • SE_INVALID_OUTER_SHELL: Die äußere Hülle eines Polygons umschließt nicht alle Kreisringe für das Teil vollständig.
    • SE_ZERO_AREA_POLYGON: Die Polygonhülle hat keine Fläche.
    • SE_POLYGON_HAS_VERTICAL_LINE: Die Polygonhülle enthält eine vertikale Linie.
    • SE_OUTER_SHELLS_OVERLAP: Die Multipart-Fläche weist überlappende Teile auf.
    • SE_SELF_INTERSECTING: Linienzug oder Poly-Grenze schneidet sich selbst.

Syntax

arcpy.management.CheckGeometry(in_features, out_table, {validation_method})
ParameterErklärungDatentyp
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.

  • ESRIEs wird die Geometrievalidierungsmethode von Esri verwendet. Dies ist die Standardeinstellung.
  • OGC Die Geometrievalidierungsmethode des Open Geospatial Consortium (OGC) wird verwendet.
String

Codebeispiel

CheckGeometry: Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie die Funktion CheckGeometry im unmittelbaren Modus in einer File-Geodatabase verwendet wird:

import arcpy
arcpy.env.workspace = "c:/data/data.gdb"
arcpy.CheckGeometry_management(["contours", "roads", "vegetation"], "CheckGeom_Result")
CheckGeometry: Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript verwendet die Funktion CheckGeometry, wobei es alle Feature-Classes in einer File-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

Verwandte Themen