レイヤーのマージ (Merge Layers) (GeoAnalytics)

概要

複数のフィーチャ レイヤーを結合して 1 つの出力レイヤーを作成します。

このツールでは、両方の入力が同じジオメトリ タイプ (ポイント、ライン、ポリゴン) を持つか、テーブルである必要があります。一方のレイヤーが時間に対応している場合は、他方のレイヤーも時間に対応していて同じ時間タイプ (特定時点または間隔) を持つ必要があります。結果には、常に入力レイヤーのすべてのフィールドが含まれます。デフォルトでは、マージ レイヤーのすべてのフィールドが含められます。また、カスタム マージ ルールを指定して、結果のスキーマを定義することもできます。以下に例を示します。

  • イングランド、ウェールズ、スコットランドの行政区域を表す 3 つのレイヤーから、1 つのイギリスのレイヤーを作成します。[レイヤーのマージ (Merge Layers)] を使用すると、エリアを結合して、各エリアのすべてのフィールドを保持できます。
  • 隣接するタウンシップの土地区画情報が含まれている 2 つのレイヤーがあります。これらを 1 つのレイヤーにマージし、2 つのレイヤーで同じ名前とタイプを持つフィールドだけを保持します。

[レイヤーのマージ (Merge Layers)] のワークフロー図
[レイヤーのマージ (Merge Layers)] のワークフロー図を示します。

使用法

  • 両方の入力は、同じジオメトリ タイプ (ポイント、ライン、ポリゴン) を持つか、テーブルである必要があります。

  • 両方の入力は、同じ時間タイプ (特定時点または間隔) を持つか、時間に対応していない必要があります。

  • デフォルトでは、両方の入力レイヤーのすべてのフィールドが出力レイヤーにコピーされます。必要に応じて、マージ レイヤーのフィールド名を変更したり、フィールドを削除したり、入力レイヤーのフィールド名と一致させることができます。

    操作説明

    名前の変更

    フィールド名を変更して、出力レイヤーに追加します。テキスト ボックスが表示され、新しい名前を指定できます。

    それぞれが COUNT と呼ばれるフィールドを含んでいる 2 つのレイヤーをマージする必要があります。1 つのレイヤー内のこのフィールドは個人の数を表し、もう 1 つのレイヤー内のこのフィールドは家族の数を表します。2 つの COUNT フィールドは、一致するフィールド名を持っているため、デフォルトでマージされます。[名前の変更] を使用し、マージ レイヤー内のフィールドの名前を MERGE_COUNT に変更すると、結果レイヤー内の 2 つのフィールドを別々に保つことができます。

    削除

    フィールドを出力レイヤーから削除します。

    2 つのレイヤーをマージする必要がありますが、OBJECTID などのマージ レイヤー内の一部のフィールドを維持したくありません。[削除] を使用すると、それらのフィールドが結果レイヤーに書き込まれるのを防ぎ、対象のフィールドのみを保持することができます。

    一致

    フィールド名をマージ先レイヤーのフィールド名と同じ名前にします。マージされるレイヤーのフィールドの値は、一致させる出力フィールドにコピーされます。

    調査結果の 2 つのテーブル レイヤーをマージする必要があります。入力レイヤーは、調査の参加者の名前を格納する Name というフィールドを含んでいます。マージ レイヤー内の同等のフィールドの名前は、Participant です。[一致] を使用してこれらのフィールドが同等であることを示すと、これらの 2 つのフィールドが、結果レイヤー内で Name という単一のフィールドにマージされます。

  • 入力レイヤーとマージ レイヤーに、名前は一致するもののフィールド タイプが一致しないフィールドが含まれている場合、2 つのフィールド タイプを正常にマージできない限り、ツールは失敗します。入力フィールドが文字列で、マージ フィールドが数値の場合、フィールドは出力レイヤーの 1 つの文字列フィールドにマージされます。入力フィールドが double で、マージフィールドが数値の場合、フィールドは出力レイヤーの 1 つの double フィールドにマージされます。上記以外のすべての場合、ツールを実行するには [属性のマージ] を使用して、一致するフィールドのいずれかの名前を変更するか、いずれかのフィールドを削除する必要があります。

  • 次のいずれか、または両方の操作を実行して、[レイヤーのマージ (Merge Layers)] ツールのパフォーマンスを向上させることができます。

    • 対象データのみが解析されるように、範囲環境を設定します。
    • 解析が実行されている場所に対してローカルなデータを使用します。

  • ジオプロセシング ツールは、ArcGIS GeoAnalytics Server を活用しています。解析は GeoAnalytics Server で実行され、結果が ArcGIS Enterprise のコンテンツに保存されます。

  • GeoAnalytics Server ツールを実行する場合、解析は GeoAnalytics Server で実行されます。最適なパフォーマンスを得るためには、ArcGIS Enterprise ポータルでホストされているフィーチャ レイヤーかビッグ データ ファイル共有を通じて、GeoAnalytics Server にデータを提供する必要があります。GeoAnalytics Server のローカルにないデータは、解析が開始する前に GeoAnalytics Server に移動されます。つまり、ツールを実行する時間が長くなり、場合によっては ArcGIS Pro から GeoAnalytics Server にデータを移動できないこともあります。エラーの閾値はネットワークの速度や、データのサイズや複雑さに左右されます。したがって、データを必ず共有するか、ビッグ データ ファイル共有を作成することをお勧めします。

    データをポータルで共有する方法の詳細

    ArcGIS Server Manager を使用してビッグ データ ファイル共有を作成する方法の詳細

構文

arcpy.geoanalytics.MergeLayers(input_layer, merge_layer, output_name, {merging_attributes}, {data_store})
パラメーター説明データ タイプ
input_layer

マージ レイヤーとマージするポイント、ライン、ポリゴン フィーチャ、またはテーブル。

Record Set
merge_layer

入力レイヤーとマージするポイント、ライン、ポリゴン フィーチャ、またはテーブル。マージ レイヤーは、入力レイヤーと同じフィーチャ タイプと時間タイプを含んでいる必要があります。

Record Set
output_name

出力フィーチャ サービスの名前。

String
merging_attributes
[[Merge Field, Action, Input Field],...]
(オプション)

マージ レイヤーのフィールドを変更し、入力レイヤー内のフィールドと一致させる方法を示す値のリスト。入力レイヤーのすべてのフィールドが出力レイヤーに書き込まれます。属性のマージが定義されていない場合、マージ レイヤーのすべてのフィールドが出力レイヤーに書き込まれます。

あるフィールドが一方のレイヤーに存在するが、もう一方に存在しない場合でも、出力レイヤーには 2 つの入力レイヤーのフィールドが含まれます。フィールドが存在しなかった入力フィーチャの場合、出力フィールドには NULL 値が含まれます。たとえば、入力レイヤーに TYPE というフィールドが含まれているが、マージ レイヤーに TYPE が含まれていない場合、出力には TYPE が含まれますが、マージ レイヤーからコピーされたすべてのフィーチャについては、このフィールドの値が NULL になります。

次のマージ タイプを使用すると、出力レイヤーに書き込むマージ レイヤー内のフィールドを制御できます。

  • [削除] - マージ レイヤーのフィールドを出力レイヤーから削除します。
  • [名前の変更] - マージ レイヤーのフィールド名を変更して、出力レイヤーに追加します。マージ レイヤーのフィールド名を入力レイヤーのフィールド名に変更することはできません。フィールド名を同じにするには、[一致] オプションを使用します。
  • [一致] - マージ レイヤーのフィールド名を変更し、入力レイヤーのフィールド名に一致させます。たとえば、入力レイヤーに、CODE というフィールドが存在し、マージ レイヤーに STATUS というフィールドが存在するとします。STATUSCODE に一致させることができ、出力には、マージ レイヤーからコピーされたフィーチャで使用される STATUS フィールドの値を含む CODE フィールドが含まれます。数値については、タイプのキャストがサポートされています。数値と文字列フィールドの一致はサポートされません。

Value Table
data_store
(オプション)

出力の保存先の ArcGIS Data Store を指定します。デフォルトは、SPATIOTEMPORAL_DATA_STORE です。ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。

  • SPATIOTEMPORAL_DATA_STORE出力がビッグ データ ストアに格納されます。これがデフォルトです。
  • RELATIONAL_DATA_STORE出力がリレーショナル データ ストアに格納されます。
String

派生した出力

名前説明データ タイプ
output

入力レイヤーおよびマージ レイヤーの両方から結合されたフィーチャおよび属性を含んでいる出力レイヤー。

レコード セット

コードのサンプル

MergeLayers (レイヤーのマージ) の例 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、MergeLayersツールの使用方法を示しています。

#-------------------------------------------------------------------------------
# Name: MergeLayers.py
# Description: Merge two layers containing parcel information.
#
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inputFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/parcels_west/FeatureServer/0"
mergeFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/east_parcels/FeatureServer/0"
mergingAttributes = [["CODE", "MATCH", "ID"], ["globalid", "REMOVE"]]
outFS = "all_parcels"
dataStore = "SPATIOTEMPORAL_DATA_STORE"
# Execute Merge Layers
arcpy.geoanalytics.MergeLayers(inputFeatures, mergeFeatures, outFS, 
                               mergingAttributes, dataStore)

環境

出力座標系

解析で使用される座標系。このパラメーターで指定されない限り、入力の座標系で解析が行われます。GeoAnalytics Tools の場合、最終結果は WGS84 のビッグ データ ストアに保存されます。

ライセンス情報

  • Basic: 次のものが必要 ArcGIS GeoAnalytics Server
  • Standard: 次のものが必要 ArcGIS GeoAnalytics Server
  • Advanced: 次のものが必要 ArcGIS GeoAnalytics Server

関連トピック