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