Identische finden (Data Management)

Lizenzstufe:BasicStandardAdvanced

Zusammenfassung

Erstellt einen Bericht aller Datensätze in einer Feature-Class oder einer Tabelle, die über identische Werte in einer Liste von Feldern verfügen, und generiert eine Tabelle, in der diese identischen Datensätze aufgeführt werden. Wenn das Feld "Shape" ausgewählt wird, werden Feature-Geometrien verglichen.

Das Werkzeug Identische löschen kann verwendet werden, um identische Datensätze zu suchen und zu löschen.

Bild

Abbildung "Identische finden"
In diesem Beispiel sind die Punkte mit der OBJECTID 1, 2, 3, 8, 9 und 10 lagegleich (blau hervorgehoben). In der Ausgabetabelle werden die lagegleichen Punkte mit demselben Wert für CATEGORY identifiziert.

Verwendung

Syntax

FindIdentical_management (in_dataset, out_dataset, fields, {xy_tolerance}, {z_tolerance}, {output_record_option})
ParameterErläuterungDatentyp
in_dataset

Die Tabelle oder die Feature-Class, deren identische Datensätze gesucht werden.

Table View
out_dataset

Die Ausgabetabelle, in der identische Datensätze gemeldet werden. Das FEAT_SEQ-Feld in der Ausgabetabelle verfügt über den gleichen Wert bei identischen Datensätzen.

Table
fields
[fields,...]

Die Felder, deren Werte bei der Suche nach identischen Datensätzen verglichen werden.

Field
xy_tolerance
(optional)

Die XY-Toleranz, die auf jeden Stützpunkt angewendet wird, wenn evaluiert wird, ob in einem anderen Feature ein identischer Stützpunkt vorhanden ist. Dieser Parameter ist nur aktiviert, wenn "Shape" als eines der Felder ausgewählt wird.

Linear unit
z_tolerance
(optional)

Die Z-Toleranz, die auf jeden Stützpunkt angewendet wird, wenn evaluiert wird, ob in einem anderen Feature ein identischer Stützpunkt vorhanden ist. Dieser Parameter ist nur aktiviert, wenn "Shape" als eines der Felder ausgewählt wird.

Double
output_record_option
(optional)

Wählen Sie diese Option, wenn ausschließlich doppelte Datensätze in der Ausgabetabelle enthalten sein sollen.

  • ALLAlle Eingabedatensätze verfügen über entsprechende Datensätze in der Ausgabetabelle. Dies ist die Standardeinstellung.
  • ONLY_DUPLICATESNur doppelte Datensätze verfügen über entsprechende Datensätze in der Ausgabetabelle. Die Ausgabe ist leer, wenn kein doppelter Datensatz gefunden wird.
Boolean

Codebeispiel

FindIdentical – Beispiel 1 (Python-Fenster)

Das folgende Skript im Python-Fenster veranschaulicht, wie Sie die Funktion "FindIdentical" im unmittelbaren Modus verwenden.

import arcpy

# Find identical records based on a text field and a numeric field.
arcpy.FindIdentical_management("C:/data/fireincidents.shp", "C:/output/duplicate_incidents.dbf", ["ZONE", "INTENSITY"])
FindIdentical – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript veranschaulicht, wie Sie das Werkzeug "FindIdentical" zum Identifizieren doppelter Datensätze einer Tabelle oder Feature-Class verwenden.

# Name: FindIdentical_Example2.py
# Description: Finds duplicate features in a dataset based on location (Shape field) and fire intensity

import arcpy
from arcpy import env

env.overwriteOutput = True

# Set workspace environment
env.workspace = "C:/data/findidentical.gdb"

try:
    # Set input feature class
    in_dataset = "fireincidents"
    
    # Set the fields upon which the matches are found
    fields = ["Shape", "INTENSITY"]
    
    # Set xy tolerance
    xy_tol = ".02 Meters"
    
    out_table = "duplicate_incidents"

    # Execute Find Identical 
    arcpy.FindIdentical_management(in_dataset, out_table, fields, xy_tol)
    print arcpy.GetMessages()

except arcpy.ExecuteError:
    print arcpy.GetMessages(2)
    
except Exception as ex:
    print ex.args[0]
FindIdentical – Beispiel 3: Nur doppelte Datensätze ausgeben (eigenständiges Skript)

Dieses Skript veranschaulicht, wie Sie den optionalen Parameter "Nur doppelte Datensätze ausgeben" verwenden. Wenn der Parameter über das Dialogfeld des Werkzeugs aktiviert wird oder der Wert ONLY_DUPLICATES festgelegt ist, werden alle einzelnen Datensätze entfernt. Es werden ausschließlich die doppelten Datensätze aus der Ausgabe beibehalten.

# Name: FindIdentical_Example3.py
# Description: Demonstrates the use of the optional parameter Output only duplicated records.

import arcpy
from arcpy import env

env.overwriteOutput = True

# Set workspace environment
env.workspace = "C:/data/redlands.gdb"

try:
    
    in_data = "crime"
    out_data = "crime_dups"
    
    # Note that XY Tolerance and Z Tolerance parameters are not used
    # In that case, any optional parameter after them must assign
    # the value with the name of that parameter    
    arcpy.FindIdentical_management(in_data, out_data, ["Shape"], output_record_option="ONLY_DUPLICATES")
    
    print arcpy.GetMessages()
    
except Exception as ex:
    print arcpy.GetMessages(2)
    print ex.args[0]
FindIdentical – Beispiel 4: Identische Datensätze über den FEAT_SEQ-Wert gruppieren

Liest die Ausgabe des Werkzeugs "FindIdentical" und gruppiert identische Datensätze über den FEAT_SEQ-Wert.

import arcpy

from itertools import groupby
from operator import itemgetter

# Set workspace environment
arcpy.env.workspace = r"C:\data\redlands.gdb"

# Run Find Identical on feature geometry only.
result = arcpy.FindIdentical_management("parcels", "parcels_dups", ["Shape"])
    
# List of all output records as IN_FID and FEAT_SEQ pair - a list of lists
out_records = []   
for row in arcpy.SearchCursor(result.getOutput(0), fields="IN_FID; FEAT_SEQ"):
    out_records.append([row.IN_FID, row.FEAT_SEQ])

# Sort the output records by FEAT_SEQ values
# Example of out_records = [[3, 1], [5, 3], [1, 1], [4, 3], [2, 2]]
out_records.sort(key = itemgetter(1))
    
# records after sorted by FEAT_SEQ: [[3, 1], [1, 1], [2, 2], [5, 3], [4, 3]]
# records with same FEAT_SEQ value will be in the same group (i.e., identical)
identicals_iter = groupby(out_records, itemgetter(1))
    
# now, make a list of identical groups - each group in a list.
# example identical groups: [[3, 1], [2], [5, 4]]
# i.e., IN_FID 3, 1 are identical, and 5, 4 are identical.
identical_groups = [[item[0] for item in data] for (key, data) in identicals_iter]

print identical_groups

Umgebung

Verwandte Themen

Lizenzierungsinformationen

ArcGIS for Desktop Basic: Nein
ArcGIS for Desktop Standard: Nein
ArcGIS for Desktop Advanced: Ja
9/11/2013