HOW TO
In der Regel enthält eine Attributtabelle Felder mit gemeinsamen Werten und Einzelwerten. Dadurch ist es manchmal notwendig, doppelte Werte zu identifizieren, um eine Gruppe unter mehreren Layern zu erstellen, oder Einzelwerte zu identifizieren, um das Feature zu isolieren.
Zum Identifizieren von doppelten Werten gibt es vier Möglichkeiten:
Verwenden des Werkzeugs "Identische finden"
Das Werkzeug Identische finden erstellt eine neue Standalone-Tabelle. Das Werkzeug identifiziert die ObjectID eines Features und erstellt zwei Spalten: Die eine Spalte enthält den ObjectID-Wert des ausgewählten Features, und die andere Spalte enthält Zahlen zum Markieren eines identischen oder eindeutigen Features. Identische Datensätze verfügen über denselben FEAT_SEQ-Wert, während nicht identische Datensätze über einen sequenziellen Wert verfügen. FEAT_SEQ-Werte haben keine Beziehung zu den IDs der Eingabedatensätze. Weitere Informationen finden Sie unter ArcGIS Pro: Identische finden (Data Management).
Verwenden der Funktion "Feld berechnen"
Die Python-Parser-Funktion isDuplicate() kann ein neues Feld mit einem bestimmten Markierungswert füllen, über den ein Wert als doppelter oder als Einzelwert identifiziert wird. Zum Beispiel kann bei Einzelwerten und beim ersten Auftreten von Mehrfachwerten der Wert 0 und bei allen doppelten Werten der Wert 1 eingetragen werden. Anhand der folgenden Schritte wird beschrieben, wie diese Funktion für diesen Zweck verwendet wird:
isDuplicate(!Field_Name_To_Verify!)
uniqueList = [] def isDuplicate(inValue): if inValue in uniqueList: return 1 else: uniqueList.append(inValue) return 0
Verwenden eines eigenständigen Python-Skripts
Dieses Skript erstellt ein neues Feld und füllt es mit der Anzahl der doppelten Werte.
import arcpy
arcpy.env.workspace=r"D:\test.gdb" infeature="sample_feature" field_in="sample_field" field_out="COUNT_"+field_in arcpy.AddField_management(infeature,field_out,"SHORT")
lista=[] cursor1=arcpy.SearchCursor(infeature) for row in cursor1: i=row.getValue(field_in) lista.append(i) del cursor1, row
cursor2=arcpy.UpdateCursor(infeature) for row in cursor2: i=row.getValue(field_in) occ=lista.count(i) row.setValue(field_out,occ) cursor2.updateRow(row) del cursor2, row print ("Done.")
Nachfolgend finden Sie den vollständigen Code:
import arcpy arcpy.env.workspace=r"D:\test.gdb" infeature="sample_feature" field_in="sample_field" field_out="COUNT_"+field_in arcpy.AddField_management(infeature,field_out,"SHORT") lista=[] cursor1=arcpy.SearchCursor(infeature) for row in cursor1: i=row.getValue(field_in) lista.append(i) del cursor1, row cursor2=arcpy.UpdateCursor(infeature) for row in cursor2: i=row.getValue(field_in) occ=lista.count(i) row.setValue(field_out,occ) cursor2.updateRow(row) del cursor2, row print ("Done.")
Verwenden des Werkzeugs "Summenstatistik" und Verknüpfen der Tabelle
Unterstützung durch ArcGIS-Experten anfordern
Esri Support App herunterladen