フィーチャの結合 (Join Features) (GeoAnalytics)

概要

空間、時系列、および属性リレーションシップ、またはこれらのリレーションシップの組み合わせに基づいて、1 つのレイヤーの属性をもう 1 つのレイヤーに結合します。

フィーチャの結合 (Join Features) ツール
結合フィーチャ: 両方の例では、時空間結合を示します。

使用法

  • 空間結合では、空間位置に基づいて、入力フィーチャ ([ターゲット レイヤー] および [結合レイヤー] パラメーター) からのフィーチャ (行) と照合します。時間結合では、時系列リレーションシップに基づいて、入力フィーチャからのフィーチャ (行) と照合します。属性結合は、フィールド値に基づいてフィーチャを照合します。

  • 空間リレーションシップ、時系列リレーションシップ、属性リレーションシップ、またはこれら 3 つの組み合わせに基づいてフィーチャを結合できます。

    オプション説明

    空間リレーションシップ

    フィーチャが互いに結合しているかどうかを判断する空間リレーションシップ。使用可能なリレーションシップは、結合されるレイヤーのジオメトリのタイプ (ポイント、ライン、エリア) によって決まります。使用可能な空間リレーションシップを次に示します。

    • 交差する
    • 等しい
    • 平面近接 - 平面距離を使用します。
    • 測地線近接 - 測地距離を使用します。ArcGIS Enterprise 10.7.1 以降でのみ利用可能です。
    • 含む
    • 含まれる
    • 接する
    • 横切る
    • 重複する

    GeoAnalytics Server ツールの空間リレーションシップの詳細

    時系列リレーションシップ

    フィーチャが互いに結合しているかどうかを判断する時系列リレーションシップ。使用可能なリレーションシップは、結合されるレイヤーの時系列のタイプ (インスタントまたは間隔) によって決まります。使用可能な時系列リレーションシップを次に示します。

    • 接続する
    • 接続される
    • 重複する
    • 重複される
    • 期間内にある
    • 含む
    • 等しい
    • 終了する
    • 終了される
    • 開始する
    • 開始される
    • 交差する
    • 近接
    • 近接 (前)
    • 近接 (後)

    GeoAnalytics Server ツールの時間リレーションシップの詳細

    属性リレーションシップ

    フィーチャが互いに結合しているかどうかを判断する属性リレーションシップ。フィーチャは、結合レイヤーのフィールド値がターゲット レイヤーのフィールド値に等しい場合に一致します。

  • ターゲット フィーチャと結合フィーチャの座標系が異なる場合、ターゲット フィーチャの座標系が使用されます。出力座標系を指定した場合、両方のフィーチャが出力座標系に投影変換されてから、結合されます。

  • [空間リレーションシップ] パラメーター値が [平面近接] である場合、[フィーチャの結合 (Join Features)] では、[ターゲット レイヤー] が投影されているか、出力座標系投影座標系に設定されている必要があります。

  • 同じターゲット フィーチャに対して複数のフィーチャが存在する場合、すべての一致するフィーチャを個別に結合するかどうか ([1 対多の結合])、または一致するすべてのフィーチャをまとめて結合するかどうか ([1 対 1 の結合]) を決定できます。

    • [1 対多の結合] - 一致するフィーチャがすべてターゲット レイヤーに結合されます。結果レイヤーには、ターゲット フィーチャの複数レコードが含まれます。
    • [1 対 1 の結合] - 一致する結合フィーチャがすべて、ターゲット レイヤーの各フィーチャに集約されます。一致するフィーチャがあるフィーチャのみが、集約と出力に含まれます。結合されたフィーチャの個数は、合計、最小、最大、範囲、平均、分散、標準偏差などの他の統計情報とともに追加されます。
    1 対多の結合と 1 対 1 の結合の例
    1 対多の結合と 1 対 1 の結合の例を示します。この例では、1 対 1 の結合に個数だけが含まれています。計算可能な追加の統計情報を次に示します。

  • オプションで、[結合条件] パラメーターを使用し、フィーチャを結合する条件式を作成することもできます。条件式を指定すると、条件を満たすフィーチャのみが使用されます。たとえば、条件式 $target["Magnitude"] > $join["Explosion"] を使用して、Explosion というフィールドを含む結合フィーチャより大きい場合のみ、Magnitude フィールドからターゲット フィーチャを結合できます。詳細については、「フィーチャの結合条件式」をご参照ください。

  • 1 対多の結合を実行する際は、次のフィールドが出力フィーチャに含められます。

    • ターゲット レイヤーのすべてのフィールド
    • 結合したレイヤーのすべてのフィールド

    ターゲット データセットと結合データセットの両方に同じフィールド名が含まれる場合は、結合したフィールドの先頭は「join」になります (join_fieldname など)。

    フィールド名説明

    start_datetime

    このフィールドは開始時間を表し、入力の時間がインスタントや間隔として設定されている場合に作成されます。

    end_datetime

    このフィールドは終了時間を表し、入力の時間が間隔として設定されている場合に作成されます。

    1 対多の結合を実行する際は、ターゲット レイヤーのすべてのフィールド以外に次のフィールドが出力フィーチャに含まれます。

    フィールド名説明

    count

    結合したフィーチャの数。

    statistic_fieldname

    指定した統計情報ごとに、statistic_fieldname という形式の名前の属性フィールドが作成されます。たとえば、フィールド id の最大値と標準偏差は、MAX_id および SD_id です。

    start_datetime

    このフィールドは開始時間を表し、入力の時間がインスタントや間隔として設定されている場合に作成されます。

    end_datetime

    このフィールドは終了時間を表し、入力の時間が間隔として設定されている場合に作成されます。

  • 以下を 1 つ以上行うことで、[トラックの再構築 (Reconstruct Tracks)] ツールのパフォーマンスを向上させることができます。

    • 対象データのみを解析するように、範囲環境を設定します。
    • 測地線の代わりに平面方法を使用します。
    • バッファーは適用しないでください。
    • [時間分割][時間境界分割]、および [距離分割] パラメーターを使用して、トラックを分割します。[時間境界分割] は、パフォーマンスが最も向上します。
    • 解析が実行されている場所に対してローカルなデータを使用します。

  • [解析] ツールボックスの [空間結合 (Spatial Join)] ツールを使用して、同様の解析を実行することもできます。

  • ジオプロセシング ツールは、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 を使用してビッグ データ ファイル共有を作成する方法の詳細

構文

JoinFeatures(target_layer, join_layer, output_name, join_operation, {spatial_relationship}, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship}, {summary_fields}, {join_condition}, {data_store})
パラメーター説明データ タイプ
target_layer

ターゲット フィーチャを含みます。ターゲット フィーチャの属性と結合されたフィーチャの属性は、出力に転送されます。

Record Set
join_layer

結合フィーチャを含みます。結合フィーチャの属性は、ターゲット フィーチャの属性に結合されます。結合された属性の集約に結合操作がどのように影響するかについては、[結合方法] (Python では join_operation) パラメーターの説明をご参照ください。

Record Set
output_name

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

String
join_operation

単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、target_layerjoin_layer の間の結合を出力フィーチャでどのように処理するかを指定します。

  • JOIN_ONE_TO_ONE 複数の結合フィーチャの属性が集約されます。たとえば、1 つのポイント (ターゲット フィーチャ) が 2 つの異なるポリゴン (結合フィーチャ) 内にあると検出された場合、出力ポイント フィーチャクラスに渡される前に、2 つのポリゴンの属性が集約されます。1 つのポリゴンの属性値が 3、もう 1 つのポリゴンの属性値が 7 であり、このフィールドで統計の種類に合計が指定されている場合、出力フィーチャクラスの集約された値は 10 になります。これがデフォルトです。数の統計情報のみが返されます。
  • JOIN_ONE_TO_MANY出力フィーチャクラスには、ターゲット フィーチャの複数のコピー (レコード) が含まれます。たとえば、単一のポイント ターゲット フィーチャが、2 つの異なるポリゴン結合フィーチャ内で検出された場合、出力フィーチャクラスには、ターゲットフィーチャの 2 つのコピーが含まれます。1 つ目のレコードには、1 つのポリゴンの属性が格納され、2 つ目のレコードには、もう 1 つのポリゴンの属性が格納されます。この方法で使用できる統計値はありません。
String
spatial_relationship
(オプション)

フィーチャを空間的に結合するために使用する条件を指定します。

  • INTERSECTS結合フィーチャのフィーチャは、ターゲット フィーチャと交差するときにマッチします。これがデフォルトです。
  • EQUALS 結合フィーチャのフィーチャは、ターゲット フィーチャと同じジオメトリである場合にマッチします。
  • NEAR結合フィーチャのフィーチャは、ターゲット フィーチャとの距離が指定範囲以内の場合にマッチします。距離は、平面距離を使用して測定されます。spatial_near_distance パラメーターに距離を指定します。
  • NEAR_GEODESIC結合フィーチャのフィーチャは、ターゲット フィーチャとの距離が指定範囲以内にある場合にマッチします。距離は測地線で測定されます。spatial_near_distance パラメーターに距離を指定します。このオプションは、ArcGIS Enterprise 10.7.1 以降に追加されています。
  • CONTAINS結合フィーチャのフィーチャは、ターゲット フィーチャに含まれる場合にマッチします。ターゲット フィーチャは、ポリゴンまたはポリラインである必要があります。ターゲット フィーチャもポリゴンである場合にのみ、結合フィーチャをポリゴンにすることができます。ポリゴンは、任意のフィーチャ タイプを含むことができます。ポリラインは、ポリラインとポイントのみを含むことができます。ポイントは、どのフィーチャも含むことはできず、ポイントを含むこともできません。結合フィーチャが完全にターゲット フィーチャの境界上にある場合 (どの部分も境界の内部または外部にない場合)、そのフィーチャはマッチしません。
  • WITHIN結合フィーチャのフィーチャは、ターゲット フィーチャを含む場合にマッチします。これは、[含む] リレーションシップの反対です。このオプションでは、結合フィーチャがポリゴンの場合は、ターゲット フィーチャとしてポリゴンだけを指定できます。ポイントがターゲット フィーチャでもある場合にのみ結合フィーチャとしてポイントを指定できます。結合フィーチャのフィーチャ全体が、ターゲット フィーチャの境界線の上にある場合、フィーチャはマッチしません。
  • TOUCHES結合フィーチャのフィーチャは、境界線がターゲット フィーチャと接している場合にマッチします。ターゲット フィーチャおよび結合フィーチャがラインまたはポリゴンであるとき、結合フィーチャの境界線は、ターゲット フィーチャの境界線と接することができるだけで、結合フィーチャのいずれの部分もターゲット フィーチャの境界線と重なることはできません。
  • CROSSES結合フィーチャのフィーチャは、その境界線がターゲット フィーチャと交差する場合にマッチします。結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。結合フィーチャまたはターゲット フィーチャとしてポリゴンが使用される場合には、ポリゴンの境界線 (ライン) が使用されます。ポイントで交差するラインはマッチしますが、線分を共有するラインはマッチしません。
  • OVERLAPS結合フィーチャのフィーチャは、ターゲット フィーチャと重複するときにマッチします。
String
spatial_near_distance
(オプション)

空間結合の対象として検討される結合フィーチャ内のターゲット フィーチャからの距離。検索範囲は、spatial_relationship パラメーター値が NEAR または NEAR_GEODESIC の場合のみ有効になります。

Linear Unit
temporal_relationship
(オプション)

フィーチャの一致に使用する時間条件を指定します。

  • MEETSターゲット フィーチャの終了時間が結合フィーチャの開始時間に等しい場合、ターゲット フィーチャは結合フィーチャに接続します。
  • MET_BYターゲット フィーチャの開始時間が結合フィーチャの終了時間に等しい場合、結合フィーチャはターゲット フィーチャに接続します。
  • OVERLAPSターゲット フィーチャが結合フィーチャより先に開始して先に終了し、両者に重複する期間があります。
  • OVERLAPPED_BYターゲット フィーチャが結合フィーチャより後に開始して後に終了し、両者に重複する期間があります。
  • DURINGターゲット フィーチャが結合フィーチャの開始と終了の間に発生する場合、ターゲット フィーチャの期間は結合フィーチャの期間内にあります。
  • CONTAINS結合フィーチャがターゲット フィーチャの開始と終了の間に発生する場合、ターゲット フィーチャの期間は結合フィーチャの期間内にあります。
  • EQUALS2 つの時間は、それらの特定の時点または間隔が同一である場合に、等しいと見なされます。
  • FINISHESターゲット フィーチャと結合フィーチャの終了が同じ時間であり、ターゲット フィーチャが結合フィーチャの後に開始する場合です。
  • FINISHED_BY結合フィーチャとターゲット フィーチャの終了が同じ時間であり、結合フィーチャがターゲット フィーチャの後に開始する場合です。
  • STARTSターゲット フィーチャと結合フィーチャの開始が同じ時間であり、ターゲット フィーチャが結合フィーチャの前に終了する場合です。
  • STARTED_BYターゲット フィーチャと結合フィーチャの開始が同じ時間であり、ターゲット フィーチャが結合フィーチャの後に終了する場合です。
  • INTERSECTSターゲット フィーチャの時間のいずれかの部分が結合フィーチャの時間と交わります。
  • NEARターゲット フィーチャの時間が結合フィーチャの時間から指定された時間の範囲内にある場合です。
  • NEAR_BEFOREターゲット フィーチャの時間が結合フィーチャの時間の前だが、結合フィーチャの時間から指定された時間の範囲内にある場合です。このオプションは、ArcGIS Enterprise 10.6.1 以降に追加されています。
  • NEAR_AFTERターゲット フィーチャの時間が結合フィーチャの時間の後だが、結合フィーチャの時間から指定された時間の範囲内にある場合です。このオプションは、ArcGIS Enterprise 10.6.1 以降に追加されています。

フィーチャの一致に使用する時間条件を指定します。

  • MEETSターゲット フィーチャの終了時間が結合フィーチャの開始時間に等しい場合、ターゲット フィーチャは結合フィーチャに接続します。
  • MET_BYターゲット フィーチャの開始時間が結合フィーチャの終了時間に等しい場合、結合フィーチャはターゲット フィーチャに接続します。
  • OVERLAPSターゲット フィーチャが結合フィーチャより先に開始して先に終了し、両者に重複する期間があります。
  • OVERLAPPED_BYターゲット フィーチャが結合フィーチャより後に開始して後に終了し、両者に重複する期間があります。
  • DURINGターゲット フィーチャが結合フィーチャの開始と終了の間に発生する場合、ターゲット フィーチャの期間は結合フィーチャの期間内にあります。
  • CONTAINS結合フィーチャがターゲット フィーチャの開始と終了の間に発生する場合、ターゲット フィーチャの期間は結合フィーチャの期間内にあります。
  • EQUALS2 つの時間は、それらの特定の時点または間隔が同一である場合に、等しいと見なされます。
  • FINISHESターゲット フィーチャと結合フィーチャの終了が同じ時間であり、ターゲット フィーチャが結合フィーチャの後に開始する場合です。
  • FINISHED_BY結合フィーチャとターゲット フィーチャの終了が同じ時間であり、結合フィーチャがターゲット フィーチャの後に開始する場合です。
  • STARTSターゲット フィーチャと結合フィーチャの開始が同じ時間であり、ターゲット フィーチャが結合フィーチャの前に終了する場合です。
  • STARTED_BYターゲット フィーチャと結合フィーチャの開始が同じ時間であり、ターゲット フィーチャが結合フィーチャの後に終了する場合です。
  • INTERSECTSターゲット フィーチャの時間のいずれかの部分が結合フィーチャの時間と交わります。
  • NEARターゲット フィーチャの時間が結合フィーチャの時間から指定された時間の範囲内にある場合です。
  • NEAR_BEFOREターゲット フィーチャの時間が結合フィーチャの時間の前だが、結合フィーチャの時間から指定された時間の範囲内にある場合です。このオプションは、ArcGIS Enterprise 10.6.1 以降に追加されています。
  • NEAR_AFTERターゲット フィーチャの時間が結合フィーチャの時間の後だが、結合フィーチャの時間から指定された時間の範囲内にある場合です。このオプションは、ArcGIS Enterprise 10.6.1 以降に追加されています。
String
temporal_near_distance
(オプション)

空間結合の対象として検討される結合フィーチャ内のターゲット フィーチャからの時間距離。時間は、temporal_relationship パラメーター値が NEARNEAR_BEFORE、または NEAR_AFTER であり、両方のフィーチャが時間対応である場合にのみ有効です。

Time Unit
attribute_relationship
[attribute_relationship,...]
(オプション)

属性フィールドの値に基づいてフィーチャを結合します。結合レイヤーの属性フィールドにマッチするターゲット レイヤーの属性フィールドを指定します。

  • ターゲット フィールド - マッチする値を含んでいるターゲット レイヤーの属性フィールド。
  • 結合フィールド - マッチする値を含んでいる結合レイヤーの属性フィールド。

Value Table
summary_fields
[summary_fields,...]
(オプション)

指定されたフィールドに関して計算される統計情報。

  • COUNT - NULL 値でない値の数。数値フィールドまたは文字列に使用できます。[null, 0, 2] の個数は 2 です。
  • SUM - フィールド内の数値の合計。[null, null, 3] の合計は 3 です。
  • MEAN - 数値の平均。[0,2, null] の平均は 1 です。
  • MIN - 数値フィールドの最小値。[0, 2, null] の最小値は 0 です。
  • MAX - 数値フィールドの最大値。[0, 2, null] の最大値は 2 です。
  • STDDEV - 数値フィールドの標準偏差。[1] の標準偏差は null です。[null, 1,1,1] の標準偏差は null です。
  • VAR - トラック内の数値フィールドの分散。[1] の分散は null です。[null, 1,1,1] の分散は null です。
  • RANGE - 数値フィールドの範囲。これは、最大値から最小値を減算して計算されます。[0, null, 1] の範囲は 1 です。[null, 4] の範囲は 0 です。
  • ANY - 文字列型のフィールドのサンプル文字列。

Value Table
join_condition
(オプション)

条件を指定のフィールドに適用します。これらの条件を満たしているフィールドを含むフィーチャだけが結合されます。

たとえば、結合レイヤー内の属性 [HealthSpending] 属性がターゲット レイヤー内の [Income] 属性の 20% よりも大きい場合に、結合条件をフィーチャに適用できます。10.5 および 10.5.1 では、この条件式を適用するための結合条件は、join["HealthSpending"] > target["Income"] * .2 です。10.6 以降では、$join["HealthSpending"] > $target["Income"] * .2 などの Arcade 条件式を使用します。

String
data_store
(オプション)

出力の保存先の ArcGIS Data Store を指定します。デフォルトは、SPATIOTEMPORAL_DATA_STORE です。SPATIOTEMPORAL_DATA_STORE に格納されたすべての結果は、WGS84 で保存されます。RELATIONAL_DATA_STORE に格納された結果は、それらの座標系を維持します。

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

派生した出力

名前説明データ タイプ
output

結合後の出力。

レコード セット

コードのサンプル

JoinFeatures (フィーチャの結合) の例 (Python ウィンドウ)

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

#-------------------------------------------------------------------------------
# Name: JoinFeatures.py
# Description: Join crime events that are close together in time and space, and return the count of nearby crimes 
# This example is a self join (joining the same layer to itself) 
# Requirements: ArcGIS GeoAnalytics Server 
# Import system modules 
import arcpy 
# Set local variables 
inFeatures = "https://MyGeoAnalyticsMachine.domain.com/geoanalytics/rest/services/DataStoreCatalogs/bigDataFileShares_Crimes/BigDataCatalogServer/Chicago"
spatialOperation = "NEAR" 
nearDistance = "1 Kilometers" 
temporalOperation = "NEAR" 
nearTime = "3 Hours" 
outFS = "CloseCrimes" 
dataStore = "SPATIOTEMPORAL_DATA_STORE" 
# Execute Join Features
arcpy.geoanalytics.JoinFeatures(inFeatures, inFeatures, outFS, "JOIN_ONE_TO_ONE", 
                                spatialOperation, nearDistance, temporalOperation, 
                                nearTime, None, None, None, dataStore)

環境

出力座標系

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

ライセンス情報

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

関連トピック