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

概要

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

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

使用法

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

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

    オプション説明

    空間リレーションシップ

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

    • 交差する
    • 等しい
    • 平面近接 - 平面距離を使用します。
    • 測地線近接 - 測地距離を使用します。
    • 含む
    • 含まれる
    • 接する
    • 横切る
    • 重複する

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

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

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

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

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

    属性リレーションシップ

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

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

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

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

    • [1 対多の結合] - 一致するフィーチャがすべてターゲット レイヤーに結合されます。結果レイヤーには、ターゲット フィーチャの複数レコードが含まれます。
    • [1 対 1 の結合] - ターゲット レイヤーの各フィーチャと一致するすべての結合フィーチャが集約されます。一致するフィーチャがあるフィーチャのみが、集約と出力に含まれます。結合されたフィーチャの個数は、合計、最小、最大、範囲、平均、分散、標準偏差などの他の統計情報とともに追加されます。デフォルトでは、リレーションシップが指定されたターゲット フィーチャのみが出力フィーチャクラスに保存されます (内部結合)。[すべてのターゲット フィーチャを保持] がオンの場合、すべての入力ターゲット フィーチャが出力フィーチャに書き込まれます (左外部結合と呼ばれます)。
    1 対多の結合と 1 対 1 の結合の例
    1 対多の結合と 1 対 1 の結合の例を示します。この例では、1 対 1 の結合に個数だけが含まれています。計算可能な追加の統計情報を次に示します。

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

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

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

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

    フィールド名説明

    start_date

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

    end_date

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

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

    フィールド名説明

    count

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

    statistic_fieldname

    指定した統計情報では、それぞれ「統計情報_フィールド名」の形式で名前が付与された属性フィールドが作成されます。たとえば、id フィールドの最大値と標準偏差は、MAX_id および SD_id です。

    start_date

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

    end_date

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

  • 以下を 1 つ以上行うことで、[フィーチャの結合 (Join Features)] ツールのパフォーマンスを向上させることができます。

    • 対象データのみが解析されるように、範囲環境を設定します。
    • 結合条件はできるだけ限定してください。たとえば、1 キロメートル圏内の近接結合は、同じデータに対する 5 キロメートル圏内の近接結合よりも効率的です。
    • 1 つ以上の結合条件を追加します。結合条件を増やすことで、結合が限定的になります。たとえば、1 キロメートル、1 時間圏内の近接結合は、同じデータに対する 1 キロメートル圏内の近接結合よりも効率的です。
    • 結合式を適用します。
    • 解析が実行されている場所に対してローカルなデータを使用します。

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

  • ジオプロセシング ツールは、Spark を活用しています。解析は、複数のコアを並列に使用して、デスクトップ コンピューター上で実行されます。解析の実行方法の詳細については、「GeoAnalytics Desktop ツールに関する考慮事項」をご参照ください。

  • GeoAnalytics Desktop ツールを実行する場合、解析はデスクトップ コンピューター上で実行されます。最適なパフォーマンスを実現するには、データがデスクトップ上で使用可能である必要があります。ホスト フィーチャ レイヤーを使用している場合は、ArcGIS GeoAnalytics Server を使用することをお勧めします。データがローカルに存在していない場合、ツールの実行時間が長くなります。ArcGIS GeoAnalytics Server を使用して分析を行うには、GeoAnalytics Toolsをご参照ください。

構文

arcpy.gapro.JoinFeatures(target_layer, join_layer, output, join_operation, {spatial_relationship}, {spatial_near_distance}, {temporal_relationship}, {temporal_near_distance}, {attribute_relationship}, {summary_fields}, {join_condition}, {keep_all_target_features})
パラメーター説明データ タイプ
target_layer

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

Table View
join_layer

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

Table View
output

結合フィーチャがあるターゲット レイヤーのフィーチャを含む新しいフィーチャクラス。

Feature Class;Table
join_operation

単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、target_layer の値と join_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 パラメーターに距離を指定します。
  • 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ターゲット フィーチャの時間が結合フィーチャの時間の前だが、結合フィーチャの時間から指定された時間の範囲内にある場合です。
  • NEAR_AFTERターゲット フィーチャの時間が結合フィーチャの時間の後だが、結合フィーチャの時間から指定された時間の範囲内にある場合です。
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% よりも大きい場合に、結合条件をフィーチャに適用できます。$join["HealthSpending"] > $target["Income"] * .2 などの Arcade 式を使用します。

String
keep_all_target_features
(オプション)

出力フィーチャクラスにすべてのターゲット フィーチャを保存するか (左外部結合)、結合フィーチャとのリレーションシップが指定されたターゲット フィーチャのみを保存するか (内部結合) を指定します。

  • KEEP_ALL出力にすべてのターゲット フィーチャが保存されます (左外部結合)。
  • KEEP_COMMONリレーションシップが指定されたターゲット フィーチャのみが出力フィーチャクラスに保存されます (内部結合)。これがデフォルトです。
Boolean

コードのサンプル

JoinFeatures (フィーチャの結合) の例 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトで、この 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).
# Import system modules 
import arcpy 
arcpy.env.workspace = "C:/data/CityData.gdb"
# Set local variables 
inFeatures = "Chicago"
spatialOperation = "NEAR" 
nearDistance = "1 Kilometers" 
temporalOperation = "NEAR" 
nearTime = "3 Hours" 
out = "CloseCrimes"
# Execute Join Features
arcpy.gapro.JoinFeatures(inFeatures, inFeatures, out, "JOIN_ONE_TO_ONE", 
                         spatialOperation, nearDistance, temporalOperation, 
                         nearTime)

ライセンス情報

  • Basic: いいえ
  • Standard: いいえ
  • Advanced: はい

関連トピック