シェイプエリアフィールド名の決定


9

私はさまざまな空間ポリゴンファイル(シェープファイル、ファイル/パーソナルgdbフィーチャクラス、sdeフィーチャクラス(一部は空間ビュー))を扱っており、ファイルタイプによっては、シェイプエリアフィーチャクラスフィールド名(作成されたフィールドではなく、必須フィールド)

たとえば、フィールド名は「Shape_Area」、「SHAPE_Area」、「SHAPE.AREA」、「GEOMETRY_Area」、「GEOMETRY.AREA」とは異なります

これらすべてのタイプのフィーチャクラスの領域を引き出すPythonスクリプトを書いていて、次のように何かを行います。

for field in arcpy.ListFields(fc):
    if field.name in ["Shape_Area", "SHAPE_Area", "SHAPE.AREA", "GEOMETRY_Area", "GEOMETRY.AREA"]:
         do something

名前を付けることができるすべての方法を一覧表示するだけでなく、シェイプエリアフィールドを引き出すより賢い方法があるかどうか疑問に思っていますか?Areaなどのフィールドプロパティはないようです。これを行う他の方法はありますか?

回答:


12

以下についてはどうでしょう:

fc = "path to input feature class"
desc = arcpy.Describe(fc)
areafieldname = desc.areaFieldName

自動生成されたAreaフィールドを持つさまざまなフィーチャクラスで機能するはずです。これにより、シェープファイルが除外されます。


バルバロッサに感謝します。フィールドを説明する方法を探していて、検索で見つからなかったため、Describeでそのプロパティを見逃していたに違いありません。それは完璧に動作します。
Mike
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.