フィールドの一括更新 (Batch Update Fields) (データ管理)

サマリー

定義テーブルで定義されたスキーマに基づいてテーブルまたはフィーチャクラス内のフィールドを作成したり、新しいテーブルやフィーチャクラスを作成したりします。

このツールを使用すると、次の操作を行えます。

  • 新しいフィールドの追加
  • 既存フィールドの更新
  • フィールドの並べ替え
  • フィールド タイプの変更
  • フィールド プロパティの変更
  • フィールドのエイリアスを割り当てまたは更新
  • Python を使用した既存のフィールドに基づくフィールド値の計算
  • フィールドの削除

使用法

  • 入力テーブルは、フィーチャクラスまたはテーブルを使用できます。 このツールは、更新されたスキーマを使用して新しいフィーチャクラスまたはテーブルを出力します。

  • 出力テーブルのスキーマの変更は、[出力スキーマ定義テーブル] パラメーターにより定義されます。

    定義テーブルの例を次に示します。

    定義テーブルの例

    上記の例のように、[出力スキーマ定義テーブル] のパラメーター値に次のフィールド名が含まれる場合、 対応するパラメーター値は自動的に入力されます。

    • Target field
    • Source field
    • Type
    • Decimals/Length
    • Alias
    • Script

  • このツールは、定義テーブルのスクリプト フィールドを指定することにより、既存のフィールドを使用して新しいフィールドを計算します。

    定義テーブルにある Script フィールドの値の例は、Population Density フィールドを計算する !TOTPOP!/!AREA! です。 フィールド名は感嘆符で囲まれている必要があります。

  • このツールを使用して、他のフィールド計算に依存する追加のフィールドを作成できます。 たとえば、Bev_IndexBev_Per_Capita フィールドを使用して計算され、ツールの実行時にも計算されます。

  • 複数行の Python の演算には、[スクリプト ファイル] パラメーターを使用します。 スクリプト ファイルを使用するには、Python 関数を使用してファイルを作成し、定義テーブルで関数を参照します。

    次に、Bev_Per_Capita というターゲット フィールドのスクリプト コードの例を示します。

    • Bev_Per_Capita(!Bev_Total!, !TOTPOP!) の値を含む [出力スキーマ定義テーブル] パラメーター値の Script というフィールド
    • 次の関数を含む [スクリプト ファイル] のパラメーター値:
      
      def Bev_Per_Capita(Bev_Total, TOTPOP):
          return Bev_Total / TOTPOP

    次の例は、ツールの実行前と実行後の属性テーブルを示しています。

    フィールドの一括更新ツールの例

パラメーター

ラベル説明データ タイプ
入力テーブル

入力テーブルまたはフィーチャクラス。

Table View
出力テーブル

更新されたフィールドを含む出力テーブルまたはフィーチャクラス。

Table
出力スキーマ定義テーブル

出力の作成に使用するフィールドの定義と演算を含むテーブル。

Table View
スクリプト ファイル
(オプション)

[出力テーブル] パラメーター フィールドの計算を実行する複数行の Python 関数を格納する Python ファイル。

File
出力フィールド名
(オプション)

出力テーブルのターゲット フィールド名を含む定義テーブルのフィールド名。

Field
ソース フィールド名
(オプション)

入力テーブルのソース フィールド名を含む定義テーブルのフィールド名。

Field
出力フィールド タイプ
(オプション)

出力テーブルのデータ タイプを定義する定義テーブルのフィールド名。

Field
出力フィールドの小数点以下の桁数 (長さ)
(オプション)

出力テーブルのフィールドの小数点以下の桁数または長さを定義する定義テーブルのフィールド名。

Field
出力フィールド エイリアス
(オプション)

出力テーブルのフィールドのエイリアス名を定義する定義テーブルのフィールド名。

Field
出力フィールド スクリプト
(オプション)

出力フィールドの演算を定義する定義テーブルのフィールド名。

Field

arcpy.management.BatchUpdateFields(in_table, out_table, field_definition_table, {script_file}, {output_field_name}, {source_field_name}, {output_field_type}, {output_field_decimals_or_length}, {output_field_alias}, {output_field_script})
名前説明データ タイプ
in_table

入力テーブルまたはフィーチャクラス。

Table View
out_table

更新されたフィールドを含む出力テーブルまたはフィーチャクラス。

Table
field_definition_table

出力の作成に使用するフィールドの定義と演算を含むテーブル。

Table View
script_file
(オプション)

out_table パラメーター フィールドの計算を実行する複数行の Python 関数を格納する Python ファイル。

File
output_field_name
(オプション)

出力テーブルのターゲット フィールド名を含む定義テーブルのフィールド名。

Field
source_field_name
(オプション)

入力テーブルのソース フィールド名を含む定義テーブルのフィールド名。

Field
output_field_type
(オプション)

出力テーブルのデータ タイプを定義する定義テーブルのフィールド名。

Field
output_field_decimals_or_length
(オプション)

出力テーブルのフィールドの小数点以下の桁数または長さを定義する定義テーブルのフィールド名。

Field
output_field_alias
(オプション)

出力テーブルのフィールドのエイリアス名を定義する定義テーブルのフィールド名。

Field
output_field_script
(オプション)

出力フィールドの演算を定義する定義テーブルのフィールド名。

Field

コードのサンプル

BatchUpdateFields の例 (スタンドアロン スクリプト)

次の Python ウィンドウ スクリプトは、BatchUpdateFields 関数をスタンドアロン スクリプトで使用する方法を示しています。

import arcpy
arcpy.management.BatchUpdateFields(
    "zip_codes", "MyProject.gdb\zip_codes_BatchUpdateFields",
    "DATA_TRANSFORMATION.csv", r"C:\BatchUpdate\script.py", "TARGET",
    "SOURCE", "DATATYPE", "DECIMALS", "ALIAS", "SCRIPT")

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック