マージ(Merge) (データの管理)
サマリ
同じデータ タイプに属する複数の入力データセットに 1 つの新しい出力データセットを結合します。このツールで結合できるのはポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルです。
[アペンド(Append)] ツールを使用すると、入力データセットに既存のデータセットを結合できます。
図
使用法
-
このツールを使用すると、複数のソースからのデータセットを、1 つの新しい出力データセットに結合できます。入力データセット同士は必ず、同じタイプである必要があります(つまり、ポイント フィーチャクラス同士あるいはテーブル同士ならいくつかを 1 つにマージできますが、ライン フィーチャクラスをポリゴン フィーチャクラスとマージすることはできません)。
-
出力データセット内のすべてのフィールドおよびそのフィールドの内容は、[フィールド マップ] コントロールを使用して制御できます。
[フィールド マップ] コントロールを使用した場合、BLOB タイプのフィールドを、BLOB タイプの出力フィールドに対してのみ渡すことができます。他のフィールド タイプには渡せません。
-
このツールでは、入力データセット内のフィーチャは分割されません。入力データセット内のすべてのフィーチャは、フィーチャ同士が重なり合っても、出力データセット内では元の状態を保持しています。フィーチャ ジオメトリの結合やライン分割を実行するには、[ユニオン(Union)] ツールを使用してください。
-
このツールでは、エッジ マッチが実行されないので、フィーチャのジオメトリに対して調整は行われません。
-
フィーチャクラスをマージした場合、出力座標系ジオプロセシング環境が設定されていない場合を除き、出力データセットは [入力データセット] リスト内の最初のフィーチャクラスの座標系に設定されます。
-
マップ レイヤを入力データセットとして使用できます。レイヤの一部が範囲選択されている場合、選択されたレコード(フィーチャまたはテーブル行)のみが [マージ(Merge)] ツールによって使用されます。
-
このツールでは、名前の同じ入力レイヤを複数使用することはできません。ArcMap では同じ名前のレイヤの表示が許可されますが、これらのレイヤをこのツールで使用することはできません。この制限を回避するには、ツール ダイアログ ボックスの参照ボタンを使用して、各入力データセットの絶対パスの場所を参照します。
-
出力アノテーション フィーチャクラスは、入力データ タイプとして有効ではありません。
ラスタ データセットは、入力として有効ではありません。複数のラスタを新しい出力ラスタにマージするには、[新規ラスタにモザイク(Mosaic To New Raster)] ツールを使用します。
構文
パラメータ | 説明 | データ タイプ |
inputs [inputs,...] |
新しい出力データセットにマージする入力データセット。入力データセットとしてポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルのいずれかを指定できます。入力データセットのデータ タイプは一致している必要があります。 | Table View |
output |
結合した入力データセットを格納する、出力データセット。 | Feature Class;Table |
field_mappings (オプション) |
入力から選択されたフィールドとフィールドの内容です。[フィールド マップ] ウィンドウには、一意な入力フィールドがそれぞれ表示されます。これらを展開すると、すべての入力フィールドのリストが表示されます。 各フィールド マップに対し、出力フィールドの追加、名前変更、削除に加えて、データ タイプやマージ ルールなどのプロパティの設定を行うことができます。出力フィールドの重複を削除したり、出力フィールドの値を書式設定することもできます。 マージ ルールによって、複数の入力フィールドの値を単一の出力値にマージする方法を指定できます。使用できるマージ ルールを以下に挙げます。
| Field Mappings |
コードのサンプル
次の Python ウィンドウ スクリプトは、Merge(マージ)ツールを使用する方法を示しています。
import arcpy arcpy.env.workspace = "C:/data" arcpy.Merge_management(["majorrds.shp", "Habitat_Analysis.gdb/futrds"], "C:/output/Output.gdb/allroads")
Merge(マージ)ツールを使用して、フィーチャを 2 つのストリート フィーチャクラスから 1 つのデータセットに移動できます。
# Name: Merge.py # Description: Use Merge tool to move features from two street # feature classes into a single dataset with field mapping # import system modules import arcpy from arcpy import env # Set environment settings env.workspace = "C:/data" # Street feature classes to be merged oldStreets = "majorrds.shp" newStreets = "Habitat_Analysis.gdb/futrds" # Create FieldMappings object to manage merge output fields fieldMappings = arcpy.CreateObject("FieldMappings") # Create FieldMap objects to add new fields to merge output fldMap_streetClass = arcpy.CreateObject("FieldMap") fldMap_streetName = arcpy.CreateObject("FieldMap") # Add all fields from both oldStreets and newStreets fieldMappings.AddTable(oldStreets) fieldMappings.AddTable(newStreets) # Add input fields "STREET_NAM" & "NM" into new output field fldMap_streetName.AddInputField(oldStreets,"STREET_NAM") fldMap_streetName.AddInputField(newStreets,"NM") # Set name of new output field "Street_Name" streetName = fldMap_streetName.OutputField streetName.Name = "Street_Name" fldMap_streetName.OutputField = streetName # Add input fields "CLASS" & "IFC" into new output field fldMap_streetClass.AddInputField(oldStreets,"CLASS") fldMap_streetClass.AddInputField(newStreets,"IFC") # Set name of new output field "Street_Class" streetClass = fldMap_streetClass.OutputField streetClass.Name = "Street_Class" fldMap_streetClass.OutputField = streetClass # Add "Street_Class" and "Street_Name" output fields to FieldMappings object fieldMappings.AddFieldMap(fldMap_streetName) fieldMappings.AddFieldMap(fldMap_streetClass) # Remove all output fields from the field map, except fields "Street_Class", "Street_Name", & "Distance" for field in fieldMappings.fields: if field.name not in ["Street_Class","Street_Name","Distance"]: fieldMappings.RemoveFieldMap(fieldMappings.FindFieldMapIndex(field.name)) # Since both oldStreets and newStreets have field "Distance", no field mapping is required # Use Merge tool to move features into single dataset uptodateStreets = "C:/output/Output.gdb/allroads" arcpy.Merge_management([oldStreets, newStreets], uptodateStreets, fieldMappings)