注意:
現在、この機能は Map Viewer Classic (旧名称 Map Viewer) でのみサポートされています。 新しい Map Viewer の今後のリリースで提供される予定です。
ワークフロー図
解析での使用 GeoAnalytics Tools
GeoAnalytics Tools を使用した解析は、複数の ArcGIS GeoAnalytics Server コンピューターやコアにまたがる分散型処理を使用して実施されます。GeoAnalytics Tools と ArcGIS Enterprise の標準的なフィーチャ解析ツールは、異なるパラメーターと機能を持ちます。これらの相違点については、「フィーチャ解析ツールの相違点」をご参照ください。
用語
用語 | Description |
---|---|
トラッキング | 時間対応かつ時間のタイプが瞬間を示す一連のフィーチャ。 フィーチャはトラッキングを識別するフィールドに応じて順番が決定され、時間順に並びます。 たとえば、都市に 10 分ごとにその場所を記録する除雪トラックを配備できます。 車両 ID は、個別のトラックを示します。 |
インシデント | 対象条件を満たすフィーチャ。 |
インスタント | 開始時間は指定されているが終了時間は指定されていない、ある特定の時点を指します。 [インシデントの検出 (Detect Incidents)] への入力における時間のタイプは瞬間である必要があります。 |
間隔 | 開始時間と終了時間が指定されている期間のことを指します。 |
対象フィーチャ | 解析されるフィーチャの説明に使用されます。 解析では、すべてのフィーチャが解析されます。 |
例
水質とその汚染物質の監視は、センサーが果たす重要な役割です。 各センサーの測定値には、測定が行われたときのタイムスタンプや、対象の汚染物質の値が含まれています。 地域の水質測定データのほか、各地域での測定値とタイムスタンプにアクセスできます。 以前の時間ステップで、汚染物質の大量増加を報告したセンサーを探すこともできます。
使用上の注意
[インシデントの検出 (Detect Incidents)] は、テーブル、ポイント、ライン、またはエリア フィーチャで実行されます。 入力レイヤーは、特定時点を表すフィーチャによって、時間が有効化されている必要があります。
時間エントリがある入力フィーチャのみが使用されます。 時間を含まないフィーチャは使用されず、出力結果に含まれません。
トラックの識別に使用されるフィールドは、結果で返されます。
トラッキングを識別するために、1 つ以上のフィールドを選択できます。 トラッキングは、1 つ以上のトラッキング フィールドの一意の組み合わせで表されます。 たとえば、flightID フィールドと Destination フィールドがトラック識別子として使用される場合、フィーチャ「ID007, Solden」と「ID007, Tokoyo」は 2 つの個別トラッキングになります。Destination フィールドの値が異なるからです。
条件式を使用して、開始条件と終了条件が作成されます。
GeoAnalytics Tools の [インシデントの検出 (Detect Incidents)] での条件式の使用の詳細
終了条件の適用はオプションです。 開始条件のみを適用すると、インシデントは開始条件が 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] となります。 この例では、インシデントは開始条件が満たされたときに開始し、終了条件が満たされるまで、一連の各フィーチャはインシデントになります。 次の表で、これらの例を説明します。
位置: | 1 キー | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
値 | 0 | 10 | 15 | 20 | 40 | 10 | 12 | -2 | -12 |
開始: $feature["values"] > 15 および終了なし | False | False | False | True | True | True | False | False | False |
開始: $feature["values"] > 15 および終了: $feature["values"] < 0 | False | False | False | True | True | True | True | False | False |
時間間隔を適用すると、指定間隔でトラックがセグメント化されます。 たとえば、時間間隔の境界を 1 日に設定し、1990 年 1 月 1 日午前 9 時から開始した場合、各トラックは毎日午前 9 時に切詰められます。 時間分割を使用すれば、分析を目的にとして小さなトラッキングを簡単に作成できるため、計算時間を高速化できます。 時間間隔の境界の繰り返しによる分割が解析で有効な場合は、ビッグ データ処理にこの方法を使用することをお勧めします。
出力フィーチャは、入力のフィールドと追加のフィールドを返します。
- IncidentID- インシデントであるすべてのフィーチャに割り当てられる一意の ID。
- IncidentStatus- インシデントのステータスを示す文字列フィールド。 値は、フィーチャがインシデントでない場合は null、フィーチャが開始条件を満たす最初のインシデントの場合は Started、フィーチャが引き続きインシデントの場合は OnGoing、フィーチャがインシデントでなくなると Ended になります。 単一のトラックにインシデントの複数のセグメントがある場合があります。 たとえば、[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- フィーチャが発生する時間。
[現在のマップ範囲を使用] がオンの場合、現在のマップ範囲に表示されるフィーチャだけが解析されます。オフの場合、入力レイヤーのすべての入力フィーチャが、現在のマップ範囲内になくても解析されます。
制限事項
入力は、時間対応かつ時間のタイプが瞬間である必要があります。 時間を含まないフィーチャは、出力には含まれません。
[インシデントの検出 (Detect Incidents)] の詳細
以下では、[インシデントの検出 (Detect Incidents)] ツールの機能について説明します。
計算
フィーチャはトラックごとに時系列で並べられます。 最初のフィーチャから、true になるまで開始条件が評価されます。 フィーチャが開始条件を満たすと、開始条件が false になる (終了条件が指定されていない場合) または終了条件が true になる (終了条件が 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 つのセグメントになります。
インシデントの間隔は、フィーチャからインシデントの開始を引いた時間としてミリ秒で計算されます。 間隔は、フィーチャのステータスが Started、OnGoing、および Ended の場合のみ計算されます。 ステータスが Started のフィーチャの間隔は常に 0 です。
ArcGIS API for Python の例
インシデントの検出ツールは ArcGIS API for Python で使用できます。
この例では、5 つの速度値の変動ウィンドウの平均を計算することで、除雪車が時速 10 マイル以下で移動した時間と場所を特定します。
# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS
from arcgis.geoanalytics import find_locations
# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password")
if not portal.geoanalytics.is_supported():
print("Quitting, GeoAnalytics is not supported")
exit(1)
# Find the big data file share dataset you'll use for analysis
search_result = portal.content.search("", "Big Data File Share")
# Look through the search results for a big data file share with the matching name
bdfs_search = next(x for x in search_result if x.title == "bigDataFileShares_VehicleData")
# Look through the big data file share for snowplow track data
snowplows = next(x for x in bdfs_search.layers if x.properties.name == "Snowplow_tracks")
# Set the tool environment settings
arcgis.env.verbose = True
arcgis.env.defaultAggregations = True
# Run the Detect Incidents tool
output = find_locations.detect_incidents(input_layer = snowplows,
track_fields = "plowID, dayOfYear",
start_condition_expression = "Mean($track.field["speed"].window(-5, 0)) < 10",
output_name = "Snow_Plow_Incidents")
# Visualize the tool results if you are running Python in a Jupyter Notebook
processed_map = portal.map('Fairbanks, AK', 10)
processed_map.add_layer(output)
processed_map
類似のツール
インシデントであるフィーチャを検索するには、[インシデントの検出 (Detect Incidents)] を使用します。 その他のツールは、類似した少し異なる問題を解決するのに効果的です。
Map Viewer Classic の解析ツール
時間対応フィーチャをトラックに再構築するには、[トラックの再構築 (Reconstruct Tracks)] ツールを使用します。
フィールドの値を計算するには、[フィールド演算 (Calculate Field)] ツールを使用します。
ArcGIS Pro の解析ツール
[トラックの再構築 (Reconstruct Tracks)] ツールは、ArcGIS Pro でも使用できます。
[フィールド演算 (Calculate Field)] ツールは ArcGIS Pro でも使用できます。
[インシデントの検出 (Detect Incidents)] ツールは ArcGIS Pro で使用できます。
ArcGIS Pro からこのツールを実行するには、アクティブなポータルが Enterprise 10.6 以降である必要があります。GeoAnalytics フィーチャ解析を実行できる権限を持つアカウントでサイン インする必要があります。