概要
複数の入力データセットを 1 つの既存のターゲット データセットに追加 (アペンド) します。入力データセットとして、フィーチャクラス、テーブル、シェープファイル、ラスター、アノテーション、またはディメンションを使用できます。
複数の入力データセットを 1 つの新しい出力データセットに結合するには [マージ (Merge)] ツールを使用します。
図
使用法
このツールは、既存のデータセットに新しいフィーチャ、またはその他のデータを複数のデータセットから追加するときに使用します。このツールは、ポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、テーブル、ラスター、アノテーション フィーチャクラス、ディメンション フィーチャクラスを、同じタイプの既存のデータセットに追加できます。たとえば、複数のテーブルを既存のテーブルに追加したり、複数のラスターを既存のラスター データセットに追加したりすることはできますが、ライン フィーチャクラスをポイント フィーチャクラスに追加することはできません。
-
[アペンド (Append)] ツールの [フィールド マップ] パラメーターを使用すると、入力データセットの各フィールドの属性情報をターゲット データセットに転送する方法を制御できます。[フィールド マップ] パラメーターを使用できるのは、[スキーマ タイプ] で [フィールド マップを使用してスキーマの違いをリコンサイル] が選択されている場合に限ります。
このツールでは、フィーチャがターゲット データセットに追加されるときに、フィーチャのライン分割は行われません。アペンド後にフィーチャが重なった場合でも、入力フィーチャクラスとターゲット フィーチャクラスのすべてのフィーチャがそのまま表示されます。フィーチャ ジオメトリの結合や分割を実行するには、[ユニオン (Union)] ツールを使用します。
[スキーマ タイプ] で [入力スキーマはターゲット スキーマと一致] が選択されている場合 (Python では schema_type = "TEST")、フィーチャを追加するには、入力データセットのスキーマ (フィールド定義) がターゲット データセットのスキーマと一致している必要があります。[フィールド マップを使用してスキーマの違いをリコンサイル] を選択した場合 (Python では schema_type = "NO_TEST")、入力データセットのスキーマ (フィールド定義) がターゲット データセットのスキーマと一致している必要はありません。ただし、ターゲット データセットのフィールドと一致しない入力データセットのフィールドは、[フィールド マップ] パラメーターでマッピングが明示的に設定されていない限り、ターゲット データセットにマッピングされません。
入力データセットのデータは、スキーマ (フィールド定義) があらかじめ定義されている既存のターゲット データセットに書き込まれるため、ターゲット データセットでのフィールドの追加や削除は [フィールド マップ] パラメーターで実行できません。
入力フィーチャクラスとターゲット フィーチャクラスの空間参照が一致しない場合、[アペンド (Append)] ツールでは、ターゲット フィーチャクラスで使用されている座標系に入力フィーチャクラスのフィーチャが投影されます。
このツールでは、エッジ マッチが実行されないので、フィーチャのジオメトリに対する調整は行われません。
マップ レイヤーは [入力データセット] として使用することができます。レイヤーで選択が行われている場合は、選択されているレコード (フィーチャまたはテーブル行) だけが [アペンド (Append)] ツールの処理対象になります。
このツールでは、名前の同じ入力レイヤーを複数使用することはできません。この制限を回避するには、ツール ダイアログ ボックスの参照ボタンを使用して、個々の [入力データセット] の絶対パスを入手してください。
[サブタイプ] パラメーターを使用するには、ターゲット データセットにサブタイプ フィールドが定義され、サブタイプ コードが割り当てられている必要があります。[サブタイプ] パラメーターには、ターゲット データセットに追加されるすべての新しいデータにこのサブタイプを割り当てることを示すサブタイプの説明を記述します。
構文
arcpy.management.Append(inputs, target, {schema_type}, {field_mapping}, {subtype})
パラメーター | 説明 | データ タイプ |
inputs [inputs,...] | ターゲット データセットに追加するデータを含む入力データセット。入力データセットには、ポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、テーブル、ラスター、アノテーション フィーチャクラス、ディメンション フィーチャクラスを指定することができます。入力データセットのそれぞれがターゲット データセットのデータ タイプに一致する必要があります。 | Table View; Raster Layer |
target | 入力データセットのデータを追加する既存のデータセット。 | Table View; Raster Layer |
schema_type (オプション) | データを追加するために、入力データセットのスキーマ (フィールド定義) をターゲット データセットのスキーマと一致させる必要があるかどうかを指定します。
| String |
field_mapping (オプション) | 入力データセットの属性フィールドのターゲット データセットへの転送方法またはマッピング方法を制御します。このパラメーターを使用できるのは、[schema_type] パラメーターが [NO_TEST] に設定されている場合に限ります。 入力データセットのデータは、スキーマ (フィールド名とフィールド タイプ) があらかじめ定義されている既存のターゲット データセットに追加されるため、ターゲット データセットに対するフィールドの追加または削除は行えません。出力フィールドごとにマージ ルールを設定できます。 マージ ルールによって、複数の入力フィールドの値を単一の出力値にマージまたは結合する方法を指定できます。出力フィールドの値を指定する方法を決定するマージ ルールは複数あります。
このパラメーターを定義するには、ArcPy FieldMappings クラスを使用します。 | Field Mappings |
subtype (オプション) | ターゲット データセットに追加されるすべての新しいデータに割り当てるサブタイプの説明 | String |
派生した出力
名前 | 説明 | データ タイプ |
output | 更新されたターゲット データセット。 | テーブル ビュー; ラスター レイヤー |
コードのサンプル
Append (アペンド) の例 1 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで Append ツールを使用する方法を示しています。
import arcpy
arcpy.env.workspace = "C:/data/"
arcpy.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"],
"wholecity.shp", "TEST")
Append (アペンド) の例 2 (スタンドアロン スクリプト)
次のスクリプトで、Append ツールを使用する方法を示します。
# Name: Append.py
# Description: Use the Append tool to combine several shapefiles
# import system modules
import arcpy
import os
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
outLocation = "C:/Output"
outName = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""
# Process: Create a new empty feature class to append shapefiles into
emptyFC = arcpy.CreateFeatureclass_management(outLocation, outName, "POLYGON",
"amherst.shp")
# All polygon FCs in the workspace are MA town shapefiles, we want to append
# these to the empty FC. The list will resemble ["amherst.shp", "hadley.shp",
# "pelham.shp", "coldspring.shp"]
fcList = arcpy.ListFeatureClasses("", "POLYGON")
# Create FieldMappings object to manage merge output fields
fieldMappings = arcpy.FieldMappings()
# Add the target table to the field mappings class to set the schema
fieldMappings.addTable(emptyFC)
# Add input fields for the town name into TOWNNAME field that matches the
# target dataset since each input dataset has a different field name for
# this info
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst.shp","TOWNNAME")
fldMap.addInputField("hadley.shp","NAME")
fldMap.addInputField("pelham.shp","TOWN_NAME")
fldMap.addInputField("coldspring.shp","TOWN")
# Set name of new output field "TOWNNAME"
townName = fldMap.outputField
townName.name, townName.aliasName, townName.type = "TOWNNAME", "TOWNNAME", "TEXT"
fldMap.outputField = townName
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)
# Do the same thing for the POPULATION field
fldMap = arcpy.FieldMap()
fldMap.addInputField("amherst.shp","POPULATION")
fldMap.addInputField("hadley.shp","POP")
fldMap.addInputField("pelham.shp","POP_2010")
fldMap.addInputField("coldspring.shp","POP")
# Set name of new output field "POPULATION"
pop = fldMap.outputField
pop.name, pop.aliasName, pop.type = "POPULATION", "POPULATION", "LONG"
fldMap.outputField = pop
# Add output field to field mappings object
fieldMappings.addFieldMap(fldMap)
# Process: Append the feature classes into the empty feature class
arcpy.Append_management(fcList, os.path.join(outLocation, emptyFC), schemaType,
fieldMappings, subtype)
環境
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい