Geometrie reparieren (Datenmanagement)

Zusammenfassung

Überprüft Features auf Geometrieprobleme und behebt diese. Bei Feststellung eines Geometrieproblems wird eine Reparatur durchgeführt. In einer einzeiligen Beschreibung werden das Feature und das behobene Geometrieproblem identifiziert.

Dieses Werkzeug verwendet zum Reparieren von Geometrieproblemen die gleiche Logik wie das Werkzeug "Geometrie überprüfen".

Weitere Informationen zum Überprüfen und Reparieren von Geometrien

Verwendung

    Vorsicht:

    Mit diesem Werkzeug werden die Eingabedaten geändert. Weitere Informationen und Strategien zur Vermeidung unerwünschter Datenänderungen finden Sie unter Werkzeuge, die Eingabedaten ändern oder aktualisieren.

  • Gültige Eingabeformate sind Shapefiles und Feature-Classes, die in einer File-Geodatabase, Enterprise-Datenbank, Enterprise-Geodatabase, 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
    • SAP HANA: ST_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 auch auf Feature-Classes anwenden, die in einer Enterprise-Datenbank oder Enterprise-Geodatabase gespeichert sind.

  • Feature-Classes, die in einer Enterprise-Geodatabase gespeichert und als versioniert registriert sind, werden nicht unterstützt.

  • Die Umschaltfläche Rückgängig aktivieren kann nicht auf Eingaben aus einer Enterprise-Geodatabase angewendet werden.

  • Nachfolgend finden Sie eine Liste mit Geometrieproblemen und der entsprechenden Korrektur, die mit dem Werkzeug durchgeführt wird:

    • Null geometry: Der Datensatz wird aus der Feature-Class gelöscht. Um Datensätze mit NULL-Geometrie beizubehalten, deaktivieren Sie den Parameter Features mit NULL-Geometrie löschen.
    • Short segment: Das kurze Segment der Geometrie wird gelöscht.
    • Incorrect ring ordering: Die Geometrie wird mit der richtigen Ringanordnung aktualisiert.
    • Incorrect segment orientation: Die Geometrie wird mit einer richtigen Segmentausrichtung aktualisiert.
    • Self intersections: Die Überlappungsflächen in einem Polygon werden zusammengeführt.
    • Unclosed rings: Offene Ringe werden durch Verbindung ihrer Endpunkte geschlossen.
    • Empty parts: Teile ohne Wert oder mit NULL-Wert werden gelöscht.
    • Duplicate vertex: Einer der Stützpunkte wird gelöscht.
    • Mismatched attributes: Die Z- oder M-Koordinate wird aktualisiert, damit sie übereinstimmt.
    • Discontinuous parts: Aus einem diskontinuierlichen Abschnitt werden mehrere Abschnitte gebildet.
    • Empty Z values: Der Z-Wert wird auf 0 festgelegt.
    • Bad envelope: Der Envelope des Features wird zwecks Korrektur aktualisiert.
    • Bad dataset extent: Die Feature-Class wird zwecks Korrektur aktualisiert.

    Nachfolgend werden Geometrieprobleme aufgrund der Speicherung von Daten in einer Enterprise-Geodatabase sowie die entsprechende vom Werkzeug durchgeführte Reparatur (sofern vorhanden) aufgeführt:

    • NEEDS_REORDERING: Das Shape wird neu angeordnet, und doppelte Punkte werden entfernt.
    • SE_INVALID_ENTITY_TYPE: Der Entitätstyp wird nicht repariert (das Feature muss gelöscht werden).
    • SE_SHAPE_INTEGRITY_ERROR: Das Shape wird möglicherweise nicht repariert.
    • SE_INVALID_SHAPE_OBJECT: Das Shape-Objekt wird möglicherweise nicht repariert.
    • SE_COORD_OUT_OF_BOUNDS: Die Koordinate wird nicht repariert.
    • SE_POLY_SHELLS_OVERLAP: Überlappende Hüllen werden zusammengeführt.
    • SE_TOO_FEW_POINTS: Die Punkte werden nicht repariert.
    • SE_INVALID_PART_SEPARATOR: Das Teil-Trennzeichen wird möglicherweise nicht repariert.
    • SE_INVALID_POLYGON_CLOSURE: Nicht geschlossene Hüllen werden verworfen (das resultierende Polygon kann leer bleiben).
    • SE_INVALID_OUTER_SHELL: Es wird versucht, die äußeren Hüllen des Features zu reparieren. Dabei werden möglicherweise Hüllen verworfen.
    • SE_ZERO_AREA_POLYGON: Das Polygon wird in ein leeres Shape konvertiert.
    • SE_POLYGON_HAS_VERTICAL_LINE: Die vertikale Linie wird entfernt (das Shape wird möglicherweise in 2D konvertiert).
    • SE_OUTER_SHELLS_OVERLAP: Überlappende Teile werden zusammengeführt.
    • SE_SELF_INTERSECTING: Bei Bedarf werden Schnittpunkte hinzugefügt.

    Hinweis:

    Einige Probleme in Verbindung mit Daten, die in einer Enterprise-Datenbank gespeichert werden, können möglicherweise mit ArcGIS-Werkzeugen repariert werden.

  • Nachdem eine Korrekturmaßnahme durchgeführt wurde, wertet das Werkzeug die resultierende Geometrie erneut aus. Treten erneut Probleme auf, werden auch diese behoben. Das Ergebnis der Reparatur einer Geometrie mit dem Problem Incorrect ring ordering kann zu einer Geometrie mit dem Problem Null geometry führen.

  • Die Validierungsoption 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 mit der Option OGC validierte oder reparierte Geometrie ist für die Option Esri gültig. Weitere Informationen zu beiden Methoden finden Sie unter What is a simple polygon.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Features

Die zu verarbeitende Feature-Class bzw. der zu bearbeitende Feature-Layer.

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. Mit einer Desktop Standard- oder Desktop Advanced-Lizenz können auch Feature-Classes, die in einer Enterprise-Datenbank oder Enterprise-Geodatabase gespeichert sind, als gültige Formate für Eingabe-Features verwendet werden.

Feature Layer
Features mit NULL-Geometrie löschen
(optional)

Legt fest, ob Features mit NULL-Geometrie gelöscht werden.

  • Aktiviert: Features mit NULL-Geometrie werden aus der Eingabe gelöscht. Dies ist die Standardeinstellung.
  • Deaktiviert: Features mit NULL-Geometrie werden nicht aus der Eingabe gelöscht.

Hinweis:
Das Löschen von NULL-Werten ist für Daten, die in einer Enterprise-Datenbank oder Enterprise-Geodatabase, einem GeoPackage oder einer SpatiaLite-Datenbank gespeichert sind, nicht verfügbar.

Boolean
Ü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

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Reparierte Eingabe-Features

Die aktualisierten Eingabe-Features.

Feature Layer

arcpy.management.RepairGeometry(in_features, {delete_null}, {validation_method})
NameErläuterungDatentyp
in_features

Die zu verarbeitende Feature-Class bzw. der zu bearbeitende Feature-Layer.

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. Mit einer Desktop Standard- oder Desktop Advanced-Lizenz können auch Feature-Classes, die in einer Enterprise-Datenbank oder Enterprise-Geodatabase gespeichert sind, als gültige Formate für Eingabe-Features verwendet werden.

Feature Layer
delete_null
(optional)

Legt fest, ob Features mit NULL-Geometrie gelöscht werden.

  • DELETE_NULLFeatures mit NULL-Geometrie werden aus der Eingabe gelöscht. Dies ist die Standardeinstellung.
  • KEEP_NULLFeatures mit NULL-Geometrie werden nicht aus der Eingabe gelöscht.

Hinweis:
Für Eingaben aus einer Enterprise-Datenbank oder Enterprise-Geodatabase, einem GeoPackage oder einer SpatiaLite-Datenbank ist nur KEEP_NULL gültig.

Boolean
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

Abgeleitete Ausgabe

NameErläuterungDatentyp
out_feature_class

Die aktualisierten Eingabe-Features.

Feature Layer

Codebeispiel

RepairGeometry: Beispiel 1 (Python-Fenster)

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

import arcpy
arcpy.management.RepairGeometry("c:/data/sketchy.shp")
RepairGeometry: Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript ist ein Beispiel für die Anwendung der Funktion RepairGeometry in einer Skriptumgebung.

# Description: 
#   Goes through the table generated by the Check Geometry tool and does 
#   the following
#   1) backs-up all features which will be 'fixed' to a "_bad_geom" feature class
#   2) runs repairGeometry on all feature classes listed in the table 

import arcpy
import os
 
# Table that was produced by Check Geometry tool
table = r"c:\temp\data.gdb\cg_sample1"
 
# Create local variables
fcs = []
 
# Loop through the table and get the list of fcs
for row in arcpy.da.SearchCursor(table, ("CLASS")):
    # Get the class (feature class) from the cursor
    if not row[0] in fcs:
        fcs.append(row[0])
 
# Now loop through the fcs list, backup the bad geometries into fc + "_bad_geom"
# then repair the fc
print("> Processing {0} feature classes".format(len(fcs)))
for fc in fcs:
    print("Processing " + fc)
    lyr = 'temporary_layer'
    if arcpy.Exists(lyr):
        arcpy.Delete_management(lyr)
    
    tv = "cg_table_view"
    if arcpy.Exists(tv):
        arcpy.Delete_management(tv)

    arcpy.MakeTableView_management(table, tv, ("\"CLASS\" = '%s'" % fc))
    arcpy.MakeFeatureLayer_management(fc, lyr)
    arcpy.AddJoin_management(lyr, arcpy.Describe(lyr).OIDFieldName, tv, "FEATURE_ID")
    arcpy.CopyFeatures_management(lyr, fc + "_bad_geom")
    arcpy.RemoveJoin_management(lyr, os.path.basename(table))
    arcpy.RepairGeometry_management(lyr)

Umgebungen

Sonderfälle

Faktor für parallele Verarbeitung

Wenn die Umgebung nicht festgelegt ist (Standardeinstellung) oder auf 0 festgelegt ist, ist die parallele Verarbeitung deaktiviert. Wenn sie auf 100 festgelegt ist, versucht das Werkzeug, die Arbeitslast auf alle logischen Kerne des Computers zu verteilen. Wenn ein Faktor zwischen 1 und 99 festgelegt wird, identifiziert das Werkzeug den Prozentsatz der zu verwendenden logischen Kerne, indem die Formel (Faktor für parallele Verarbeitung / 100 * logische Kerne) auf die nächste ganze Zahl aufgerundet angewendet wird. Wenn das Ergebnis dieser Formel 0 oder 1 ist, wird die parallele Verarbeitung nicht aktiviert.