概要
空間、時系列、および属性リレーションシップ、またはこれらのリレーションシップの組み合わせに基づいて、1 つのレイヤーの属性をもう 1 つのレイヤーに結合します。
図
使用法
空間結合では、空間位置に基づいて、入力フィーチャ ([ターゲット レイヤー] および [結合レイヤー] パラメーター) からのフィーチャ (行) と照合します。時間結合では、時系列リレーションシップに基づいて、入力フィーチャからのフィーチャ (行) と照合します。属性結合は、フィールド値に基づいてフィーチャを照合します。
空間リレーションシップ、時系列リレーションシップ、属性リレーションシップ、またはこれら 3 つの組み合わせに基づいてフィーチャを結合できます。
オプション 説明 空間リレーションシップ
フィーチャが互いに結合しているかどうかを判断する空間リレーションシップ。使用可能なリレーションシップは、結合されるレイヤーのジオメトリのタイプ (ポイント、ライン、エリア) によって決まります。使用可能な空間リレーションシップを次に示します。
- 交差する
- 等しい
- 平面近接 - 平面距離を使用します。
- 測地線近接 - 測地距離を使用します。ArcGIS Enterprise 10.7.1 以降でのみ利用可能です。
- 含む
- 含まれる
- 接する
- 横切る
- 重複する
時系列リレーションシップ
フィーチャが互いに結合しているかどうかを判断する時系列リレーションシップ。使用可能なリレーションシップは、結合されるレイヤーの時系列のタイプ (インスタントまたは間隔) によって決まります。使用可能な時系列リレーションシップを次に示します。
- 接続する
- 接続される
- 重複する
- 重複される
- 期間内にある
- 含む
- 等しい
- 終了する
- 終了される
- 開始する
- 開始される
- 交差する
- 近接
- 近接 (前)
- 近接 (後)
属性リレーションシップ
フィーチャが互いに結合しているかどうかを判断する属性リレーションシップ。フィーチャは、結合レイヤーのフィールド値がターゲット レイヤーのフィールド値に等しい場合に一致します。
ターゲット フィーチャと結合フィーチャの座標系が異なる場合、ターゲット フィーチャの座標系が使用されます。出力座標系を指定した場合、両方のフィーチャが出力座標系に投影変換されてから、結合されます。
[空間リレーションシップ] パラメーター値が [平面近接] である場合、[フィーチャの結合 (Join Features)] では、[ターゲット レイヤー] の値が投影されているか、出力座標系が投影座標系に設定されている必要があります。
同じターゲット フィーチャに対して複数のフィーチャが存在する場合、すべての一致するフィーチャを個別に結合するかどうか ([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 にデータを移動できないこともあります。エラーの閾値はネットワークの速度や、データのサイズや複雑さに左右されます。したがって、データを必ず共有するか、ビッグ データ ファイル共有を作成することをお勧めします。
構文
arcpy.geoanalytics.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}, {keep_all_target_features})
パラメーター | 説明 | データ タイプ |
target_layer | ターゲット フィーチャを含みます。ターゲット フィーチャの属性と結合されたフィーチャの属性は、出力に転送されます。 | Record Set |
join_layer | 結合フィーチャを含みます。結合フィーチャの属性は、ターゲット フィーチャの属性に結合されます。結合された属性の集約に結合操作がどのように影響するかについては、[結合方法] (Python では join_operation) パラメーターの説明をご参照ください。 | Record Set |
output_name | String | |
join_operation | 単一のターゲット フィーチャと同じ空間リレーションシップを持つ複数の結合フィーチャが検出された場合、target_layer の値と join_layer の値の結合を出力フィーチャでどのように処理するかを指定します。
| String |
spatial_relationship (オプション) | フィーチャを空間的に結合するために使用する条件を指定します。
| String |
spatial_near_distance (オプション) |
空間結合の対象として検討される結合フィーチャ内のターゲット フィーチャからの距離。検索範囲は、spatial_relationship パラメーター値が NEAR または NEAR_GEODESIC の場合のみ有効になります。 | Linear Unit |
temporal_relationship (オプション) | フィーチャの一致に使用する時間条件を指定します。
フィーチャの一致に使用する時間条件を指定します。
| String |
temporal_near_distance (オプション) |
空間結合の対象として検討される結合フィーチャ内のターゲット フィーチャからの時間距離。時間は、temporal_relationship パラメーター値が NEAR、NEAR_BEFORE、または NEAR_AFTER であり、両方のフィーチャが時間対応である場合にのみ有効です。 | Time Unit |
attribute_relationship [attribute_relationship,...] (オプション) | 属性フィールドの値に基づいてフィーチャを結合します。結合レイヤーの属性フィールドにマッチするターゲット レイヤーの属性フィールドを指定します。
| Value Table |
summary_fields [summary_fields,...] (オプション) | 指定されたフィールドに関して計算される統計情報。
| 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 です。ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。
| String |
keep_all_target_features (オプション) | 出力フィーチャクラスにすべてのターゲット フィーチャを保存するか (左外部結合)、結合フィーチャとのリレーションシップが指定されたターゲット フィーチャのみを保存するか (内部結合) を指定します。
| Boolean |
派生した出力
名前 | 説明 | データ タイプ |
output | 結合後の出力。 | レコード セット |
コードのサンプル
次のスタンドアロン スクリプトで、この 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 Tools の場合、最終結果は WGS84 のビッグ データ ストアに保存されます。
ライセンス情報
- Basic: 次のものが必要 ArcGIS GeoAnalytics Server
- Standard: 次のものが必要 ArcGIS GeoAnalytics Server
- Advanced: 次のものが必要 ArcGIS GeoAnalytics Server