空間結合の追加 (データ管理ツール)
サマリー
フィーチャクラスの属性を、空間リレーションシップに基づいて別のフィーチャクラスの属性に結合します。 ターゲット フィーチャと、結合フィーチャの結合された属性が結合されます。
詳細については、空間条件で選択: 図の例をご参照ください。
使用法
結合された属性が集計され、個別のコピーとして保存されます。 結合されたデータの更新は静的なため、反映されません。 データを更新するには、結合を削除して、ツールを再実行します。
ツールにより、次のフィールドが作成されます。
このツールは 1 対多の結合をサポートしていません。 1 対多の結合を実行するには、空間結合 ツールを使用します。
デフォルトでは、結合フィーチャのすべての属性は、ターゲット フィーチャの属性に結合されます。 結合後の出力に含める属性は、フィールド マップ パラメーターを使用して定義できます。
フィールド マップ パラメーターに指定した操作は、複数のフィーチャがターゲット フィーチャにマッチしたときに (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 番目に近いフィーチャを検索するには、近接情報テーブルの生成 ツールを使用します。
近接性の計算方法の詳細
永続的にフィールドを結合 パラメーターがオンになっている場合、すべてのターゲット フィーチャを保持する パラメーターがオフになっている場合でも、ターゲット データセット内のすべてのレコードが保持されます。
同じ名前を共有する 結合フィーチャ パラメーター値を使用してこのツールを複数回実行する場合には、永続的にフィールドを結合 パラメーターを使用します。 一時的な結合が適切に機能するためには、一意のテーブル名とフィールド名が必要です。
1 つの結合フィーチャに複数のターゲット フィーチャとの空間リレーションシップがある場合、それはマッチするターゲット フィーチャの数だけカウントされます。 たとえば、あるポイントが 3 つのポリゴン内にある場合、そのポイントはポリゴンにつき 1 回、合計で 3 回カウントされます。
交差する (3D) および 一定距離内にある (3D) の空間リレーションシップの使用に関する詳細については、空間検索の 3D リレーションシップをご参照ください。
パラメーター
|
ラベル
|
説明
|
データ タイプ
|
|
ターゲット フィーチャ
|
ターゲット フィーチャの属性と結合フィーチャの属性は、ターゲット フィーチャ レイヤーに結合されます。 ただし、フィールド マップ パラメーターを使用して属性のサブセットを定義することができます。
|
Feature Layer
|
|
結合フィーチャ
|
結合フィーチャの属性は、ターゲット フィーチャの属性に結合されます。 結合された属性の集約に結合操作がどのように影響するかについては、結合方法 パラメーターの説明をご参照ください。
|
Feature Layer
|
|
結合方法
(オプション)
|
このパラメーターは非表示であり、サポートされていません。 すべての結合は 1 対 1 の結合として実行されます。
出力フィーチャクラスに出力が作成されるときに 1 対多の結合を実行するには、空間結合 ツールを使用します。
|
String
|
|
すべてのターゲット フィーチャを保持
(オプション)
|
結合フィーチャとの空間リレーションシップがあるターゲット フィーチャのみを保存するか (内部結合)、結合フィーチャとの空間リレーションシップがないターゲット フィーチャも保存するか (外部結合) を指定します。
|
Boolean
|
|
フィールド マップ
(オプション)
|
それぞれのプロパティおよびソース フィールドとともにターゲット データセットに一時的に結合されるフィールド。 デフォルトでは、結合データセット内のすべてのフィールドが含まれます。
フィールド マップを使用すると、フィールドの追加、フィールドの削除、フィールド名の変更、フィールドの順序変更、他のフィールド プロパティの変更を実行できます。
フィールド マップを使用して、複数の入力フィールドの値を 1 つの出力フィールドに結合することができます。
|
Field Mappings
|
|
マッチ オプション
(オプション)
|
行の一致に使用される条件を指定します。
交差する—結合フィーチャのフィーチャは、ターゲット フィーチャと交差するときにマッチします。 これがデフォルトです。 検索半径 パラメーターで距離を指定します。
交差する (3D)—結合フィーチャ内のフィーチャは、そのフィーチャが 3 次元空間 (X,Y,Z) でターゲット フィーチャと交差している場合にマッチします。 検索半径 パラメーターで距離を指定します。
一定距離内にある—結合フィーチャのフィーチャは、ターゲット フィーチャとの距離が指定範囲以内にある場合にマッチします。 検索半径 パラメーターで距離を指定します。
一定距離内にある (測地線)—平面距離ではなく測地距離が使用される点を除いて、一定距離内にある と同じです。 フィーチャ間の距離は、測地線の式を使用して計算されます。この式は、楕円体の曲率を考慮して、日付変更線と極の近くのデータおよび交差するデータを正確に処理します。 このオプションは、データが広大な地理的範囲をカバーしている場合または入力座標系が距離の計算に適していない場合に使用します。
一定距離内にある (3D)—結合フィーチャのフィーチャは、3 次元空間において、ターゲット フィーチャとの距離が指定範囲以内にある場合にマッチします。 検索半径 パラメーターで距離を指定します。
含む—結合フィーチャのフィーチャは、ターゲット フィーチャに含まれる場合にマッチします。 ターゲット フィーチャは、ポリゴンまたはポリラインである必要があります。 このオプションでは、ターゲット フィーチャとしてポイントを指定できません。また、ターゲット フィーチャがポリゴンの場合は、結合フィーチャとしてポリゴンだけを指定できます。
完全に含む—結合フィーチャのフィーチャは、ターゲット フィーチャに完全に含まれる場合にマッチします。 ポリゴンには、どのフィーチャも完全に含めることができます。 ポイントには、どのフィーチャも完全に含めることができず、ポイントを含めることもできません。 ポリラインには、ポリライン フィーチャとポイント フィーチャだけを完全に含めることができます。
含む (Clementini)—この空間リレーションシップでは、結合フィーチャが完全にターゲット フィーチャの境界線上にある (選択フィーチャのどの部分も入力フィーチャの内部にも外部にもない) 場合に、そのフィーチャがマッチしない点を除いて、完全に含む と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
含まれる—結合フィーチャのフィーチャは、ターゲット フィーチャを含む場合にマッチします。 これは 含む の反対です。 このオプションでは、結合フィーチャがポリゴンの場合は、ターゲット フィーチャとしてポリゴンだけを指定できます。 ポイントがターゲットの場合にのみ、ポイントを結合フィーチャとして指定できます。
完全に含まれる—結合フィーチャのフィーチャは、ターゲット フィーチャがそれらに完全に含まれる場合にマッチします。 これは 完全に含む の反対です。
含まれる (Clementini)—結合フィーチャのフィーチャ全体が、ターゲット フィーチャの境界線の上にある場合にはフィーチャがマッチしない点を除き、含まれる と同じ結果になります。 Clementini は、境界線ポリゴンは内部と外部を分離するポリゴンであり、ラインの境界線はその端点で、ポイントの境界線は常に空であると定義しています。
正確に一致する—結合フィーチャのフィーチャは、ターゲット フィーチャと同一である場合にマッチします。 結合フィーチャとターゲット フィーチャはどちらも、同じシェープ タイプ (ポイントとポイント、ラインとライン、ポリゴンとポリゴン) でなければなりません。
境界に接する—結合フィーチャのフィーチャは、境界線がターゲット フィーチャと接している場合にマッチします。 ターゲット フィーチャおよび結合フィーチャがラインまたはポリゴンであるとき、結合フィーチャの境界線は、ターゲット フィーチャの境界線と接することができるだけで、結合フィーチャのいずれの部分もターゲット フィーチャの境界線と重なることはできません。
線分を共有する—結合フィーチャのフィーチャは、ライン セグメントをターゲット フィーチャと共有する場合にマッチします。 結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。
アウトラインが横切る—結合フィーチャのフィーチャは、その境界線がターゲット フィーチャと交差する場合にマッチします。 結合フィーチャおよびターゲット フィーチャは、ラインまたはポリゴンのいずれかである必要があります。 結合フィーチャまたはターゲット フィーチャとしてポリゴンが使用される場合には、ポリゴンの境界線 (ライン) が使用されます。 ポイントで交差するラインはマッチしますが、線分を共有するラインはマッチしません。
重心が含まれる—結合フィーチャのフィーチャは、ターゲット フィーチャの中心を含む場合にマッチします。 フィーチャの中心を計算する場合、ポリゴンとマルチポイントでは、ジオメトリーの重心が使用され、ライン入力では、ジオメトリーの中間点が使用されます。 検索半径 パラメーターで距離を指定します。
最も近い—結合フィーチャのうち、ターゲット フィーチャに最も近いフィーチャがマッチします。 詳細については、使用上のヒントをご参照ください。 検索半径 パラメーターで距離を指定します。
最も近い (測地線)—平面距離ではなく測地距離が使用される点を除いて、最近接 と同じです。 このオプションは、データが広大な地理的範囲をカバーしている場合または入力座標系が距離の計算に適していない場合に使用します。
最大のオーバーラップ—結合フィーチャのフィーチャは、最大の重なりを持つターゲット フィーチャとマッチします。
|
String
|
|
検索半径
(オプション)
|
ターゲット フィーチャのこの範囲内にある結合フィーチャが、空間結合の対象と見なされます。 検索半径は、空間リレーションシップが指定されている (マッチ オプション パラメーターが 交差する、一定距離内にある、一定距離内にある (測地線)、重心が含まれる、最も近い または 最も近い (測地線) に設定されている) 場合のみ有効になります。 たとえば、検索半径に 100 メートルを指定して、一定距離内にある 空間リレーションシップを使用すると、ターゲット フィーチャから 100 メートル以内のフィーチャを結合します。 3 つの一定距離内にあるリレーションシップにおいて、検索半径 に値が指定されていない場合は、距離 0 が使用されます。
|
Linear Unit
|
|
距離フィールド名
(オプション)
|
ターゲット フィーチャと最も近い結合フィーチャとの間の距離を含むフィールドの名前。 このフィールドは結合に追加されます。 このパラメーターは、空間リレーションシップが指定されている (マッチ オプション が 最も近い または 最も近い (測地線) に設定されている) 場合のみ有効になります。 検索半径内にマッチするフィーチャがない場合は、この値を -1 に指定します。 フィールド名を指定しないと、このフィールドは結合に追加されません。
|
String
|
|
永続的にフィールドを結合
(オプション)
|
結合フィーチャクラスのフィールドをレイヤーに一時的に追加するか、ターゲット フィーチャクラスに永続的に追加するかを指定します。
|
Boolean
|
|
フィールドの照合
(オプション)
|
結合フィーチャ内のフィールドとターゲット フィーチャ内のフィールドのペアのうち、属性の一致に使用されるフィールド ペア。 照合フィールドの値をターゲット フィーチャと共有している結合フィーチャ内のレコードだけが空間結合に属します。
値テーブル列:
|
Value Table
|
派生した出力
|
ラベル
|
説明
|
データ タイプ
|
|
更新されたターゲット フィーチャ
|
更新された入力データセット。
|
Feature Layer
|
arcpy.management.AddSpatialJoin(target_features, join_features, {join_operation}, {join_type}, {field_mapping}, {match_option}, {search_radius}, {distance_field_name}, {permanent_join}, {match_fields})
|
名前
|
説明
|
データ タイプ
|
|
target_features
|
ターゲット フィーチャの属性と結合フィーチャの属性は、ターゲット フィーチャ レイヤーに結合されます。 ただし、field_mapping パラメーターを使用して属性のサブセットを定義することができます。
|
Feature Layer
|
|
join_features
|
結合フィーチャの属性は、ターゲット フィーチャの属性に結合されます。 結合された属性の集約に結合操作がどのように影響するかについては、join_operation パラメーターの説明をご参照ください。
|
Feature Layer
|
|
join_operation
(オプション)
|
このパラメーターはサポートされていません。 すべての結合は 1 対 1 の結合として実行されます。 Python で位置引数を使用している場合は、None タイプ、空の文字列 ("" または '')、または JOIN_ONE_TO_ONE キーワードを使用します。
出力フィーチャクラスに出力が作成されるときに 1 対多の結合を実行するには、空間結合 ツールを使用します。
|
String
|
|
join_type
(オプション)
|
結合フィーチャとの空間リレーションシップがあるターゲット フィーチャのみを保存するか (内部結合)、結合フィーチャとの空間リレーションシップがないターゲット フィーチャも保存するか (外部結合) を指定します。
|
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 パラメーターが INTERSECT、WITHIN_A_DISTANCE、WITHIN_A_DISTANCE_GEODESIC、HAVE_THEIR_CENTER_IN、CLOSEST、または CLOSEST_GEODESIC に設定されている) 場合のみ有効になります。 たとえば、検索半径に 100 メートルを指定して、WITHIN_A_DISTANCE 空間リレーションシップを使用すると、ターゲット フィーチャから 100 メートル以内のフィーチャを結合します。 3 つの一定距離内にあるリレーションシップにおいて、search_radius に値が指定されていない場合は、距離 0 が使用されます。
|
Linear Unit
|
|
distance_field_name
(オプション)
|
ターゲット フィーチャと最も近い結合フィーチャとの間の距離を含むフィールドの名前。 このフィールドは結合に追加されます。 このパラメーターは、空間リレーションシップが指定されている (match_option が CLOSEST または CLOSEST_GEODESIC に設定されている) 場合のみ有効になります。 検索半径内にマッチするフィーチャがない場合は、この値を -1 に指定します。 フィールド名を指定しないと、このフィールドは結合に追加されません。
|
String
|
|
permanent_join
(オプション)
|
結合フィーチャクラスのフィールドをレイヤーに一時的に追加するか、ターゲット フィーチャクラスに永続的に追加するかを指定します。
|
Boolean
|
|
match_fields
[[join_field, target_field],...]
(オプション)
|
結合フィーチャ内のフィールドとターゲット フィーチャ内のフィールドのペアのうち、属性の一致に使用されるフィールド ペア。 照合フィールドの値をターゲット フィーチャと共有している結合フィーチャ内のレコードだけが空間結合に属します。
値テーブル列:
|
Value Table
|
派生した出力
|
名前
|
説明
|
データ タイプ
|
|
out_feature_class
|
更新された入力データセット。
|
Feature Layer
|
コードのサンプル
AddSpatialJoin の例 (スタンドアロン スクリプト)
次の Python スクリプトは、スタンドアロン スクリプトで AddSpatialJoin 関数を使用する方法を示しています。
import os
import arcpy
arcpy.env.overwriteOutput = True
# Create hexagons
out_gdb = arcpy.env.scratchGDB
hex_fc = os.path.join(out_gdb, 'out_fc_hex_2')
arcpy.management.GenerateTessellation(
hex_fc, '-10823285.769168 4836611.80759869 -10781728.9441187 4856999.87422328',
'HEXAGON', '17269676,2624 Unknown', arcpy.SpatialReference(3857))
# Create 2 random points in each hexagon
count_pts = 2
pts_fc = arcpy.management.CreateRandomPoints(
out_gdb, 'out_fc_crp_2', constraining_feature_class=hex_fc,
number_of_points_or_field=count_pts)[0]
# Join the point attributes based on points within the hexagons
result = arcpy.management.AddSpatialJoin(
hex_fc, pts_fc, None, None, 'CID', 'COMPLETELY_CONTAINS')
環境
出力データのデフォルト Z 値, M 座標精度, M 許容値, 出力データのコンフィグレーション キーワード, 出力データの M ドメイン, 出力データの XY ドメイン, 出力データの Z ドメイン, 出力座標系, 範囲, 出力データに M 値を含む, 出力データに Z 値を含む, XY 座標精度, XY 許容値, Z 座標精度, Z 許容値
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい