Deutsch

How To: Auswählen von jeweils n Zeilen in einer Tabelle in ArcMap

Zusammenfassung

In manchen Fällen möchten Benutzer jeweils n Zeilen in einer Tabelle auswählen, um die ausgewählten Features zu bearbeiten, ohne die Zeilen einzeln auswählen und füllen zu müssen. In diesem Artikel wird gezeigt, wie mit einem Python-Skript jeweils n Zeilen ausgewählt werden. In diesem Beispiel ist der Intervallwert auf 3 festgelegt. Als resultierende Ausgabe wird ein neuer Layer mit ausgewählten und nicht ausgewählten Features erstellt. In der Attributtabelle für den neuen Layer sind drei Zeilen ausgewählt, die nächsten drei Zeilen werden übersprungen, und dieses Prinzip wird bis zum Ende sämtlicher Zeilen angewendet.

Dies führt dazu, dass die Hälfte der Zeilen der ursprünglichen Tabelle ausgewählt ist, jedoch sind immer drei aufeinanderfolgende Zeilen ausgewählt und drei aufeinanderfolgende Zeilen nicht ausgewählt. In der folgenden Abbildung ist die erwartete Ausgabe dargestellt:

An image of the new layer with selected attributes created after running the Python script.
 

Vorgehensweise

Das folgende Python-Skript durchläuft die ObjectIDs und wählt gemäß dem mit dem Werkzeug "Layer nach Attributen auswählen" und dem Werkzeug "Feature-Layer erstellen" festgelegten Intervallwert jeweils n Zeilen aus. Durch das Ändern des Intervallwertes im Skript wird die Anzahl der ausgewählten und übersprungenen Zeilen geändert. Befolgen Sie die unten stehenden Anweisungen, um das Skript im Fenster "Python" auszuführen.

  1. Klicken Sie im ArcMap-Menü auf Geoverarbeitung > Python, um das Fenster Python zu öffnen.
  2. Kopieren Sie das Skript, und fügen Sie es in das Fenster Python ein.
import arcpy

##Replace data path## 
fc = r'C:\EsriTraining\SpatialProb\CraterLake.gdb\Roads'

##Set desired interval. interval = 1 selects every other row, interval = 2 selects 2, skips 2,##
##interval = 3 selects 3, skips 3 and so on.## 
interval = 3
selected_oid = []
ready_to_add = False
interval = abs(interval)

##Replace layer_name if desired##
fc = arcpy.MakeFeatureLayer_management(fc, "layer_name")

with arcpy.da.SearchCursor(fc, 'OID@') as cur:
     for i, row in enumerate(cur):
         if i % interval ==0:
             ready_to_add = not ready_to_add
         if ready_to_add:
             selected_oid.append(unicode(row[0]))

where = 'OBJECTID in ({})'.format(', '.join(selected_oid))
selected_fc = arcpy.SelectLayerByAttribute_management(fc, "NEW_SELECTION", where)
  1. Ersetzen Sie den Quellpfad des Feature-Layers und den neuen Layer-Namen.
  2. Drücken Sie die Eingabetaste.

Referenzinformationen