アペンド(Append) (データ管理)
サマリ
複数の入力データセットを 1 つの既存のターゲット データセットに追加(アペンド)します。入力データセットには、ポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、テーブル、ラスタ、ラスタ カタログ、アノテーション フィーチャクラス、ディメンション フィーチャクラスを指定することができます。
複数の入力データセットを 1 つの新しい出力データセットに結合するには [マージ(Merge)] ツールを使用します。
図
使用法
-
このツールは、既存のデータセットに新しいフィーチャ、または複数のデータセットからその他のデータを追加するときに使用します。このツールは、ポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、テーブル、ラスタ、ラスタ カタログ、アノテーション フィーチャクラス、ディメンション フィーチャクラスを、同じタイプの既存のデータセットに追加できます。たとえば、複数のテーブルを既存のテーブルに追加したり、複数のラスタを既存のラスタ データセットに追加することはできますが、ライン フィーチャクラスをポイント フィーチャクラスに追加することはできません。
-
[アペンド(Append)] ツールの [フィールド マップ] コントロールを使用すると、入力データセットの各フィールドの属性情報をターゲット データセットに転送する方法を制御できます。[フィールド マップ] コントロールは、[スキーマ タイプ] が [NO_TEST] に指定されている場合のみ使用できます。
-
このツールでは、フィーチャがターゲット データセットに追加されるときに、フィーチャのライン分割は行われません。アペンド後にフィーチャが重なった場合でも、入力フィーチャクラスとターゲット フィーチャクラスのすべてのフィーチャがそのまま表示されます。フィーチャ ジオメトリの結合やライン分割を実行するには、[ユニオン(Union)] ツールを使用してください。
-
[スキーマ タイプ] の [TEST] を指定した場合は、フィーチャを追加するために、入力データセットのスキーマ(フィールド定義)をターゲット データセットのスキーマに一致させる必要があります。[スキーマ タイプ] の [NO_TEST] を指定した場合は、入力データセットのスキーマ(フィールド定義)がターゲット データセットに一致する必要はありません。ただし、ターゲット データセットのフィールドに一致しない入力データセットのフィールドはすべて、[フィールド マップ] コントロールでマッピングが明示的に設定されていない限り、ターゲット データセットにマッピングされません。
-
入力データセットのデータは、スキーマ(フィールド定義)があらかじめ定義されている既存のターゲット データセットに書き込まれるため、ターゲット データセットのフィールドの追加や削除は [フィールド マップ] コントロールによって禁止されます。
-
入力フィーチャクラスとターゲット フィーチャクラスの空間参照が一致しない場合、[アペンド(Append)] ツールでは、ターゲット フィーチャクラスで使用されている座標系に入力フィーチャクラスのフィーチャが投影されます。
-
このツールでは、エッジ マッチが実行されないので、フィーチャのジオメトリに対して調整は行われません。
-
マップ レイヤは [入力データセット] として使用することができます。レイヤで選択が行われている場合は、選択されているレコード(フィーチャまたはテーブル行)だけが [アペンド(Append)] ツールの処理対象になります。
-
このツールでは、名前の同じ入力レイヤを複数使用することはできません。ArcMap では同じ名前のレイヤの表示が許可されますが、これらのレイヤをこのツールで使用することはできません。この制限を回避するには、ツール ダイアログ ボックスの参照ボタンを使用して、個々の [入力データセット] の絶対パスを入手してください。
-
[サブタイプ] パラメータを使用するには、ターゲット データセットにサブタイプ フィールドが定義され、サブタイプ コードが割り当てられている必要があります。[サブタイプ] パラメータには、ターゲット データセットに追加されるすべての新しいデータにこのサブタイプを割り当てることを示すサブタイプの説明を記述します。
構文
パラメータ | 説明 | データ タイプ |
inputs [inputs,...] |
ターゲット データセットに追加するデータが含まれている入力データセット。入力データセットには、ポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、テーブル、ラスタ、ラスタ カタログ、アノテーション フィーチャクラス、ディメンション フィーチャクラスを指定することができます。入力データセットのそれぞれがターゲット データセットのデータ タイプに一致する必要があります。 | Table View; Raster Layer |
target |
入力データセットのデータを追加する対象となる既存のデータセット。入力データセットのそれぞれがターゲット データセットのデータ タイプに一致する必要があります。 | Table View; Raster Layer |
schema_type (オプション) |
データを追加するために、入力データセットのスキーマ(フィールド定義)をターゲット データセットのスキーマに一致させる必要があるかどうかを指定します。
| String |
field_mapping (オプション) |
入力データセットのフィールドに含まれている属性情報をターゲット データセットに転送する方法を制御します。このパラメータは、[スキーマ タイプ] が [NO_TEST] に指定されている場合のみ使用できます。 入力データセットのデータは、スキーマ(フィールド定義)があらかじめ定義されている既存のターゲット データセットに追加されるため、ターゲット データセットに対するフィールドの追加または削除は行えません。 マージ ルールによって、複数の入力フィールドの値を単一の出力値にマージする方法を指定できます。使用できるマージ ルールを以下に挙げます。
| Field Mapping |
subtype (オプション) |
このサブタイプをターゲット データセットに追加されるすべての新しいデータに割り当てることを示すサブタイプの説明 | String |
コードのサンプル
次の Python ウィンドウ スクリプトで、Append(アペンド)ツールをイミディエイト モードで使用する方法を示します。
import arcpy
arcpy.env.workspace = "C:/data/"
arcpy.Append_management(["north.shp", "south.shp", "east.shp", "west.shp"], "wholecity.shp", "TEST","","")
次のスクリプトで、Append(アペンド)ツールを使用する方法を示します。
# Name: Append.py
# Description: Use the Append tool to combine several shapefiles
# import system modules
import arcpy, os
from arcpy import env
# Set environment settings
env.workspace = "C:/data"
# Set local variables
outLocation = "C:/Output"
emptyFC = "MA_towns.shp"
schemaType = "NO_TEST"
fieldMappings = ""
subtype = ""
try:
# Process: Create a new empty feature class to append shapefiles into
arcpy.CreateFeatureclass_management(outLocation, emptyFC, "POLYGON", "amherst.shp")
# All polygon FCs in the workspace are MA town shapefiles, we want to append these to the empty FC
fcList = arcpy.ListFeatureClasses("","POLYGON")
# list will resemble ["amherst.shp", "hadley.shp", "pelham.shp", "coldspring.shp"]
# Process: Append the feature classes into the empty feature class
arcpy.Append_management(fcList, outLocation + os.sep + emptyFC, schemaType, fieldMappings, subtype)
except:
# If an error occurred while running a tool print the messages
print arcpy.GetMessages()