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

サマリー

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

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

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

使用法

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

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

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

    定義テーブルの例

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

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

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

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

  • このツールでは、他のフィールド演算に依存する追加フィールドを作成できます。 たとえば、Bev_Index フィールドは Bev_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

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

    フィールドの一括更新 (Batch Update Fields) ツールの例

パラメーター

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

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

Table View
出力テーブル

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

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

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

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

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

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

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

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

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

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

出力テーブルのデータ タイプを定義する [出力スキーマ定義テーブル] パラメーター値のフィールド。 このフィールドはテキスト タイプである必要があります。

出力テーブルのデータ タイプを定義する field_definition_table のフィールド。 このフィールドはテキスト タイプである必要があります。

以下の値がサポートされています。

  • BigInteger - 64 ビット整数
  • Blob - バイナリ ラージ オブジェクト
  • Date - 日付
  • DateOnly - 日付のみ
  • Double - 倍精度浮動小数点数
  • GlobalID - Global ID
  • GUID - グローバル一意識別子
  • Integer (または Long) - 32 ビット整数
  • Raster - ラスター
  • Float (または Single) - 単精度浮動小数点数
  • Short (または SmallInteger) - 16 ビット整数
  • Text (または String) - 文字列
  • TimeOnly - 時間のみ
  • TimestampOffset - タイムスタンプ オフセット
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
(オプション)

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

File
output_field_name
(オプション)

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

Field
source_field_name
(オプション)

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

Field
output_field_type
(オプション)

出力テーブルのデータ タイプを定義する [出力スキーマ定義テーブル] パラメーター値のフィールド。 このフィールドはテキスト タイプである必要があります。

出力テーブルのデータ タイプを定義する field_definition_table のフィールド。 このフィールドはテキスト タイプである必要があります。

以下の値がサポートされています。

  • BigInteger - 64 ビット整数
  • Blob - バイナリ ラージ オブジェクト
  • Date - 日付
  • DateOnly - 日付のみ
  • Double - 倍精度浮動小数点数
  • GlobalID - Global ID
  • GUID - グローバル一意識別子
  • Integer (または Long) - 32 ビット整数
  • Raster - ラスター
  • Float (または Single) - 単精度浮動小数点数
  • Short (または SmallInteger) - 16 ビット整数
  • Text (または String) - 文字列
  • TimeOnly - 時間のみ
  • TimestampOffset - タイムスタンプ オフセット
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")

関連トピック