HOW TO

Löschen von älteren Datensätze doppelter Features nach Verwendung des Werkzeugs Anhängen in ArcGIS Pro

Last Published: July 29, 2022

Zusammenfassung

In ArcGIS Pro kann das Werkzeug "Anhängen" verwendet werden, um zusätzliche Daten zu einem vorhandenen Ziel-Dataset hinzuzufügen. Wenn es jedoch Features mit identischen Positionen sowohl im Eingabe- als auch im Zieldataset gibt, erzeugt die Ausführung des Werkzeugs "Anhängen" doppelte Features im Ziel-Dataset. Wenn nur ein Eintrag pro Feature in der Attributtabelle erhalten bleiben soll, müssen doppelte Features gegebenenfalls gelöscht werden.

In diesem Artikel werden zwei Workarounds vorgestellt, mit denen Sie ältere Datensätze von doppelten Features aus dem Dataset entfernen und nur die neuesten Datensätze nach Ausführung des Werkzeugs "Anhängen" beibehalten.

Vorgehensweise

Befolgen Sie je nach Verwendung eine der Problemumgehungen unten, um das Problem zu lösen.

Verwenden des Werkzeugs "Zusammenführen (Dissolve)"

Hinweis: Das Ergebnis dieses Workarounds wird in eine neue Feature-Class gespeichert.
  1. Fügen Sie ein neues Feld in der Attributtabelle hinzu, das mit identischen Werten gefüllt wird, um die doppelten Features zu identifizieren. In diesem Beispiel wird das neue Feld verwendet, um doppelte Features basierend auf identischen Koordinaten zu identifizieren.
Hinweis: Überspringen Sie Schritt 1, wenn das angehängte Dataset über ein vorhandenes Feld mit identischen Werten verfügt, das zur Identifizierung der doppelten Daten verwendet werden kann. Stellen Sie sicher, dass es keine Inkonsistenzen zwischen den identischen Werten gibt. Für diesen Workflow werden beispielsweise "StreetNameA" und "StreetName_A" nicht als identische Werte betrachtet.
  1. Klicken Sie im Bereich Inhalt mit der rechten Maustaste auf den Feature-Layer, der das angehängte Dataset enthält, und klicken Sie auf Attributtabelle.
  2. Klicken Sie in der Tabellensicht auf Hinzufügen.
  3. Konfigurieren Sie das neue Feld in der Ansicht "Felder". Stellen Sie sicher, dass Long für Datentyp ausgewählt ist. In diesem Beispiel hat das neue Feld den Namen "Coordinate".
Die Ansicht
  1. Klicken Sie auf der Registerkarte Felder auf Speichern.
  2. Klicken Sie im Bereich "Tabellensicht" mit der rechten Maustaste auf die Kopfzeile des neuen Feldes, und klicken Sie auf Geometrie berechnen.
  3. Wählen Sie im Fenster Geometrie berechnen für Eigenschaft eine Option aus dem Dropdown-Menü aus. In diesem Beispiel wird X-Koordinate des Punktes ausgewählt.
  4. Klicken Sie auf OK.
Das zu konfigurierende Fenster
  1. Verwenden Sie das Werkzeug Zusammenführen (Dissolve), um die doppelten Features zu löschen und die zuletzt hinzugefügten Features zu beizubehalten.
    1. Klicken Sie auf der Registerkarte Analyse auf Werkzeuge.
    2. Suchen Sie im Bereich Geoverarbeitung nach dem Werkzeug Zusammenführen (Data Management Tools), und wählen Sie es aus.
    3. Wählen Sie im Bereich Zusammenführen (Dissolve) für Eingabe-Features die Feature-Class aus, die die angehängten Daten enthält.
    4. Wählen Sie unter Dissolve-Felder das Feld aus, das die identischen Werte enthält, um die Duplikate zu identifizieren. In diesem Beispiel wurde "Coordinate" ausgewählt.
    5. Klicken Sie unter Statistikfelder auf den Abwärtspfeil neben Feld und dann auf Alle Kontrollkästchen umschaltenDas Symbol , um alle Felder auszuwählen oder die Felder auszuwählen, die in der Attributtabelle als Statistikfelder beibehalten bleiben sollen, und klicken Sie auf Hinzufügen.
Das Dropdown-Menü des Parameters
  1. Wählen Sie für Statistiktyp die Option Letzter für alle hinzugefügten Felder aus.
Der Bereich
  1. Klicken Sie auf Ausführen. Das Ergebnis des Werkzeugs Zusammenführen (Dissolve) wird in einer neuen Feature-Class gespeichert. Die doppelten Features werden entfernt, und nur die neuesten Datensätze werden in der neuen Feature-Class beibehalten.

Verwenden eines benutzerdefinierten Python-Skripts

Hinweis: Führen Sie diesen Workaround durch, um das angehängte Dataset zu ändern, ohne eine neue Feature-Class zu erstellen.

Wenn neue Features an das Ziel-Dataset angehängt werden, wird den angehängten Features automatisch eine neue Objekt-ID zugewiesen, und zwar in sequentieller Reihenfolge nach den vorhandenen Daten. Je größer die Nummer der Objekt-ID ist, desto weniger weit liegt der Zeitpunkt zurück, an dem das Feature dem Dataset hinzugefügt wurde. Daher kann das Objekt-ID-Feld verwendet werden, um eine Sortierung nach dem neuesten Datensatz durchzuführen. Dazu wählen Sie das Feature unter den doppelten Features aus, das den größten Objekt-ID-Wert aufweist.

Hinweis: Abhängig von den verwendeten Datasets werden die Objekt-IDs entweder im Feld OBJECTID oder im Feld OBJECTID_1 verwaltet. Um das Feld zu identifizieren, in dem die Objekt-IDs gespeichert sind, zeigen Sie mit der Maus auf die Feldkopfzeile in der Attributtabelle. Der Datentyp des Feldes, in dem die Objekt-IDs gespeichert sind, lautet "Objekt-ID". Weitere Informationen finden Sie unter ArcMap: Wann wird einer Tabelle eine ObjectID hinzugefügt?. Der Bereich 
  1. Klicken Sie in ArcGIS Pro auf der Registerkarte Analyse auf den Pfeil nach unten neben Python, und klicken Sie auf Python-Fenster.
  2. Importieren Sie das erforderliche Modul.
import arcpy
  1. Legen Sie den Pfad zu der Feature-Class mit den angehängten Daten, das Feld für die Suche nach Duplikaten und das Feld für die Sortierung der Datensätze fest.
fc = r"<feature class path>" id = "<field name>" sort_field = "<field name> D"
  1. Definieren Sie einen Parameter für die Funktion "UpdateCursor()", und durchlaufen Sie die Feature-Class durch, um alte doppelte Datensätze zu identifizieren und zu löschen.
cursor = arcpy.UpdateCursor(fc,"","",id,sort_field) keepList = list() for row in cursor: row_val = row.getValue(id) if row_val not in keepList: keepList.append(row_val) elif row_val in keepList: cursor.deleteRow(row) else: pass

Im Folgenden ist ein Beispiel für das gesamte Skript dargestellt:

import arcpy fc = r"C:\Users\User\Documents\ArcGIS\Projects\Append\Append.gdb\DataMain" id = "Coordinate" sort_field = "OBJECTID D" cursor = arcpy.UpdateCursor(fc,"","",id,sort_field) keepList = list() for row in cursor: row_val = row.getValue(id) if row_val not in keepList: keepList.append(row_val) elif row_val in keepList: cursor.deleteRow(row) else: pass
  1. Platzieren Sie den Cursor am Ende des Skripts, und drücken Sie zweimal die EINGABETASTE.
  2. Klicken Sie auf Aktualisieren. Die älteren Datensätze von doppelten Features werden aus der Attributtabelle entfernt.

Artikel-ID: 000028108

Benachrichtigungen erhalten und Lösungen für neue oder häufige Probleme finden

Unser neuer KI-Chatbot stellt zusammengefasste Antworten und Videolösungen für Sie bereit.

Esri Support App herunterladen

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Esri Support App herunterladen

Zu Download-Optionen wechseln