Lấy danh sách các tính năng được chọn trong ArcGIS for Desktop bằng mã Python?


20

Tôi có một câu hỏi liên quan đến các lựa chọn trong ArcGIS for Desktop. Giả sử tôi có một lớp trong ArcMap và tôi đã chọn hai trong số năm tính năng.

Có thể lấy danh sách tất cả các tính năng được chọn bằng cách sử dụng Python không?

Sẽ ổn nếu có một cách để có một (các) thuộc tính đặc biệt của các tính năng được chọn được lưu trữ trong danh sách có thể được ghi vào tệp txt.

Có thể làm điều này trong ArcGIS for Desktop không?

Câu trả lời:


33

Bất cứ khi nào bạn có một lựa chọn trên một lớp, một đối tượng con trỏ sẽ chỉ trả về các hàng đã chọn.

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

6
Nhưng vấn đề là nếu bạn nhận được tất cả các tính năng được trả về, bạn không biết liệu TẤT CẢ hay KHÔNG được chọn.
Matej

2
Điều này cũng áp dụng cho các tính năng được chọn trong lớp tính năng?
Jio

13

chức năng Mô tả cũng sẽ trả về một danh sách. Tôi không chắc chắn nếu điều này nhanh hơn phương pháp con trỏ nhưng tôi thích đây là một công cụ hữu ích. Danh sách kết quả là id đối tượng cho bộ lựa chọ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']

Giải pháp tốt quá! Đáng buồn là tôi không thể đặt hai lần gót chân màu xanh lá cây. Giải pháp này làm cho tập lệnh cũng độc lập với các Phiên bản ArcGIS khác nhau, bởi vì trong ArcGIS 10.1, các con trỏ được gọi theo một cách khác so với ArcGIs 10.0 (ArcGIS 10.1 arcpy.da.SearchCoder, ArcGIS 10.0 arcpy.SearchCoder ...).
Sven

4
Cả hai loại con trỏ đều có sẵn ở 10.1. Bạn không phải sử dụng các con trỏ arcpy.da mới.
blah238

1
Câu trả lời này đưa ra một cách để kiểm tra lựa chọn trống, điều này sẽ ngăn việc vô tình gọi một công cụ trên toàn bộ lớp tính năng trong khi thực tế đó là các tính năng không xảy ra để đáp ứng các tiêu chí lựa chọn của bạn.
nickbrick

Lớn đầu @Sam Flarity, đây là một tốt đẹp (? Nhanh hơn) thay thế cho sử dụng arcpy.SearchCursor hoặc arcpy.da.SearchCursor
Grego
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.