Geometrie überprüfen (Data Management)

Zusammenfassung

Generiert einen Bericht über 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 Shapefiles und Feature-Classes, die in einer File-Geodatabase, Enterprise-Datenbank oder -Geodatabase, in einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind. Für Feature-Classes, die in einer Enterprise-Datenbank oder 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

    Lizenz:

    Mit einer Desktop Basic-Lizenz können Sie dieses Werkzeug nur auf Shapefiles und Feature-Classes, die in einer File-Geodatabase, einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind, anwenden. Mit einer Desktop Standard- oder Desktop Advanced-Lizenz können Sie dieses Werkzeug ebenfalls auf Feature-Classes in einer Enterprise-Datenbank oder -Geodatabase anwenden.

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

  • Der Inhalt des Parameterwertes Ausgabetabelle, darunter auch die PROBLEM-Feldcodes, ist in Englisch.

  • Bei Punkt-Features treten möglicherweise nur Probleme mit NULL-Geometrie auf.

  • Zur Überprüfung der Features, für die Geometrieprobleme gemeldet werden, können Sie den Parameterwert von Eingabe-Features mit dem Parameterwert von 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. Wenn einer der Parameterwerte für Eingabe-Features in einer Enterprise-Datenbank oder -Geodatabase, in einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind, enthält die Ausgabetabelle ebenfalls das Feld TEXT_ID. Es wird für OBJECTID-Spalten verwendet, die nicht auf ganzzahligen Werten basieren.

  • Die Validierungsmethode von Esri stellt mithilfe der Vereinfachungsmethode von Esri sicher, dass die Geometrie topologisch korrekt 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 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 Enterprise-Datenbanken oder -Geodatabases, GeoPackages und SpatiaLite-Datenbanken gespeichert sind, können möglicherweise nicht mit ArcGIS-Werkzeugen repariert werden.
  • Der Parameterwert für 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 ObjectID (OID) des Features mit dem Geometriefehler.
    • TEXT_ID: Dieses Feld ist nur vorhanden, wenn die Werte für Eingabe-Features in einer Enterprise-Datenbank oder -Geodatabase, einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind.
    • 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 selbst schneiden.
    • 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 eines 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 der Wert FEATURE_ID gleich -1.

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

    • NEEDS_REORDERING: Das Shape muss neu angeordnet werden, oder doppelte Punkte 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 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: Ein Teil-Trennzeichen befindet sich in falscher Position.
    • SE_INVALID_POLYGON_CLOSURE: Ein 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: Eine Polygonhülle hat keine Fläche.
    • SE_POLYGON_HAS_VERTICAL_LINE: Eine Polygonhülle enthält eine vertikale Linie.
    • SE_OUTER_SHELLS_OVERLAP: Eine Multipart-Fläche weist überlappende Teile auf.
    • SE_SELF_INTERSECTING: Ein Linienzug oder eine Poly-Grenze schneidet sich selbst.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die Feature-Classes oder Feature-Layer, die auf Geometrieprobleme überprüft werden sollen.

Lizenz:

Bei einer Desktop Basic-Lizenz sind nur Shapefiles und Feature-Classes, die in einer File-Geodatabase, einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind, gültige Formate für Eingabe-Features. Bei einer Desktop Standard- oder Desktop Advanced-Lizenz können ebenfalls Feature-Classes in einer Enterprise-Datenbank oder -Geodatabase als gültige Formate für Eingabe-Features verwendet werden.

Feature Layer
Ausgabetabelle

Der Bericht (in Tabellenform) zu den erkannten Problemen.

Table
Überprüfungsmethode
(optional)

Legt fest, welche Geometrievalidierungsmethode zum Identifizieren von Geometrieproblemen verwendet wird.

  • EsriEs wird die Geometrievalidierungsmethode von Esri verwendet. Dies ist die Standardeinstellung.
  • OGCEs wird die Geometrievalidierungsmethode des OGC verwendet.
String

arcpy.management.CheckGeometry(in_features, out_table, {validation_method})
NameErläuterungDatentyp
in_features
[in_features,...]

Die Feature-Classes oder Feature-Layer, die auf Geometrieprobleme überprüft werden sollen.

Lizenz:

Bei einer Desktop Basic-Lizenz sind nur Shapefiles und Feature-Classes, die in einer File-Geodatabase, einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind, gültige Formate für Eingabe-Features. Bei einer Desktop Standard- oder Desktop Advanced-Lizenz können ebenfalls Feature-Classes in einer Enterprise-Datenbank oder -Geodatabase als gültige Formate für Eingabe-Features verwendet werden.

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.
  • OGCEs wird die Geometrievalidierungsmethode des OGC 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 
# in 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: Begrenzt
  • Standard: Erfordert J
  • Advanced: Erfordert J

Verwandte Themen