Cách tốt nhất để có được tên OBRIID là gì?


13

Cách tốt nhất để có được tên OBRIID của một lớp đối tượng là gì?

Tôi biết bạn có thể sử dụng "OID @" trong một con trỏ để lấy trường, nhưng bạn cũng có thể lấy tên từ đó không?

Tôi đang viết một tập lệnh và cần tính đến các tên OBRIID khác nhau, như OBRIID_2, OBJECTID_12, FID, v.v. sẽ được sử dụng trong truy vấn.

Là sử dụng Mô tả cách duy nhất để có được tên?

Ví dụ:

oid_field = [field.name for field in arcpy.ListFields("FC") if field.type == "OID"]

Tôi chỉ tự hỏi nếu có một cách khác.

Cảm ơn.

Câu trả lời:


23

Tôi sẽ nói rằng sử dụng mô tả là tốt nhất

oid_fieldname = arcpy.Describe(fc).OIDFieldName

là khá đơn giản. Mặt khác, bạn có thể lọc trực tiếp khi bạn sử dụng listFields, vì vậy bạn có thể thử

oid_fieldname = arcpy.ListFields(fc,"","OID")[0].name

nhưng điều này sẽ trả về lỗi nếu không có oidField (không có khả năng, nhưng ...)


1
Tôi đồng ý nó rất đơn giản. Tôi vừa nhận thấy Mô tả có thể hơi chậm. Cảm ơn.
ianbroad
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.