インシデントの検出 (Detect Incidents) (GeoAnalytics)

概要

特定の条件を満たすフィーチャを検出するレイヤーを作成します。

[インシデントの検出 (Detect Incidents)] ツールのワークフロー図
[インシデントの検出 (Detect Incidents)] のワークフロー

使用法

  • このジオプロセシング ツールは ArcGIS Enterprise 10.6 以降で使用できます。

  • 次のテーブルに、[インシデントの検出 (Detect Incidents)] ツールの用語の概要を示します。

    用語説明

    トラック

    時間対応かつ時間のタイプが瞬間を示す一連のフィーチャ。フィーチャはトラック ID フィールドに応じて順番が決定され、時間順に並びます。たとえば、都市に 10 分ごとにその場所を記録する除雪トラックを配備できます。車両 ID は、個別のトラックを示します。

    インシデント

    対象条件を満たすフィーチャ。

    インスタント

    開始時間は指定されているが終了時間は指定されていない、ある特定の時点を指します。[インシデントの検出 (Detect Incidents)] への入力には、時間タイプが瞬間を示す必要があります。

    間隔

    開始時間と終了時間が指定されている期間のことを指します。

    対象フィーチャ

    解析されるフィーチャを説明します。解析では、すべてのフィーチャが解析されます。

  • インシデントとは、特定の条件を満たすフィーチャのことです。

  • [インシデントの検出 (Detect Incidents)] は新しい出力を作成します。入力は変更されません。

  • [インシデントの検出 (Detect Incidents)] は、テーブル、ポイント、ライン、またはポリゴン フィーチャで実行できます。入力レイヤーは、特定時点を表すフィーチャによって、時間が有効化されている必要があります。

  • 時間エントリがある入力フィーチャのみが使用されます。時間エントリのないフィーチャは除外されます。

  • トラックは、トラック フィールドの一意の組み合わせで表されます。たとえば、flightID フィールドと Destination フィールドがトラック識別子として使用される場合、フィーチャ [[ID007, Solden]] と [[ID007, Tokyo]] は 2 つの個別トラックになります。Destination フィールドの値が異なるからです。

  • 条件式は、Arcade 条件式を使用して作成されます。開始条件は必須ですが、終了条件は任意です。開始条件のみを適用すると、開始条件が true として評価されるとインシデントが開始し、開始条件が false として評価されると終了します。たとえば、トラックの値が [0, 10, 15, 20, 40, 10, 12, -2, -12] で開始条件が $feature["values"] > 15 の場合、インシデントとなるフィーチャは [True] で、結果は [0: False, 10: False, 15: False, 20: True, 40: True, 10: False, 12: False, -2: False, -12: False] となります。この場合、15 より大きい値のみがインシデントになります。終了条件として $feature["values"] < 0 を適用すると、その結果は [0: False, 10: False, 15: False, 20: True, 40: True, 10: True, 12: True, -2: False, -12: False] になります。この例では、開始条件が満たされるとインシデントが開始します。その後、後続のフィーチャは終了条件が true になるまでインシデントになります。次の表で、これらの例を説明を示します。

    位置123456789

    0

    10

    15

    20

    40

    10

    12

    -2

    -12

    開始: $feature["values"] > 15 および終了なし

    False

    False

    False

    True

    True

    False

    False

    False

    False

    開始: $feature["values"] > 15 および終了: $feature["values"] < 0

    False

    False

    False

    True

    True

    True

    True

    False

    False

    時間間隔を適用すると、指定間隔でトラックがセグメント化されます。たとえば、時間間隔の境界を 1 日に設定し、1990 年 1 月 1 日午前 9 時から開始した場合、各トラックは毎日午前 9 時に切詰められます。この分割を使用すると、解析のためのトラックを短縮できるため、計算時間を高速化できます。時間間隔の境界の繰り返しによる分割が解析で有効な場合は、ビッグ データ処理にこの方法を使用することをお勧めします。

  • 条件は、Arcade 条件式を使用して作成され、トラック対応にできます。

    [インシデントの検出 (Detect Incidents)] を使用した GeoAnalytics Server の Arcade 条件式の詳細

  • トラックには複数インシデントを設定できます。

  • 出力フィーチャは、入力のフィールドと以下の追加のフィールドを返します。

    • IncidentID - インシデントであるすべてのフィーチャに割り当てられる一意の ID。
    • IncidentStatus - インシデントのステータスを示す文字列フィールド。値は、フィーチャがインシデントでない場合は null、フィーチャが開始条件を満たす最初のインシデントの場合は Started、フィーチャが引き続きインシデントの場合は OnGoing、フィーチャがインシデントでなくなると Ended になります。1 つのトラックにインシデントの複数セグメントを設定できます。たとえば、[0, 10, 15, 20, 40, 10, 12, -2, -12] という値を持ち、開始条件が $feature["values"] > 15 のトラックであれば、IncidentStatus の値は [0: null, 10: null, 15: null, 20: Started, 40: OnGoing, 10: Ended, 12: null, -2: null, -12: null] になります。
    • IncidentDuration - インシデントが発生した時間をミリ秒単位で表します。これは、対象フィーチャとインシデントを開始したフィーチャ間の差として計算されます。
    • Instant_Datetime - フィーチャが発生した時間。

  • フィーチャはトラックごとに時系列で並べられます。最初のフィーチャから、true になるまで開始条件が評価されます。フィーチャが開始条件を満たすと、それ以降のフィーチャは、開始条件が false になるまで (終了条件が指定されていない場合)、または終了条件が true になるまで (終了条件が指定されている場合) 評価されます。その条件を満たすと、インシデントが終了し、処理がやり直しになります。個々のトラックに複数のインシデント セグメントがある場合があります。たとえば、[10, 20, 30, 40, 50, 10, 20, 30, 40, 50, 10, 20] という値を持ち、開始条件が $feature["values"] > 20 のトラックであれば、インシデント [10: null, 20: null, 30: Started, 40: OnGoing, 50: OnGoing, 10: Ended, 20: null, 30: Started, 40: OnGoing, 50: OnGoing, 10: Ended, 20: null] には 2 つのセグメントがあります。

  • インシデントの間隔は、フィーチャからインシデントの開始を引いた時間としてミリ秒で計算されます。期間は、フィーチャのステータスが StartedOnGoing、またはEnded の場合にのみ計算されます。ステータスが Started のフィーチャの間隔は常に 0 です。

  • 次の 1 つまたは複数の操作を実行して、[インシデントの検出 (Detect Incidents)] ツールのパフォーマンスを向上させることができます。

    • 対象データのみが解析されるように、範囲環境を設定します。
    • インシデント フィーチャのみを出力します。
    • [時間境界分割] パラメーターを使用してトラックを分割します。
    • 解析が実行されている場所に対してローカルなデータを使用します。

  • ジオプロセシング ツールは、ArcGIS GeoAnalytics Server を活用しています。解析は GeoAnalytics Server で実行され、結果が ArcGIS Enterprise のコンテンツに保存されます。

  • GeoAnalytics Server ツールを実行する場合、解析は GeoAnalytics Server で実行されます。最適なパフォーマンスを得るためには、ArcGIS Enterprise ポータルでホストされているフィーチャ レイヤーかビッグ データ ファイル共有を通じて、GeoAnalytics Server にデータを提供する必要があります。GeoAnalytics Server のローカルにないデータは、解析が開始する前に GeoAnalytics Server に移動されます。つまり、ツールを実行する時間が長くなり、場合によっては ArcGIS Pro から GeoAnalytics Server にデータを移動できないこともあります。エラーの閾値はネットワークの速度や、データのサイズや複雑さに左右されます。したがって、データを必ず共有するか、ビッグ データ ファイル共有を作成することをお勧めします。

    データをポータルで共有する方法の詳細

    ArcGIS Server Manager を使用してビッグ データ ファイル共有を作成する方法の詳細

構文

arcpy.geoanalytics.DetectIncidents(input_layer, output_name, track_fields, start_condition, {end_condition}, {output_mode}, {data_store}, {time_boundary_split}, {time_boundary_reference})
パラメーター説明データ タイプ
input_layer

インシデント候補を含む入力フィーチャ。

Record Set
output_name

出力フィーチャ サービスの名前。

String
track_fields
[track_fields,...]

一意のトラックを識別するために使用する 1 つまたは複数フィールド。

Field
start_condition

インシデントの特定に使用する条件。式は Arcade で記述され、[+ - * / ] 演算子と複数のフィールドを含めることができます。

Calculator Expression
end_condition
(オプション)

インシデントの終了に使用する条件。終了条件が指定されていない場合、インシデントは開始条件が true でなくなったときに終了します。

Calculator Expression
output_mode
(オプション)

返されるフィーチャを指定します。

  • ALL_FEATURESすべての入力フィーチャが返されます。これがデフォルトです。
  • INCIDENTSインシデントとして検出されたフィーチャのみが返されます。
String
data_store
(オプション)

出力の保存先の ArcGIS Data Store を指定します。デフォルトは、SPATIOTEMPORAL_DATA_STORE です。ビッグ データ ストアに格納されたすべての結果は、WGS84 で保存されます。リレーショナル データ ストアに格納された結果は、それらの座標系を維持します。

  • SPATIOTEMPORAL_DATA_STORE出力がビッグ データ ストアに格納されます。これがデフォルトです。
  • RELATIONAL_DATA_STORE出力がリレーショナル データ ストアに格納されます。
String
time_boundary_split
(オプション)

入力データを解析用に分割する期間。時間境界により、指定期間内の値を解析できます。たとえば、時間境界を 1 日とした場合、1980 年 1 月 1 日から開始され、トラッキングは 1 日の開始時ごとに分割されます。このパラメーターは ArcGIS Enterprise 10.7 以降のライセンスでのみ利用可能です。

Time Unit
time_boundary_reference
(オプション)

入力データを解析用に分割する際に使用される基準時間。時間境界は、データの全期間に対して作成されます。基準時間は最初から作成する必要はありません。基準時間を指定しないと、1970 年 1 月 1 日が使用されます。このパラメーターは ArcGIS Enterprise 10.7 以降のライセンスでのみ利用可能です。

Date

派生した出力

名前説明データ タイプ
output

特定の条件を満たす出力フィーチャ。

レコード セット

コードのサンプル

DetectIncidents (インシデントの検出) の例 1 (Python ウィンドウ)

次の Python ウィンドウ スクリプトは、DetectIncidentsツールの使用方法を示しています。

#-------------------------------------------------------------------------------
# Name: DetectIncidents.py
# Description: Detect Incidents when wind speed is greater than 100 miles per hour
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer/0"
outFS = "HurricaneTracks_Incidents"
trackIdentifier = "STAGE"
start_condition = "$feature['WINDSPEED'] > 100"
# Execute Reconstruct Tracks
arcpy.geoanalytics.DetectIncidents(inFeatures, outFS, trackIdentifier, calcExpression)

環境

出力座標系

解析で使用される座標系。このパラメーターで指定されない限り、入力の座標系で解析が行われます。GeoAnalytics Tools の場合、最終結果は WGS84 のビッグ データ ストアに保存されます。

ライセンス情報

  • Basic: 次のものが必要 ArcGIS GeoAnalytics Server
  • Standard: 次のものが必要 ArcGIS GeoAnalytics Server
  • Advanced: 次のものが必要 ArcGIS GeoAnalytics Server

関連トピック