概要
新しいフィールドを単独のテーブル、あるいはフィーチャクラス、フィーチャ レイヤー、属性テーブルのあるラスターなどのテーブルに追加します。
使用法
シェープファイル テーブルと 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 タイプの小数フィールドとして作成されます。
ジオデータベースのフィーチャクラスまたはテーブルに新しいフィールドを作成するときは、フィールドのタイプは指定できますが、その精度とスケールを指定することはできません。ダイアログ ボックスでは精度やスケールの値を追加できますが、ツールの実行時には値は無視されます。
必須フィールドは永続的で、削除することはできません。後で削除できるようにするには、フィールドを「nonrequired」(デフォルト) に設定してください。
タイプがラスターのフィールドには、ラスター画像を属性として格納できます。ラスター画像は、ジオデータベースの内部またはジオデータベースとともに保存されます。フィーチャの説明に画像が最適である場合に便利です。ラスター タイプのフィールドには精度、スケール、長さを設定できません。
構文
arcpy.management.AddField(in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
パラメーター | 説明 | データ タイプ |
in_table | 指定したフィールドを追加する対象となる入力テーブル。フィールドは既存の入力テーブルに追加され、新しい出力テーブルは作成されません。 フィールドを追加できる対象は、ジオデータベースのフィーチャクラス、シェープファイル、カバレッジ、スタンドアロン テーブル、ラスター カタログ、属性テーブルがあるラスター、およびレイヤーです。 | Mosaic 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 (オプション) | このフィールドに NULL 値を含めることができるかどうかを指定します。NULL 値は、ゼロや空のフィールドとは異なり、ジオデータベースのフィールドのみでサポートされます。
| Boolean |
field_is_required (オプション) | 作成されるフィールドが、テーブルの必須フィールドであるかどうかを指定します。必須フィールドはジオデータベースでのみサポートされます。
| Boolean |
field_domain (オプション) | ジオデータベース内のテーブル、フィーチャクラス、またはサブタイプの特定の属性に許可される値を制約します。フィールドに適用するには、既存のドメインの名前を指定する必要があります。 | String |
派生した出力
名前 | 説明 | データ タイプ |
out_table | 更新された入力テーブル。 | テーブル |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで AddField 関数を使用する方法を示しています。
import arcpy
arcpy.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
# 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)
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい