Получение списка выбранных объектов в ArcGIS for Desktop с использованием кода Python?


20

У меня есть вопрос относительно выбора в ArcGIS for Desktop. Предполагается, что у меня есть один слой в ArcMap, и я выбрал два из пяти объектов.

Можно ли получить список всех выбранных функций с помощью Python?

Было бы хорошо, если бы был способ получить один специальный (или все) атрибут (ы) выбранных объектов, хранящихся в списке, который можно записать в текстовый файл.

Возможно ли это сделать в ArcGIS for Desktop?

Ответы:


33

Каждый раз, когда у вас есть выделение на слое, объект курсора будет возвращать только выбранные строки.

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

6
Но проблема в том, что если вы получите все возвращенные функции, вы не будете знать, были ли выбраны ВСЕ или НЕТ.
— Матей

2
Это также относится к выбранным объектам в классе объектов?
— Джио

13

функция Describe также возвращает список. Я не уверен, что это быстрее, чем метод курсора, но мне это нравится, чтобы быть полезным инструментом. Результирующий список - это идентификаторы объекта для набора выбора.

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

Хорошее решение тоже! К сожалению, я не могу установить два раза зеленый каблук. Это решение делает скрипт также независимым от разных версий ArcGIS, поскольку в ArcGIS 10.1 курсоры вызываются не так, как в ArcGI 10.0 (ArcGIS 10.1 arcpy.da.SearchCursor, ArcGIS 10.0 arcpy.SearchCursor ...).
— Свен

4
Оба типа курсора доступны в 10.1. Вам не нужно использовать новые курсоры arcpy.da.
— blah238

1
Этот ответ дает возможность проверить наличие пустого выделения, что предотвратит непреднамеренный вызов инструмента для всего класса пространственных объектов, когда фактически это были нулевые объекты, которые соответствуют вашим критериям выбора.
— Никбрик

Отличный совет @Sam Flarity, это хорошая (более быстрая?) Альтернатива использованию arcpy.SearchCursor или arcpy.da.SearchCursor
— grego
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.