Ottenere l'elenco delle funzionalità selezionate in ArcGIS per desktop usando il codice Python?


20

Ho una domanda relativa alle selezioni in ArcGIS per desktop. Supponiamo di avere un livello in ArcMap e ho selezionato due delle cinque funzionalità.

È possibile ottenere un elenco di tutte le funzionalità selezionate utilizzando Python?

Andrebbe bene se c'è un modo per ottenere uno o più attributi speciali (o tutti) delle caratteristiche selezionate memorizzati in un elenco che può essere scritto in un file txt.

È possibile farlo in ArcGIS per desktop?

Risposte:


33

Ogni volta che hai una selezione su un livello un oggetto cursore restituirà solo le righe selezionate.

for row in arcpy.SearchCursor("name_of_layer_with_selection"):
    print row.field1, row.field2

6
Ma il problema è che se si ottengono tutte le funzionalità restituite non si sa se TUTTI o NESSUNO sono stati selezionati.
Matej,

2
Questo vale anche per le funzionalità selezionate nella classe di caratteristiche?
Jio,

13

la funzione Descrivi restituirà anche un elenco. Non sono sicuro che questo sia più veloce del metodo cursore, ma mi piace che sia uno strumento utile. L'elenco risultante è l'id dell'oggetto per il set di selezione.

import arcpy

aa = arcpy.Describe("someFC")
ss = aa.FIDset
tt = ss.split("; ")
Print tt

[u'1363', u'1364', u'1365', u'1367', u'1369', u'1370']

Buona soluzione anche! Purtroppo non sono in grado di impostare due volte il tallone verde. Questa soluzione rende lo script indipendente anche dalle diverse versioni di ArcGIS, perché in ArcGIS 10.1 i cursori vengono chiamati in modo diverso rispetto ad ArcGI 10.0 (ArcGIS 10.1 arcpy.da.SearchCursor, ArcGIS 10.0 arcpy.SearchCursor ...).
Sven,

4
Entrambi i tipi di cursore sono disponibili in 10.1. Non è necessario utilizzare i nuovi cursori arcpy.da.
blah238,

1
Questa risposta fornisce un modo per verificare la selezione vuota, il che impedirebbe di chiamare inavvertitamente uno strumento su un'intera classe di caratteristiche quando in realtà erano zero le caratteristiche che soddisfacevano i criteri di selezione.
nickbrick,

Ottimo consiglio @Sam Flarity, questa è una bella (più veloce?) Alternativa all'utilizzo di arcpy.SearchCursor o arcpy.da.SearchCursor
grego
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.