FAQ
ArcPy (ArcMap): フィールドにフィーチャクラスの情報を追加する方法

ナレッジ番号:2892 | 登録日:2023/05/29 | 更新日:2024/06/20

概要

Python スクリプトを使用して、フィールドにフィーチャクラスの情報を追加する方法をご紹介します。

ここでは、指定したフィーチャクラスに新規フィールドを作成して、フィーチャクラスのファイルパス、名前、座標系といったフィーチャクラスの情報を追加しています。フィーチャクラスの情報は、ArcPy の Describe 関数を使用して、フィーチャクスのプロパティにアクセスし取得しています。

サンプル コード

# coding:cp932
# Purpose:      フィールドにフィーチャクラスの情報を格納します。

# ArcPy サイト パッケージをインポートします。
import arcpy

# 入力フィーチャクラスを設定します。
inputFeatureClass = r"C:\FAQ\database.gdb\japan_ver71"

# Describe 関数を使用して、フィーチャクラスのプロパティを取得します。
desc = arcpy.Describe(inputFeatureClass)

# 関数の引数に使用する変数を設定します。
Field1 = "PathField"
Field2 = "NameField"
Field3 = "SpatialRefField"

# [フィールドの追加(Add Field)] ツールを使用して、対象のフィーチャクラスに新規にフィールドを追加します。
arcpy.AddField_management(inputFeatureClass, Field1, "TEXT", "", "", "", u"ファイルパス")
arcpy.AddField_management(inputFeatureClass, Field2, "TEXT", "", "", "", u"名前")
arcpy.AddField_management(inputFeatureClass, Field3, "TEXT", "", "", "", u"座標系")

# データアクセス モジュールの UpdateCursor を取得します。
# Cursor を使用することで、フィーチャ毎のループ処理を行えます。
# 第二引数に、取得したいフィールドをリストで指定します。
cur = arcpy.da.UpdateCursor(inputFeatureClass, [Field1, Field2, Field3])

# UpdateCursor の updateRow メソッドを使用して、フィールドの値を更新します。
for row in cur:
    row[0] = desc.path
    row[1] = desc.name
    # SpatialReference オブジェクトを文字列型に変換します。
    row[2] = str(desc.spatialReference.name)
    cur.updateRow(row)

# オブジェクトを削除し、参照を解放します。
del cur, row

免責事項

こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。

メタデータ

種類

製品