¿Obtener una lista de entidades seleccionadas en ArcGIS for Desktop usando el código Python?


20

Tengo una pregunta sobre las selecciones en ArcGIS for Desktop. Supongo que tengo una capa en ArcMap y he seleccionado dos de cinco entidades.

¿Es posible obtener una lista de todas las características seleccionadas usando Python?

Estaría bien si hay una manera de obtener un atributo (o todos) especial (es) de las características seleccionadas almacenadas en una lista que puede escribirse en un archivo txt.

¿Es posible hacer esto en ArcGIS for Desktop?

Respuestas:


33

Cada vez que tenga una selección en una capa, un objeto de cursor solo devolverá las filas seleccionadas.

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

66
Sin embargo, el problema es que si obtiene todas las funciones devueltas, no sabe si se seleccionaron TODAS o NINGUNAS.
Matej

2
¿Esto también se aplica a las entidades seleccionadas en la clase de entidad?
Jio

13

la función Describir también devolverá una lista. No estoy seguro de si esto es más rápido que el método del cursor, pero creo que es una herramienta útil. La lista resultante es la identificación del objeto para el conjunto de selección.

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']

Buena solución también! Lamentablemente, no puedo establecer dos veces el tacón verde. Esta solución hace que el script también sea independiente de las diferentes versiones de ArcGIS, porque en ArcGIS 10.1 los cursores se llaman de manera diferente que en ArcGIs 10.0 (ArcGIS 10.1 arcpy.da.SearchCursor, ArcGIS 10.0 arcpy.SearchCursor ...).
Sven

44
Ambos tipos de cursor están disponibles en 10.1. No tiene que usar los nuevos cursores arcpy.da.
blah238

1
Esta respuesta ofrece una forma de verificar la selección vacía, lo que evitaría llamar inadvertidamente a una herramienta en una clase de entidad completa cuando, de hecho, no hubo entidades que cumplieran con sus criterios de selección.
nickbrick

Gran consejo @Sam Flarity, esta es una buena alternativa (¿más rápida?) Al uso de arcpy.SearchCursor o arcpy.da.SearchCursor
grego
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.