Python 코드를 사용하여 ArcGIS for Desktop에서 선택한 기능 목록을 가져 오십니까?


20

ArcGIS for Desktop의 선택에 관한 질문이 있습니다. ArcMap에 레이어가 하나 있고 5 가지 기능 중 2 개를 선택했다고 가정합니다.

파이썬을 사용하여 선택된 모든 기능의 목록을 얻을 수 있습니까?

txt 파일에 기록 할 수있는 목록에 저장된 선택된 기능 중 하나의 특수 (또는 모든) 속성을 얻는 방법이 있다면 좋을 것입니다.

ArcGIS for Desktop에서이 작업을 수행 할 수 있습니까?

답변:


33

레이어에서 선택할 때마다 커서 객체는 선택한 행만 반환합니다.

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

6
그러나 문제는 모든 기능을 반환하면 ALL 또는 NONE이 선택되었는지 알 수 없다는 것입니다.
Matej

2
기능 클래스에서 선택한 기능에도 적용됩니까?
Jio

13

Describe 함수도 목록을 반환합니다. 이것이 커서 방법보다 빠르면 확실하지 않지만 유용한 도구로 선호합니다. 결과 목록은 선택 세트의 오브젝트 ID입니다.

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 10.1에서는 커서가 ArcGIs 10.0 (ArcGIS 10.1 arcpy.da.SearchCursor, ArcGIS 10.0 arcpy.SearchCursor ...)과 다른 방식으로 호출되기 때문에이 솔루션은 스크립트를 다른 ArcGIS 버전과 독립적으로 만듭니다.
Sven

4
두 커서 유형 모두 10.1에서 사용 가능합니다. 새로운 arcpy.da 커서를 사용할 필요는 없습니다.
blah238

1
이 답변은 빈 선택을 확인하는 방법을 제공합니다. 실제로 선택 기준을 충족시키는 데 전혀 기능이없는 경우 전체 기능 클래스에서 실수로 도구를 호출하는 것을 방지 할 수 있습니다.
nickbrick

위대한 팁 @Sam Flarity이, 이것은 좋은 (? 빨리) 대안 arcpy.SearchCursor 또는 arcpy.da.SearchCursor 사용하는
grego
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.