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

サマリー

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

レガシー:

ArcGIS GeoAnalytics Server エクステンションは ArcGIS Enterprise で廃止されます。 GeoAnalytics Server最終リリースArcGIS Enterprise 11.3 に含まれています。 このジオプロセシング ツールは ArcGIS Enterprise 11.3 以前のバージョンで使用できます。

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

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

レイヤーのマージ ツールの図
レイヤーのマージのワークフロー図を示します。

使用法

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

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

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

    操作説明

    名前の変更

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

    それぞれが 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 を使用してビッグ データ ファイル共有を作成する方法の詳細

パラメーター

ラベル説明データ タイプ
入力レイヤー

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

Record Set
マージ レイヤー

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

Record Set
出力名

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

String
属性のマージ
(オプション)

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

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

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

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

Value Table
データ ストア
(オプション)

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

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

派生した出力

ラベル説明データ タイプ
出力

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

Record Set

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 を指定します。 ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。 リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。

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

派生した出力

名前説明データ タイプ
output

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

Record Set

コードのサンプル

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

関連トピック