サマリ
同じデータ タイプに属する複数の入力データセットに 1 つの新しい出力データセットを結合します。このツールで結合できるのはポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルです。
[アペンド (Append)] ツールを使用すると、入力データセットに既存のデータセットを結合できます。
図
使用法
このツールを使用すると、複数のソースからのデータセットを、1 つの新しい出力データセットに結合できます。すべての入力データセットは同じタイプである必要があります。たとえば、ポイント フィーチャクラス同士あるいはテーブル同士であれば 1 つにマージできますが、ライン フィーチャクラスをポリゴン フィーチャクラスとマージすることはできません。
出力データセット内のすべてのフィールドおよびそのフィールドの内容は、[フィールド マップ] コントロールを使用して制御できます。
このツールは、入力データセットのジオメトリを分割も変更もしません。入力データセット内のすべてのフィーチャは、フィーチャ同士が重なり合っても、出力データセット内では元の状態を保持しています。フィーチャ ジオメトリの結合や分割を実行するには、[ユニオン (Union)] ツールを使用します。
フィーチャクラスをマージした場合、出力座標系ジオプロセシング環境が設定されていない場合を除き、出力データセットは [入力データセット] リスト内の最初のフィーチャクラスの座標系に設定されます。
このツールでは、アノテーション フィーチャクラスはサポート対象外です。[アノテーション フィーチャクラスのアペンド (Append Annotation Feature Classes)] ツールを使用して、アノテーション フィーチャクラスを結合します。
このツールはラスター データセットをサポートしていません。複数のラスターを新しい出力ラスターにマージするには、[新規ラスターにモザイク (Mosaic To New Raster)] ツールを使用します。
構文
Merge_management (inputs, output, {field_mappings})
パラメータ | 説明 | データ タイプ |
inputs [inputs,...] | 新しい出力データセットにマージする入力データセット。入力データセットとしてポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルのいずれかを指定できます。入力データセットは同じタイプである必要があります。 | Table View |
output | 結合した入力データセットを格納する、出力データセット。 | Feature Class;Table |
field_mappings (オプション) | 入力データセットの属性フィールドをマップし、出力データセットに転送する方法を制御します。 出力フィールドの追加、名前変更、削除に加えて、データ タイプやマージ ルールなどのプロパティの設定を行うことができます。 マージ ルールによって、複数の入力フィールドの値を単一の出力値にマージまたは結合する方法を指定できます。出力フィールドの値を指定する方法を決定するマージ ルールは複数あります。
このパラメーターを定義するには、ArcPy FieldMappings クラスを使用します。 | Field Mappings |
コードのサンプル
Merge (マージ) の例 1 (Python ウィンドウ)
次の 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 (スタンドアロン スクリプト)
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.FieldMappings()
# 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 = arcpy.FieldMap()
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 output field to field mappings object
fieldMappings.addFieldMap(fldMap_streetName)
# Add input fields "CLASS" & "IFC" into new output field
fldMap_streetClass = arcpy.FieldMap()
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 output field to field mappings object
fieldMappings.addFieldMap(fldMap_streetClass)
# Remove all output fields from the field mappings, 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)
環境
ライセンス情報
- ArcGIS for Desktop Basic: ○
- ArcGIS for Desktop Standard: ○
- ArcGIS for Desktop Advanced: ○