マージ(Merge) (データの管理)

サマリ

同じデータ タイプに属する複数の入力データセットに 1 つの新しい出力データセットを結合します。このツールで結合できるのはポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルです。

[アペンド(Append)] ツールを使用すると、入力データセットに既存のデータセットを結合できます。

Merge Illustration

使用法

構文

Merge_management (inputs, output, {field_mappings})
パラメータ説明データ タイプ
inputs
[inputs,...]

新しい出力データセットにマージする入力データセット。入力データセットとしてポイント フィーチャクラス、ライン フィーチャクラス、ポリゴン フィーチャクラス、またはテーブルのいずれかを指定できます。入力データセットのデータ タイプは一致している必要があります。

Table View
output

結合した入力データセットを格納する、出力データセット。

Feature Class;Table
field_mappings
(オプション)

入力から選択されたフィールドとフィールドの内容です。[フィールド マップ] ウィンドウには、一意な入力フィールドがそれぞれ表示されます。これらを展開すると、すべての入力フィールドのリストが表示されます。

各フィールド マップに対し、出力フィールドの追加、名前変更、削除に加えて、データ タイプやマージ ルールなどのプロパティの設定を行うことができます。出力フィールドの重複を削除したり、出力フィールドの値を書式設定することもできます。

マージ ルールによって、複数の入力フィールドの値を単一の出力値にマージする方法を指定できます。使用できるマージ ルールを以下に挙げます。

  • First - 最初の入力フィールドの値を使用して、出力フィールドを設定します。
  • Last - 最後の入力フィールドの値を使用して、出力フィールドを設定します。
  • Join - すべての入力フィールドの値を結合し、この値を使用して出力フィールドを設定します。
  • Sum - すべての入力フィールドの値の合計を計算します。
  • Mean - すべての入力フィールドの値の平均を計算します。
  • Median - 中央値を計算します。
  • Mode - 最頻値を使用します。
  • Min - すべての入力フィールドの値のうちの最小値を使用します。
  • Max - すべての入力フィールドの値のうちの最大値を使用します。
  • Standard deviation - すべての入力フィールドの値に、標準偏差の分類法を使用します。
  • Count - 計算に含まれるレコード数を検出します。

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.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)

環境

関連項目

ライセンス情報

ArcView: はい
ArcEditor: はい
ArcInfo: はい

7/10/2012