概要
空間 (場所) と時間で互いに近接するイベントをトレースします。時間対応ポイント データには、時間内の瞬間を表すフィーチャが含まれている必要があります。
図
使用法
次の例は、[近接イベントのトレース (Trace Proximity Events)] ツールで実行できるユースケースを示します。
- ある組織では、労働者が携帯する会社支給のデバイスを監視しています。この企業は、新型コロナウイルス感染症 2019 (COVID-19) に罹患していることが判明している個人の近くにどの従業員がいたかを特定したいと考えています。デバイスの位置と時間を表すポイント レイヤーを使用して、感染者と感染の可能性のある他の従業員から 6 メートルおよび 5 分以内に位置していたデバイスを特定しています。
- ある NGO は GPS を使ってサケの個体数を監視しており、逃げた養殖サケと野生の個体群の間でのサケジラミの広がりを追跡したいと考えています。GPS でタグ付けされた養殖サケの一部が、タグ付けされた野生の個体群と近接しているかどうかを追跡して、野生の個体群がどのようにして病気をさらに広める可能性があるかを確認しています。測定には深度フィールドも含まれており、この NGO は同じような水深の魚だけを見つけるためにこのフィールドを使用しています。
次の用語は、[近接イベントのトレース (Trace Proximity Events)] ツールで使用されています。
- エンティティ - 動物、人、乗り物など、定期的に位置が記録されるオブジェクト。エンティティは、静止または移動しています。
- 対象エンティティ - トレースの開始に使用される特定のエンティティで、たとえば COVID-19 に感染した人物。
- 近接イベント - 2 つのエンティティが互いに近接している期間で、たとえば互いに 3 メートル以内、1 分ウィンドウ以内に近接した 2 人の人物。
- 深度 - 対象エンティティとトレースのさらに下 (下流) にあるエンティティとの間の離れ具合。たとえば、対象エンティティと深度 1 に位置する別の人物との間にある近接イベントです。
- トレース イベント - 対象エンティティより下流の指定エンティティの最初の接触。
次の線図は、[近接イベントのトレース (Trace Proximity Events)] ツールがどのようにデータを処理するかを示しています。これらの線図では、時間は X 軸上にあります。
各線図では、A、B、C、および D の 4 つのエンティティがあります。ハイライトされたテキストは、2 つのエンティティ間で発生するトレース イベント (From エンティティと To エンティティ) と近接イベントの深さを説明します。この例では、エンティティ C は、下流でトレースされている対象エンティティです。
線図 1 では、エンティティ C は、選択された対象エンティティです。深度は 0 です。
線図 2 では、エンティティ C と B の間で近接イベントが発生しており、トレースの深度は 1 です。複数のフィーチャが後続の近接イベントである場合、これは持続的な近接イベントです。
線図 3 では、エンティティ C と A の間で近接イベントが発生しており、トレースの深度は 2 です。
線図 4 では、エンティティ C と D の間で近接イベントが発生しており、トレースの深度は 1 です。
以下のイメージでは、エンティティ B は対象エンティティであり、青い丸で示されたエンティティ A と 3 回近接しています。時間が X 軸上にあると仮定すると、最初の近接イベントは 1 であり、次いで接触なしのブレーク、そして近接イベント 2 と 3 が続きます。ツールはイベント 1 をトレース イベントとして返します。近接イベント 2 と 3 は、[近接イベントの出力] パラメーター レイヤーでは返されません。近接イベント 1 以降のすべてのフィーチャは、[出力トラッキング] パラメーターで返されます。
フィーチャは、互いに近接していると見なされる [空間検索距離] と [時間検索距離] パラメーター基準の両方を満たしている必要があります。
図 A: 2 つのフィーチャは互いの空間検索距離内に位置しています。 図 B: 2 つのフィーチャは互いの時間的距離 (時間検索距離) 内に位置しています。 時間検索距離と空間検索距離を大きく指定すると、より多くのイベントが発生し、結果の処理に時間がかかります。距離を小さくすると、イベント数が少なくなり、処理時間が短くなります。
ドメイン固有の知識を使用して、[空間検索距離] および [時間検索距離] パラメーターに使用する値を決定します。これらの距離を設定する際は、デバイス精度などの係数を考慮してください。
[使用する対象エンティティの定義] パラメーターは、次のオプションをサポートしています。
- 対象エンティティ ID - このオプションを使用すると、[対象エンティティ ID] パラメーターが有効になります。このパラメーターでは、トレース開始時点の [エンティティ ID] の値とオプションの [開始] 時間の値が必要です。
- 指定された対象エンティティ レイヤーで選択されたフィーチャ - このオプションを使用すると、[対象エンティティ レイヤー] パラメーターが有効になります。このパラメーターによって、エンティティ ID と、トレースを開始する時間 (オプション) を含むレイヤーを選択できます。このレイヤーでは、エンティティ ID フィールド名は入力レイヤーのエンティティ ID フィールド名と一致している必要があります。時間対応レイヤーの場合、このレイヤーでは時間が使用されます。
対象エンティティでは、近接トレースが開始されます。開始時間を指定する場合、トレースはエンティティにおけるその時間に始まります。時間を指定しない場合、トレースはエンティティにおける 1970 年 1 月 1 日に始まります。
近接イベントに追加の要件を設定することができます。たとえば、キャンパス内の特定の建物内の個人のみをトレースしたり、建物の 1 つの階層内のみをトレースできます。[属性の一致基準] パラメーターを使用して、制限属性を指定します。たとえば、同じフロア上のエンティティを制限するには、Floor フィールドを指定します。
[近接イベントの出力] レイヤーには、トレース内のエンティティの最初の近接イベントと、以下のフィールドが含まれます。
- from_id - 上流エンティティ ID。
- to_id - 下流エンティティ ID。
- depth - 対象エンティティと to_id フィールドの間の離れ具合。
- duration_minutes - トレース イベントの期間 (分)。このフィールドは、開始時間と終了時間の差として計算されます。たとえば、1.5 分は 90 秒です。値 0 は、単一の近接イベントがあることを意味します (同じ開始時間と終了時間)。
- instant_datetime - 近接イベントの日付と時刻。このフィールドは、近接イベントにおいて最初に記録された基準を満たした時間として計算されます。
[近接イベントの出力] レイヤーは、時間スライダーを使用して、またはリンク チャートでトレース結果を視覚化することができます。
オプションの [出力トラッキング] パラメーターを使用して、そのエンティティの最初のトレース イベントとそれに続くすべてのフィーチャを含むレイヤーを作成することができます。これらの結果は、エンティティが移動した場所を視覚化するのに役立ち、[トラッキングの再構築 (Reconstruct Tracks)] ツールで使用できます。[出力トラッキング] パラメーターには、次のフィールドが含まれます。
- entity_id - エンティティ ID。
- depth - 対象エンティティとトレース トラッキングの間の離れ具合。深度は、単一のトラッキング全体で同じになります。
- date - 各フィーチャの日付。これは、入力フィーチャからのレコードと同じ日付になります。
時間値、ジオメトリ値、またはエンティティ ID フィールドを持たない入力ポイントは、結果に含まれません。
近接トレースを使用して伝達 (病気など) を見つける場合は、次の点に注意してください。
- トレース イベントが存在しても、単に発生する可能性であって、それが伝達されたことを保証するものではありません。
- トレース イベントが存在しない場合でも、何かが伝達されなかったことを意味するものではありません。病気のようなケースでは、他のベクターを介して伝達される可能性があります。
- 可能な場合、[属性の一致基準] パラメーターを使用して必要に応じて近接イベントを制限します。たとえば、属性を使用して部屋、床、または標高を制限します。
すべての近接イベントの計算に関心があり、対象エンティティから下流をトレースすることに関心がない場合は、[結合フィーチャ (Join Features)] ツールを使用します。
次の 1 つまたは複数の操作を実行して、[近接イベントのトレース (Trace Proximity Events)] ツールのパフォーマンスを向上させることができます。
- [空間検索距離] および [時間検索距離] パラメーターには小さな値を使用します。
- [属性の一致基準] パラメーターを使用して、対象エンティティを制限します。
- [トレースの最大深度] の値を指定して、所定のエンティティと対象エンティティの下流のトレース数を制限します。
- 対象データのみが解析されるように、範囲環境を設定します。
- 解析が実行されている場所に対してローカルなデータを使用します。
GeoAnalytics Server ツールを実行する場合、解析は GeoAnalytics Server で実行されます。最適なパフォーマンスを得るためには、ArcGIS Enterprise ポータルでホストされているフィーチャ レイヤーかビッグ データ ファイル共有を通じて、GeoAnalytics Server にデータを提供する必要があります。GeoAnalytics Server のローカルにないデータは、解析が開始する前に GeoAnalytics Server に移動されます。つまり、ツールを実行する時間が長くなり、場合によっては ArcGIS Pro から GeoAnalytics Server にデータを移動できないこともあります。エラーの閾値はネットワークの速度や、データのサイズや複雑さに左右されます。したがって、データを必ず共有するか、ビッグ データ ファイル共有を作成することをお勧めします。
構文
arcpy.geoanalytics.TraceProximityEvents(in_points, entity_id_field, output_name, distance_method, {spatial_search_distance}, {temporal_search_distance}, entities_of_interest_input_type, entities_interest_ids, entities_interest_layer, {include_tracks_layer}, max_trace_depth, {attribute_match_criteria}, {data_store})
パラメーター | 説明 | データ タイプ |
in_points | 近接イベントをトレースするために使用される時間対応ポイント フィーチャクラスです。 | Feature Set |
entity_id_field | 各エンティティの固有 ID を表すフィールドです。 | Field |
output_name | 出力フィーチャ サービスの名前。 | String |
distance_method | [空間検索距離] パラメーターで使用する距離タイプを指定します。
| String |
spatial_search_distance (オプション) | 近接していると見なされる 2 つのポイント間の最大距離です。空間検索距離と時間検索距離の基準内のフィーチャは、互いに近接していると見なされます。 | Linear Unit |
temporal_search_distance (オプション) | 近接していると見なされる 2 つのポイント間の最大期間。時間検索距離以内のフィーチャと空間検索距離の基準を満たすフィーチャは、互いに近接していると見なされます。 | Time Unit |
entities_of_interest_input_type | 対象エンティティを指定します。
| String |
entities_interest_ids [entities_interest_ids,...] | 対象エンティティのエンティティ名と開始時間。このパラメータは、ID_START_TIME が entities_of_interest_input_type パラメーターに指定された場合のみサポートされます。
| Value Table |
entities_interest_layer | 対象エンティティを含むレイヤーまたはテーブルです。このパラメータは、SELECTED_FEATURE が entities_of_interest_input_type パラメーターに指定された場合のみサポートされます。 | Record Set |
include_tracks_layer (オプション) | 指定されたエンティティの最初のトレース イベントとそれに続くすべてのフィーチャを含む出力レイヤーを生成するか指定します。
| Boolean |
max_trace_depth | 対象エンティティとトレースのさらに下 (下流) にあるエンティティとの間の最大の離れ具合。 | Long |
attribute_match_criteria [attribute_match_criteria,...] (オプション) | 近接イベントの制限に使用するフィールドです。 | Field |
data_store (オプション) | 出力の保存先の ArcGIS Data Store を指定します。デフォルトは、SPATIOTEMPORAL_DATA_STORE です。ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。
| String |
派生した出力
名前 | 説明 | データ タイプ |
output | トレースされた近接イベントを含むレイヤーです。 | フィーチャ セット |
tracks_layer | トラッキングの最初のトレース イベントとそれに続くすべてのフィーチャを含むオプションのレイヤーです。 | フィーチャ セット |
コードのサンプル
次のスタンドアロン スクリプトで、この TraceProximityEvents ツールの使用方法を示します。
# Name: TraceProximityEvents.py
# Description: Trace proximity events for user1 and user4 with 30 feet
# spatial search distance and 10 minute temporal search distance.
# Import system modules
import arcpy
inFeatures = "https://analysis.mydomain.com/server/rest/services/sample_tracks/FeatureServer/0"
entityIDField = "user_id"
outFS = "ProximityEvents"
spatialDistance = "30 Feet"
temporalDistance = "10 Minutes"
entitiesOfInterest = "user1 '3/30/2020 9:00:00 AM';user4 '3/30/2020 9:00:00 AM'"
outTracks = "out_tracks"
max_trace_depth = 3
dataStore = "SPATIOTEMPORAL_DATA_STORE"
# Execute Trace Proximity Events
arcpy.geoanalytics.TraceProximityEvents(inFeatures, entityIDField, outFS,
"PLANAR", spatialDistance,
temporalDistance, "ID_START_TIME",
entitiesOfInterest, None, "TRACKS",
None, None, max_trace_depth, dataStore)
環境
- 出力座標系
解析で使用される座標系。このパラメーターで指定されない限り、入力の座標系で解析が行われます。GeoAnalytics Tools の場合、最終結果は WGS84 のビッグ データ ストアに保存されます。
ライセンス情報
- Basic: 次のものが必要 ArcGIS GeoAnalytics Server
- Standard: 次のものが必要 ArcGIS GeoAnalytics Server
- Advanced: 次のものが必要 ArcGIS GeoAnalytics Server