フィールドの追加(Add Field) (データ管理)
サマリ
新しいフィールドを単独のテーブル、あるいはフィーチャクラス、フィーチャ レイヤ、ラスタ カタログ、属性テーブルのあるラスタなどのテーブルに追加します。
使用法
-
このコマンドに対する有効な入力として機能するものには、カバレッジ、スタンドアロン テーブル、ジオデータベース(ArcSDE、パーソナル、ファイル)のフィーチャクラス、レイヤ ファイル、ラスタ カタログ、シェープファイルなどがあります。VPF および CAD のフィーチャ データ オーバーレイは、ArcGIS の本来の形式ではない読み取り専用形式であるため機能しません。
-
カバレッジ、シェープファイル、dBASE テーブルでは、フィールド タイプに文字が指定されると、各レコードに空白が挿入されます。フィールド タイプに数値項目が指定されると、各レコードにゼロが挿入されます。
-
追加したフィールドは、常にテーブルの最後に表示されます。
-
[フィールドの長さ] パラメータは、タイプがテキストまたは BLOB のフィールドに対してのみ使用できます。
-
ジオデータベースの場合は、フィールド タイプに文字か数字が指定され、[NULL 値を許可] パラメータのデフォルトが使用されると、各レコードに <Null> が挿入されます。
-
シェープファイルではフィールドのエイリアスがサポートされないため、シェープファイルにフィールドのエイリアスを追加することはできません。
-
Null を使用できないフィールドは、ジオデータベースのフィーチャクラスまたはテーブルが空の場合のみ追加することができます。このツールでは、行がすでに存在する場合には Null を使用できないフィールドを追加できません。
-
[フィールド ドメイン] パラメータには、パーソナル ジオデータベース、ファイル ジオデータベース、または SDE ジオデータベース内のフィーチャクラスに存在するドメインを指定できます。
-
フィールドの精度とスケールは、そのフィールドに格納できるデータの最大サイズと精度を示します。精度はフィールドに格納できる桁数を示し、スケールは小数フィールドの小数点以下の桁数を示します。たとえば、フィールドの値が 54.234 であれば、スケールは 3 で精度は 5 です。
特定の精度とスケールに適切なフィールド タイプを選択するために、次のガイドラインに従ってください。
- 小数または整数のフィールドの作成で精度とスケールに 0 を指定すると、対象のデータベースでサポートされる場合はバイナリ タイプのフィールドの作成が試みられます。パーソナル ジオデータベースとファイル ジオデータベースではバイナリ タイプのフィールドしかサポートされないため、精度とスケールは無視されます。
- 小数フィールドの作成で精度とスケールを指定すると、精度が 6 よりも大きい場合は Double タイプ、6 以下の場合は Float タイプになります。Double タイプのフィールドの作成で精度を 6 以下に指定すると、Float タイプのフィールドが作成されます。Float タイプのフィールドの作成で精度を 6 よりも大きく指定すると、Double タイプのフィールドが作成されます。
- スケールを 0、精度を 10 以下に指定すると、整数フィールドを作成することになります。整数フィールドの作成では、精度を 10 以下にする必要があります。10 よりも大きく指定すると、Double タイプの小数フィールドとして作成されます。
-
ジオデータベースのフィーチャクラスまたはテーブルに新しいフィールドを作成するときは、フィールドのタイプは指定できますが、その精度とスケールを指定することはできません。ダイアログ ボックスでは精度やスケールの値を追加できますが、ツールの実行時には無視されます。
-
[フィールド ドメイン] パラメータには、既存のドメインの名前を指定する必要があります。無効なドメイン名や値を入力してもツールが失敗する原因にはなりませんが、入力は無視され、フィールドにドメインは設定されません。
-
[REQUIRED] として設定されたフィールドは永続的になり、今後の処理で削除することはできません。後で削除できるようにするには、フィールドを [NON_REQUIRED](デフォルト)に設定してください。
-
タイプがラスタのフィールドには、ラスタ イメージを属性として格納できます。ラスタ イメージは、ジオデータベースの内部またはジオデータベースとともに保存されます。フィーチャの説明にピクチャが最適である場合に便利です。ラスタ タイプのフィールドには精度、スケール、長さを設定できません。
構文
パラメータ | 説明 | データ タイプ |
in_table |
指定したフィールドを追加する対象となる入力テーブル。フィールドは既存の入力テーブルに追加され、新しい出力テーブルは作成されません。 フィールドを追加できる対象は、ジオデータベース(ArcSDE、ファイル、パーソナル)のフィーチャクラス、カバレッジ、シェープファイル、ラスタ カタログ、スタンドアロン テーブル、属性テーブルがあるラスタ、およびレイヤです。 | Mosaic Layer; Raster Catalog Layer; Raster Layer; Table View |
field_name |
入力テーブルに追加するフィールドの名前 | String |
field_type |
新しいフィールドの作成に使用されるフィールドのタイプ。
| String |
field_precision (オプション) |
フィールドに格納できる桁数を指定します。小数点以下であるかどうかにかかわらず、すべての桁が対象になります。 入力テーブルがパーソナル ジオデータベースまたはファイル ジオデータベースの場合、フィールドの精度の値は無視されます。 | Long |
field_scale (オプション) |
フィールドに格納できる小数点以下の桁数を設定します。このパラメータは、Float タイプと Double タイプのデータ フィールドのみで使用します。 入力テーブルがパーソナル ジオデータベースまたはファイル ジオデータベースの場合、フィールドのスケールの値は無視されます。 | Long |
field_length (オプション) |
追加するフィールドの長さ。この値は、フィールドの各レコードに許容される文字の最大数を設定します。このオプションは、タイプがテキストまたはブロブのフィールドに対してのみ適用されます。 | Long |
field_alias (オプション) |
フィールド名に割り当てる別名。この名前は、あいまいなフィールド名にわかりやすい名前を付けるために使用します。フィールド エイリアスのパラメータは、ジオデータベースとカバレッジに対してのみ適用されます。 | String |
field_is_nullable (オプション) |
関連付けられている属性情報がない状態の地理フィーチャ。ゼロや空のフィールドとは異なるもので、ジオデータベースのフィールドのみでサポートされます。
| Boolean |
field_is_required (オプション) |
作成するフィールドが、テーブルにとって必須のフィールドであるかどうかを指定します。ジオデータベースのフィールドのみでサポートされます。
| Boolean |
field_domain (オプション) |
ジオデータベース内のテーブル、フィーチャクラス、またはサブタイプの特定の属性に許可される値を制約するために使用します。フィールドに適用するには、既存のドメインの名前を指定する必要があります。 | String |
コードのサンプル
次の Python ウィンドウ スクリプトで、AddField(フィールドの追加)ツールをイミディエイト モードで使用する方法を示します。
import arcpy
from arcpy import env
env.workspace = "C:/data/airport.gdb"
arcpy.AddField_management("schools", "ref_ID", "LONG", 9, "", "", "refcode", "NULLABLE", "REQUIRED")
次のスタンドアロン スクリプトで、AddField(フィールドの追加)ツールを使用する方法を示します。
# Name: AddField_Example2.py
# Description: Add a pair of new fields to a table
# Import system modules
import arcpy
from arcpy import env
# Set environment settings
env.workspace = "C:/data/airport.gdb"
# Set local variables
inFeatures = "schools"
fieldName1 = "ref_ID"
fieldPrecision = 9
fieldAlias = "refcode"
fieldName2 = "status"
fieldLength = 10
# Execute AddField twice for two new fields
arcpy.AddField_management(inFeatures, fieldName1, "LONG", fieldPrecision, "", "",
fieldAlias, "NULLABLE")
arcpy.AddField_management(inFeatures, fieldName2, "TEXT", "", "", fieldLength)