OBJECTID名を取得する最良の方法は何ですか?


13

フィーチャクラスのOBJECTID名を取得する最良の方法は何ですか?

カーソルで「OID @」を使用してフィールドを取得できることは知っていますが、その名前も取得できますか?

スクリプトを作成していますが、クエリで使用されるOBJECTID_2、OBJECTID_12、FIDなどのさまざまなOBJECTID名を考慮する必要があります。

Describeを使用して名前を取得する唯一の方法ですか?

例えば:

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

別の方法があるのか​​と思っています。

ありがとう。

回答:


23

describeを使用するのが最適だと思います

oid_fieldname = arcpy.Describe(fc).OIDFieldName

とても簡単です。それ以外の場合は、listFieldsを使用するときに直接フィルタリングできるため、試すことができます

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

しかし、oidFieldがない場合はエラーを返します(可能性は低いですが...)


1
私は非常に簡単だと思います。Describeが少し遅いことがわかりました。ありがとう。
ianbroad 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.