空間結合 (Spatial Join) (解析)

サマリー

フィーチャクラスの属性を、空間リレーションシップに基づいて別のフィーチャクラスの属性に結合します。 ターゲット フィーチャと、結合フィーチャの結合された属性は、出力フィーチャクラスに書き込まれます。

フィーチャ タイプごとの空間結合リレーションシップの詳細

使用法

  • 空間結合では、[結合フィーチャ] 値から [ターゲット フィーチャ] 値への行のマッチが、相対的な空間位置に基づいて行われます。

  • デフォルトでは、結合フィーチャのすべての属性がターゲット フィーチャの属性に追加され、出力フィーチャクラスにコピーされます。 出力に書き込まれる属性は、[フィールド マップ] パラメーターを使用して定義できます。

  • 出力フィーチャクラスには、2 つの新しいフィールド (Join_Count および TARGET_FID) が追加されます。 Join_Count フィールドは、各ターゲット フィーチャ (TARGET_FID) にマッチする結合フィーチャの数を表します。

    [結合方法] パラメーターで [1 対多の結合] が指定されている場合、もう 1 つの新しいフィールド (JOIN_FID) が出力に追加されます。

  • [結合方法] パラメーターを [1 対多の結合] に設定した場合、各ターゲット フィーチャの出力フィーチャクラスには複数の行が存在する場合があります。 JOIN_FID フィールドを使用すると、どのフィーチャがどのターゲット フィーチャ (TARGET_FID) に結合されるかを判断できます。 JOIN_FID フィールドの値が -1 であれば、指定されたターゲット フィーチャとの空間リレーションシップを持つフィーチャがないことを意味します。

  • すべての入力ターゲット フィーチャは、次の両方の条件を満たす場合に出力フィーチャクラスに書き込まれます。

    • [結合方法][1 対 1 の結合] に設定されている。
    • [すべてのターゲット フィーチャを保持する] がオンである。

  • フィールドをターゲット フィーチャクラスに永続的に転送するには、[永続的にフィールドを結合] パラメーターをオンにして [空間結合の追加 (Add Spatial Join)] ツールを使用します。

  • フィールド マップ パラメーターを使用すると、出力データセット内のフィールドとそのコンテンツを管理できます。

    • フィールド リストにフィールドを追加したり、フィールド リストからフィールドを削除したり、フィールド リストの順序を変更したり、フィールドの名前を変更したりすることができます。
    • 出力フィールドのデフォルトのデータ タイプは、最初に検出した (その名前の) 入力フィールドのデータ タイプと同じになります。 データ タイプを有効な別のデータ タイプに変更できます。
    • アクションを使用して、1 つまたは複数の入力フィールドの値を 1 つの出力フィールドにマージする方法を決定します。 使用可能なアクションは [最初][最後][連結][合計][平均][中央][最頻][最小][最大][標準偏差]、および [個数] です。
    • [連結] アクションを使用する場合は、カンマなどの文字を区切り文字として指定できます。 [区切り文字] テキスト ボックスの先頭をクリックして、区切り文字を追加します。
    • [標準偏差] は、単一の入力値に有効なオプションではありません。
    • テキスト ソース フィールドにある [テキストのスライス] ボタンを使用して、入力値のどの文字を出力フィールドに抽出するかを選択します。 [テキストのスライス] ボタンにアクセスするには、入力フィールド リスト内のテキスト フィールドにポインターを合わせて、最初の文字と最後の文字の位置を指定します。
    • フィールドは、Python スクリプトを使用してマッピングすることもできます。

  • [フィールド マップ] パラメーターに指定した操作は、複数のフィーチャがターゲット フィーチャにマッチしたときに (Join_Count > 1)、結合フィーチャの属性にだけ適用されます。 たとえば、DEPTH 属性の値に 15.5、2.5、および 3.3 を持つ 3 つのフィーチャが結合され、[平均] 操作が適用される場合、出力フィールドの値は 6.1 になります。 結合フィーチャの NULL 値は統計計算では無視されます。 たとえば、3 つのフィーチャの値が 15.5、NULL 値、および 2.5 である場合、平均は 9.0、個数は 2 になります。

  • [マッチ オプション] パラメーターが [最も近い] または [最も近い (測地線)] に設定されているときに、2 つ以上の結合フィーチャがターゲット フィーチャから同じ距離に存在する場合があります。 この場合は、結合フィーチャのいずれかが、マッチするフィーチャとしてランダムに選択されます (結合フィーチャの Object ID は、この選択に影響しません)。 2 番目、3 番目、または n 番目に近いフィーチャを検索するには、[近接情報テーブルの生成 (Generate Near Table)] ツールを使用します。

    近接性の計算方法の詳細

  • 1 つの結合フィーチャに複数のターゲット フィーチャとの空間リレーションシップがある場合、それはマッチするターゲット フィーチャの数だけカウントされます。 たとえば、あるポイントが 3 つのポリゴン内にある場合、そのポイントはポリゴンにつき 1 回、合計で 3 回カウントされます。

  • [一致する属性] パラメーターを設定すると、[マッチ オプション] パラメーターに指定された空間リレーションシップと照合されるフィーチャがフィルタリングされます。 一致する属性と空間リレーションシップが必要なフィールドを結合フィーチャとターゲット フィーチャから指定します。

  • [交差する (3D)] および [一定距離内にある (3D)] の空間リレーションシップの使用に関する詳細については、「空間検索の 3D リレーションシップ」をご参照ください。

パラメーター

ラベル説明データ タイプ
ターゲット フィーチャ

ターゲット フィーチャの属性と結合されたフィーチャの属性は、出力フィーチャクラスに転送されます。 ただし、フィールド マップ パラメーターで属性のサブセットを定義することができます。

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

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

Feature Layer
出力フィーチャクラス

ターゲット フィーチャの属性と結合フィーチャの属性を含む、新しいフィーチャクラス。 デフォルトでは、ターゲット フィーチャのすべての属性と結合されたフィーチャの属性が出力に書き込まれます。 ただし、転送する属性のセットはフィールド マップ パラメーターで定義できます。

Feature Class
結合方法
(オプション)

単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、ターゲット フィーチャと結合フィーチャを出力フィーチャクラスで結合する操作。

  • 1 対 1 の結合単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、フィールド マップのマージ ルールを使って複数の結合フィーチャの属性が集約されます。 たとえば、1 つのポイント (ターゲット フィーチャ) が 2 つの異なるポリゴン (結合フィーチャ) 内にあると検出された場合、出力ポイント フィーチャクラスに渡される前に、2 つのポリゴンの属性が集約されます。 1 つのポリゴンの属性値が 3、もう 1 つのポリゴンの属性値が 7 であり、合計のマージ ルールが指定されている場合、出力フィーチャクラスの集約された値は 10 になります。 これがデフォルトです。
  • 1 対多の結合単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、出力フィーチャクラスにはターゲット フィーチャの複数のコピー (レコード) が含まれます。 たとえば、単一のポイント ターゲット フィーチャが、2 つの異なるポリゴン結合フィーチャ内で検出された場合、出力フィーチャクラスには、ターゲットフィーチャの 2 つのコピーが含まれます。1 つ目のレコードには、1 つのポリゴンの属性が格納され、2 つ目のレコードには、もう 1 つのポリゴンの属性が格納されます。
String
すべてのターゲット フィーチャを保持
(オプション)

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

  • オン - 出力にすべてのターゲット フィーチャが保存されます (外部結合)。 これがデフォルトです。
  • オフ - 出力フィーチャクラスに、結合フィーチャとの空間リレーションシップが指定されたターゲット フィーチャのみが保存されます (内部結合)。 たとえば、ターゲット フィーチャとしてポイント フィーチャクラスを指定し、結合フィーチャとしてポリゴン フィーチャクラスを指定し、[マッチ オプション] の値として [含まれる] を指定した場合、出力フィーチャクラスには、ポリゴン結合フィーチャ内にあるターゲット フィーチャだけが含まれます。 結合フィーチャに含まれないターゲット フィーチャは出力から除外されます。
Boolean
フィールド マップ
(オプション)

それぞれのプロパティおよびソース フィールドとともに出力フィーチャクラスに含められるフィールド。 デフォルトでは、結合フィーチャとターゲット フィーチャ内のすべてのフィールドが出力に含まれます。

フィールド マップを使用すると、フィールドの追加、フィールドの削除、フィールド名の変更、フィールドの順序変更、他のフィールド プロパティの変更を実行できます。

フィールド マップを使用して、複数の入力フィールドの値を 1 つの出力フィールドに結合することができます。

Field Mappings
マッチ オプション
(オプション)

行の一致に使用される条件を指定します。

  • インターセクト (Intersect)結合フィーチャのフィーチャは、ターゲット フィーチャと交差するときにマッチします。 これがデフォルトです。 [検索範囲] パラメーターで距離を指定します。
  • インターセクト 3D (Intersect 3D)結合フィーチャ内のフィーチャは、そのフィーチャが 3 次元空間 (X,Y,Z) でターゲット フィーチャと交差している場合にマッチします。 [検索範囲] パラメーターで距離を指定します。
  • 一定距離内にある結合フィーチャのフィーチャは、ターゲット フィーチャとの距離が指定範囲以内の場合にマッチします。 [検索範囲] パラメーターで距離を指定します。
  • 一定距離内にある (測地線)平面距離ではなく測地距離が使用される点を除いて、[一定距離内にある] と同じです。 フィーチャ間の距離は、測地線の式を使用して計算されます。この式は、楕円体の曲率を考慮して、日付変更線と極の近くのデータおよび交差するデータを正確に処理します。 このオプションは、データが広大な地理的範囲をカバーしている場合または入力座標系が距離の計算に適していない場合に使用します。
  • 一定距離内にある (3D)結合フィーチャのフィーチャは、3 次元空間において、ターゲット フィーチャとの距離が指定範囲以内にある場合にマッチします。 [検索範囲] パラメーターで距離を指定します。
  • 含む結合フィーチャのフィーチャは、ターゲット フィーチャに含まれる場合にマッチします。 ターゲット フィーチャは、ポリゴンまたはポリラインである必要があります。 このオプションでは、ターゲット フィーチャとしてポイントを指定できません。また、ターゲット フィーチャがポリゴンの場合は、結合フィーチャとしてポリゴンだけを指定できます。
  • 完全に含む結合フィーチャのフィーチャは、ターゲット フィーチャに完全に含まれる場合にマッチします。 ポリゴンには、どのフィーチャも完全に含めることができます。 ポイントには、どのフィーチャも完全に含めることができず、ポイントを含めることもできません。 ポリラインには、ポリライン フィーチャとポイント フィーチャだけを完全に含めることができます。
  • 含む (Clementini)この空間リレーションシップでは、結合フィーチャが完全にターゲット フィーチャの境界線上にある (選択フィーチャのどの部分も入力フィーチャの内部にも外部にもない) 場合に、そのフィーチャがマッチしない点を除いて、[完全に含む] と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
  • 含まれる結合フィーチャのフィーチャは、ターゲット フィーチャを含む場合にマッチします。 これは [含む] の反対です。 このオプションでは、結合フィーチャがポリゴンの場合は、ターゲット フィーチャとしてポリゴンだけを指定できます。 ポイントがターゲットの場合にのみ、ポイントを結合フィーチャとして指定できます。
  • 完全に含まれる結合フィーチャのフィーチャは、ターゲット フィーチャがそれらに完全に含まれる場合にマッチします。 これは [完全に含む] の反対です。
  • 含まれる (Clementini)結合フィーチャのフィーチャ全体が、ターゲット フィーチャの境界線の上にある場合にはフィーチャがマッチしない点を除き、[検索範囲] と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
  • 正確に一致する結合フィーチャのフィーチャは、ターゲット フィーチャと同一である場合にマッチします。 結合フィーチャとターゲット フィーチャはどちらも、同じシェープ タイプ (ポイントとポイント、ラインとライン、ポリゴンとポリゴン) でなければなりません。
  • 境界に接する結合フィーチャのフィーチャは、境界線がターゲット フィーチャと接している場合にマッチします。 ターゲット フィーチャおよび結合フィーチャがラインまたはポリゴンであるとき、結合フィーチャの境界線は、ターゲット フィーチャの境界線と接することができるだけで、結合フィーチャのいずれの部分もターゲット フィーチャの境界線と重なることはできません。
  • 線分を共有する結合フィーチャのフィーチャは、ライン セグメントをターゲット フィーチャと共有する場合にマッチします。 結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。
  • アウトラインが横切る結合フィーチャのフィーチャは、その境界線がターゲット フィーチャと交差する場合にマッチします。 結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。 結合フィーチャまたはターゲット フィーチャとしてポリゴンが使用される場合には、ポリゴンの境界線 (ライン) が使用されます。 ポイントで交差するラインはマッチしますが、線分を共有するラインはマッチしません。
  • 重心が含まれる結合フィーチャのフィーチャは、ターゲット フィーチャの中心を含む場合にマッチします。 フィーチャの中心を計算する場合、ポリゴンとマルチポイントでは、ジオメトリの重心が使用され、ライン入力では、ジオメトリの中間点が使用されます。 [検索範囲] パラメーターで距離を指定します。
  • 最も近い結合フィーチャのうち、ターゲット フィーチャに最も近いフィーチャがマッチします。 詳細については、使用上のヒントをご参照ください。 [検索範囲] パラメーターで距離を指定します。
  • 最も近い測地線平面距離ではなく測地距離が使用される点を除いて、[最近接] と同じです。 このオプションは、データが広大な地理的範囲をカバーしている場合または入力座標系が距離の計算に適していない場合に使用します。
  • 最大オーバーラップ結合フィーチャのフィーチャは、最大の重なりを持つターゲット フィーチャとマッチします。
String
検索範囲
(オプション)

ターゲット フィーチャのこの範囲内にある結合フィーチャが、空間結合の対象と見なされます。 検索範囲は、空間リレーションシップが指定された ([マッチ オプション] パラメーターが [交差する][一定距離内にある][一定距離内にある (測地線)][重心が含まれる][最も近い] または [最も近い (測地線)] に設定された) 場合のみ有効になります。 たとえば、検索範囲に 100 メートルを指定して、[一定距離内にある] 空間リレーションシップを使用すると、ターゲット フィーチャから 100 メートル以内のフィーチャを結合します。 3 つの一定距離内にあるリレーションシップにおいて、[検索範囲] に値が指定されていない場合は、距離 0 が使用されます。

Linear Unit
距離フィールド名
(オプション)

ターゲット フィーチャと最も近い結合フィーチャとの間の距離を含むフィールドの名前。 このフィールドは、出力フィーチャクラスに追加されます。 このパラメーターは、空間リレーションシップが指定されている ([マッチ オプション][最も近い] または [最も近い (測地線)] に設定されている) 場合のみ有効になります。 検索範囲内にマッチするフィーチャがない場合は、この値を -1 に指定します。 フィールド名を指定しないと、このフィールドは出力フィーチャクラスに追加されません。

String
マッチ フィールド
(オプション)

結合フィーチャ内のフィールドとターゲット フィーチャ内のフィールドのペアのうち、属性の一致に使用されるフィールド ペア。 照合フィールドの値をターゲット フィーチャと共有している結合フィーチャ内のレコードだけが空間結合に属します。

Value Table

arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class, {join_operation}, {join_type}, {field_mapping}, {match_option}, {search_radius}, {distance_field_name}, {match_fields})
名前説明データ タイプ
target_features

ターゲット フィーチャの属性と結合されたフィーチャの属性は、出力フィーチャクラスに転送されます。 ただし、フィールド マップ パラメーターで属性のサブセットを定義することができます。

Feature Layer
join_features

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

Feature Layer
out_feature_class

ターゲット フィーチャの属性と結合フィーチャの属性を含む、新しいフィーチャクラス。 デフォルトでは、ターゲット フィーチャのすべての属性と結合されたフィーチャの属性が出力に書き込まれます。 ただし、転送する属性のセットはフィールド マップ パラメーターで定義できます。

Feature Class
join_operation
(オプション)

単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、ターゲット フィーチャと結合フィーチャを出力フィーチャクラスで結合する操作。

  • JOIN_ONE_TO_ONE単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、フィールド マップのマージ ルールを使って複数の結合フィーチャの属性が集約されます。 たとえば、1 つのポイント (ターゲット フィーチャ) が 2 つの異なるポリゴン (結合フィーチャ) 内にあると検出された場合、出力ポイント フィーチャクラスに渡される前に、2 つのポリゴンの属性が集約されます。 1 つのポリゴンの属性値が 3、もう 1 つのポリゴンの属性値が 7 であり、合計のマージ ルールが指定されている場合、出力フィーチャクラスの集約された値は 10 になります。 これがデフォルトです。
  • JOIN_ONE_TO_MANY単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、出力フィーチャクラスにはターゲット フィーチャの複数のコピー (レコード) が含まれます。 たとえば、単一のポイント ターゲット フィーチャが、2 つの異なるポリゴン結合フィーチャ内で検出された場合、出力フィーチャクラスには、ターゲットフィーチャの 2 つのコピーが含まれます。1 つ目のレコードには、1 つのポリゴンの属性が格納され、2 つ目のレコードには、もう 1 つのポリゴンの属性が格納されます。
String
join_type
(オプション)

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

  • KEEP_ALL出力にすべてのターゲット フィーチャが保存されます (外部結合)。 これがデフォルトです。
  • KEEP_COMMON出力フィーチャクラスに、結合フィーチャとの空間リレーションシップが指定されたターゲット フィーチャのみが保存されます (内部結合)。 たとえば、ターゲット フィーチャとしてポイント フィーチャクラスを指定し、結合フィーチャとしてポリゴン フィーチャクラスを指定し、match_option の値として WITHIN を指定した場合、出力フィーチャクラスには、ポリゴン結合フィーチャ内にあるターゲット フィーチャだけが含まれます。 結合フィーチャに含まれないターゲット フィーチャは出力から除外されます。
Boolean
field_mapping
(オプション)

それぞれのプロパティおよびソース フィールドとともに出力フィーチャクラスに含められるフィールド。 デフォルトでは、結合フィーチャとターゲット フィーチャ内のすべてのフィールドが出力に含まれます。

フィールド マップを使用すると、フィールドの追加、フィールドの削除、フィールド名の変更、フィールドの順序変更、他のフィールド プロパティの変更を実行できます。

フィールド マップを使用して、複数の入力フィールドの値を 1 つの出力フィールドに結合することができます。

Python では、FieldMappings クラスを使用して、このパラメーターを定義します。

Field Mappings
match_option
(オプション)

行の一致に使用される条件を指定します。

  • INTERSECT結合フィーチャのフィーチャは、ターゲット フィーチャと交差するときにマッチします。 これがデフォルトです。 search_radius パラメーターで距離を指定します。
  • INTERSECT_3D結合フィーチャ内のフィーチャは、そのフィーチャが 3 次元空間 (X,Y,Z) でターゲット フィーチャと交差している場合にマッチします。 search_radius パラメーターで距離を指定します。
  • WITHIN_A_DISTANCE結合フィーチャのフィーチャは、ターゲット フィーチャとの距離が指定範囲以内の場合にマッチします。 search_radius パラメーターで距離を指定します。
  • WITHIN_A_DISTANCE_GEODESIC平面距離ではなく測地距離が使用される点を除いて、WITHIN_A_DISTANCE と同じです。 フィーチャ間の距離は、測地線の式を使用して計算されます。この式は、楕円体の曲率を考慮して、日付変更線と極の近くのデータおよび交差するデータを正確に処理します。 このオプションは、データが広大な地理的範囲をカバーしている場合または入力座標系が距離の計算に適していない場合に使用します。
  • WITHIN_A_DISTANCE_3D結合フィーチャのフィーチャは、3 次元空間において、ターゲット フィーチャとの距離が指定範囲以内にある場合にマッチします。 search_radius パラメーターで距離を指定します。
  • CONTAINS結合フィーチャのフィーチャは、ターゲット フィーチャに含まれる場合にマッチします。 ターゲット フィーチャは、ポリゴンまたはポリラインである必要があります。 このオプションでは、ターゲット フィーチャとしてポイントを指定できません。また、ターゲット フィーチャがポリゴンの場合は、結合フィーチャとしてポリゴンだけを指定できます。
  • COMPLETELY_CONTAINS結合フィーチャのフィーチャは、ターゲット フィーチャに完全に含まれる場合にマッチします。 ポリゴンには、どのフィーチャも完全に含めることができます。 ポイントには、どのフィーチャも完全に含めることができず、ポイントを含めることもできません。 ポリラインには、ポリライン フィーチャとポイント フィーチャだけを完全に含めることができます。
  • CONTAINS_CLEMENTINIこの空間リレーションシップでは、結合フィーチャが完全にターゲット フィーチャの境界線上にある (選択フィーチャのどの部分も入力フィーチャの内部にも外部にもない) 場合に、そのフィーチャがマッチしない点を除いて、COMPLETELY_CONTAINS と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
  • WITHIN結合フィーチャのフィーチャは、ターゲット フィーチャを含む場合にマッチします。 これは CONTAINS の反対です。 このオプションでは、結合フィーチャがポリゴンの場合は、ターゲット フィーチャとしてポリゴンだけを指定できます。 ポイントがターゲットの場合にのみ、ポイントを結合フィーチャとして指定できます。
  • COMPLETELY_WITHIN結合フィーチャのフィーチャは、ターゲット フィーチャがそれらに完全に含まれる場合にマッチします。 これは COMPLETELY_CONTAINS の反対です。
  • WITHIN_CLEMENTINI結合フィーチャのフィーチャ全体が、ターゲット フィーチャの境界線の上にある場合にはフィーチャがマッチしない点を除き、WITHIN と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
  • ARE_IDENTICAL_TO結合フィーチャのフィーチャは、ターゲット フィーチャと同一である場合にマッチします。 結合フィーチャとターゲット フィーチャはどちらも、同じシェープ タイプ (ポイントとポイント、ラインとライン、ポリゴンとポリゴン) でなければなりません。
  • BOUNDARY_TOUCHES結合フィーチャのフィーチャは、境界線がターゲット フィーチャと接している場合にマッチします。 ターゲット フィーチャおよび結合フィーチャがラインまたはポリゴンであるとき、結合フィーチャの境界線は、ターゲット フィーチャの境界線と接することができるだけで、結合フィーチャのいずれの部分もターゲット フィーチャの境界線と重なることはできません。
  • SHARE_A_LINE_SEGMENT_WITH結合フィーチャのフィーチャは、ライン セグメントをターゲット フィーチャと共有する場合にマッチします。 結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。
  • CROSSED_BY_THE_OUTLINE_OF結合フィーチャのフィーチャは、その境界線がターゲット フィーチャと交差する場合にマッチします。 結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。 結合フィーチャまたはターゲット フィーチャとしてポリゴンが使用される場合には、ポリゴンの境界線 (ライン) が使用されます。 ポイントで交差するラインはマッチしますが、線分を共有するラインはマッチしません。
  • HAVE_THEIR_CENTER_IN結合フィーチャのフィーチャは、ターゲット フィーチャの中心を含む場合にマッチします。 フィーチャの中心を計算する場合、ポリゴンとマルチポイントでは、ジオメトリの重心が使用され、ライン入力では、ジオメトリの中間点が使用されます。 search_radius パラメーターで距離を指定します。
  • CLOSEST結合フィーチャのうち、ターゲット フィーチャに最も近いフィーチャがマッチします。 詳細については、使用上のヒントをご参照ください。 search_radius パラメーターで距離を指定します。
  • CLOSEST_GEODESIC平面距離ではなく測地距離が使用される点を除いて、CLOSEST と同じです。 このオプションは、データが広大な地理的範囲をカバーしている場合または入力座標系が距離の計算に適していない場合に使用します。
  • LARGEST_OVERLAP結合フィーチャのフィーチャは、最大の重なりを持つターゲット フィーチャとマッチします。
String
search_radius
(オプション)

ターゲット フィーチャのこの範囲内にある結合フィーチャが、空間結合の対象と見なされます。 検索範囲は、空間リレーションシップが指定されている (match_option パラメーターが INTERSECTWITHIN_A_DISTANCEWITHIN_A_DISTANCE_GEODESICHAVE_THEIR_CENTER_INCLOSEST、または CLOSEST_GEODESIC に設定されている) 場合のみ有効になります。 たとえば、検索範囲に 100 メートルを指定して、WITHIN_A_DISTANCE 空間リレーションシップを使用すると、ターゲット フィーチャから 100 メートル以内のフィーチャを結合します。 3 つの一定距離内にあるリレーションシップにおいて、search_radius に値が指定されていない場合は、距離 0 が使用されます。

Linear Unit
distance_field_name
(オプション)

ターゲット フィーチャと最も近い結合フィーチャとの間の距離を含むフィールドの名前。 このフィールドは、出力フィーチャクラスに追加されます。 このパラメーターは、空間リレーションシップが指定されている (match_optionCLOSEST または CLOSEST_GEODESIC に設定されている) 場合のみ有効になります。 検索範囲内にマッチするフィーチャがない場合は、この値を -1 に指定します。 フィールド名を指定しないと、このフィールドは出力フィーチャクラスに追加されません。

String
match_fields
[[join_field, target_field],...]
(オプション)

結合フィーチャ内のフィールドとターゲット フィーチャ内のフィールドのペアのうち、属性の一致に使用されるフィールド ペア。 照合フィールドの値をターゲット フィーチャと共有している結合フィーチャ内のレコードだけが空間結合に属します。

Value Table

コードのサンプル

SpatialJoin の例 1 (Python ウィンドウ)

次のスクリプトは、Python ウィンドウでの SpatialJoin 関数の使用方法を示しています。

import arcpy

target_features = "C:/data/usa.gdb/states"
join_features = "C:/data/usa.gdb/cities"
out_feature_class = "C:/data/usa.gdb/states_cities"

arcpy.analysis.SpatialJoin(target_features, join_features, out_feature_class)
SpatialJoin の例 2 (スタンドアロン スクリプト)

次のスタンドアロン スクリプトは、都市の属性を州に結合するために SpatialJoin 関数を使用する方法を示しています。

# Name: SpatialJoin_Example2.py
# Description: Join attributes of cities to states based on spatial relationships.

# Import system modules
import arcpy
import os

# Set local variables
workspace = r"C:\gpqa\mytools\spatialjoin\usa.gdb"
outWorkspace = r"C:\gpqa\mytools\spatialjoin\output.gdb"
 
# Want to join USA cities to states and calculate the mean city population
# for each state
targetFeatures = os.path.join(workspace, "states")
joinFeatures = os.path.join(workspace, "cities")
 
# Output will be the target features, states, with a mean city population field (mcp)
outfc = os.path.join(outWorkspace, "states_mcp2")
 
# Create a new fieldmappings and add the two input feature classes.
fieldmappings = arcpy.FieldMappings()
fieldmappings.addTable(targetFeatures)
fieldmappings.addTable(joinFeatures)
 
# First get the POP1990 fieldmap. POP1990 is a field in the cities feature class.
# The output will have the states with the attributes of the cities. Setting the
# field's merge rule to mean will aggregate the values for all of the cities for
# each state into an average value. The field is also renamed to be more appropriate
# for the output.
pop1990FieldIndex = fieldmappings.findFieldMapIndex("POP1990")
fieldmap = fieldmappings.getFieldMap(pop1990FieldIndex)
 
# Get the output field's properties as a field object
field = fieldmap.outputField
 
# Rename the field and pass the updated field object back into the field map
field.name = "mean_city_pop"
field.aliasName = "mean_city_pop"
fieldmap.outputField = field
 
# Set the merge rule to mean and then replace the old fieldmap in the mappings object
# with the updated one
fieldmap.mergeRule = "mean"
fieldmappings.replaceFieldMap(pop1990FieldIndex, fieldmap)
 
# Delete fields that are no longer applicable, such as city CITY_NAME and CITY_FIPS
# as only the first value will be used by default
x = fieldmappings.findFieldMapIndex("CITY_NAME")
fieldmappings.removeFieldMap(x)
y = fieldmappings.findFieldMapIndex("CITY_FIPS")
fieldmappings.removeFieldMap(y)
 
#Run the Spatial Join tool, using the defaults for the join operation and join type
arcpy.analysis.SpatialJoin(targetFeatures, joinFeatures, outfc, "#", "#", fieldmappings)

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック