移動イベントの分類 (Classify Movement Events) (インテリジェンス)

サマリー

入力ポイント トラッキング データセット内のターン イベント、加速イベント、および速度を特定します。

移動イベントの分類ツールの図

使用法

  • このツールを実行するには、[入力フィーチャ] パラメーターの値が投影座標系に含まれており、時間対応になっている必要があります。

    このツールでは、次のイベントを特定します。

    • 右折または左折
    • 右 U ターンまたは左 U ターン
    • 加速
    • 減速
    • 開始
    • 停止
    • 速度 (マイル/時間)
    • 速度 (キロメートル/時間)
    • 起点方向
    • 終点方向

    さらに、現在のポイントとトラッキング内の前のポイントの間の距離の差と時間差も計算されます。

    必要に応じて、対象領域ポイントが配置されます。

  • ターンは移動方向に基づいて注釈が付けられます。 ターンは次のとおりに分類できます。

    • 右折
    • 左折
    • 右 U ターン
    • 左 U ターン
    • 停止
    • 移動中

    ターンを計算するには、[曲率] パラメーターと [ポイント数] パラメーターを使用します。 各ポイントは、トラッキング内の前のポイントから現在のポイントへの方向および現在のポイントからトラッキング内の次のポイントへの方向に基づいて評価されます。 その値が、[曲率] パラメーターに指定された値を超える場合、ターンと見なされます。それ以外の場合は、移動中と見なされます。 トラッキングが航空機や船などの大きいオブジェクトを表す場合は、[ポイント数] パラメーター値を増やして、ターンを実施するための時間を延長できるようにすることをお勧めします。

    方向の計算
    前のポイントから現在のポイントへの方向および現在のポイントから次のポイントへの方向が計算され、その差が、ターン イベントの決定に使用されます。

  • [曲率] パラメーターと [ポイント数] パラメーターのデフォルト値は、約 1 秒のサンプリング レートを想定して、通常の自動車のトラッキング向けに最適化されています。 自動車よりも高速で移動する車両や 1 秒に 1 回以外の間隔でサンプリングされたデータの場合は、[曲率] パラメーターまたは [ポイント数] パラメーターの値を変更する必要性が生じることもあります。 たとえば、5 秒に 1 回サンプリングする個人向け GPS デバイスの場合は、[ポイント数] の値を増やします。 1 秒に 1 回サンプリングする航空機を表すデータでは、航空機がターンを実行するのに必要な時間と空間を増やすことができるように、[曲率] パラメーターの値を 10 以下まで下げます。

    小さなオブジェクトと大きなオブジェクトの間のターン半径の差
    人や車などの小さなオブジェクトがターンするのに必要な距離は、航空機や船などの大きなオブジェクトと比べてより短くなります。

  • 速度を計算するには、ポイント間の距離を、その距離の移動に必要な時間で除算します。 ストップは、車両の速度がゼロになった時点で特定されます。 スタートは、ポイントが停止位置から加速した時点で特定されます。

    acc_event フィールドは、トラッキング内の現在のポイントとトラッキング内の前のポイントの差および現在のポイントとトラッキング内の次のポイント間の差を使用して計算されます。 具体的な加速イベントを次に示します。

    • 加速イベントの開始 - トラッキングが速度を上げ始めたポイント。 同じ速度のポイントは現在のポイントより前、より速度が高いポイントは現在のポイントより後に配置されます。

    • 減速イベントの開始 - トラッキングが速度を下げ始めたポイント。 同じ速度のポイントは現在のポイントより前、より速度が低いポイントは現在のポイントより後に配置されます。

    • 加速 - ポイント トラッキングが前のポイントと現在のポイント間で速度を上げています。 この状況は必ず加速が開始されてから、加速イベントが終了するまでの間に発生します。

      加速および減速イベントの計算
      加速および減速イベントは、ポイント間の平均速度を使用して計算されます。

    • 減速中 - ポイント トラッキングが前のポイントと現在のポイント間で速度を下げています。 この状況は必ず減速イベントが開始されてから、減速イベントが終了するまでの間に発生します。

    • 加速イベントの終了 - 加速イベントが終了するポイント。 現在のポイントの速度は前のポイントよりも高くなりますが、後のポイントの速度は同じであるか、より低くなります。 通常は、この後で移動中または減速イベントが発生します。

    • 減速イベントの終了 - 減速イベントが終了するポイント。 現在のポイントの速度は前のポイントよりも低くなりますが、後のポイントの速度は同じであるか、より高くなります。 通常は、この後で停止済みまたは加速イベントが発生します。

    • 停止済み - ポイント トラッキングが移動しなくなっています。 速度は 0 mph または 0 kph である必要があります。

    • 移動中 - 前のカテゴリのいずれにも該当しない速度でポイント トラッキングが移動しています。

  • 出力フィーチャクラスには、次のフィールドが含まれます。

    • track_id- ポイントをトラッキングに関連付ける一意の識別子。 このフィールドは、[ID フィールド] パラメーターから取得されます。
    • time- ポイント トラッキング フィーチャに関連付けられた時間。 このフィールドは、レイヤー プロパティで指定された時間フィールドから取得されます。
    • source_OID- [入力フィーチャ] パラメーターから取得したフィーチャのオブジェクト ID。
    • POINT_X- 現在のフィーチャに関連付けられた X 座標。
    • POINT_Y- 現在のフィーチャに関連付けられた Y 座標。
    • distance_diff- トラッキング内の前のフィーチャと現在のフィーチャ間の距離。 この距離は、入力座標系の単位で計算されます。
    • time_diff- トラッキング内の前のフィーチャと現在のフィーチャ間の秒単位の差。
    • speed- 1 秒当たりの入力座標系の距離単位の速度。
    • speed_mph- トラッキング内の前のフィーチャから現在のフィーチャまでのトラッキングのマイル毎時単位の速度。
    • speed_kph- トラッキング内の前のフィーチャから現在のフィーチャまでのトラッキングのキロメートル毎時単位の速度。
    • acc_event- 加速イベント。 具体的な加速イベントを次に示します。
      • 加速イベントの開始
      • 減速イベントの開始
      • 加速
      • 減速
      • 加速イベントの終了
      • 減速イベントの終了
      • 停止
      • 移動中
    • turn_event- ターン イベント。 具体的なターン イベントを次に示します。
      • 左折
      • 右折
      • 左 U ターン
      • 右 U ターン
      • 停止
      • 移動中
    • from_bearing- トラッキング内の前のポイントから現在のポイントへの方向
    • to_bearing- トラッキング内の現在のポイントから次のポイントへの方向

    [対象領域] パラメーターの値にフィーチャクラスが関連付けられている場合は、roi_id フィールドに値が入力されます。 このフィールドには、ポイントが交差している対象地域が入力されます。

    [ターン イベント ID の作成] パラメーターがオンになっている場合、出力属性テーブルには、一意の各ターン イベントに対して作成された一意の識別子を含む turn_event_id フィールドが含まれます。 ターン イベントに複数のフィーチャが関連付けられている場合、各フィーチャは同じ turn_event_id 値を共有します。

  • from_bearing および to_bearing フィールドが含まれます。これらのフィールドは主として、移動の方向性を理解した上で、移動の方向に正しく合わせてシンボルを適用するのをサポートすることを目的としています。 これらのフィールドの重要な違いは、from_bearing フィールドが、トラッキングの現在のポイントから前のポイントまでの後方角を表すことにあります。

  • [ターン以外のイベントを除外] パラメーターがオンになっている場合、ツールは移動値を含む turn_event フィールド内のすべてのフィーチャを削除します。 これにより、出力フィーチャクラスのサイズを減らして、パフォーマンスを向上させることができます。 フォレンジック分析で、交差点の利用場所や頻度、特定のトラッキングがターン イベントを実施した場所を特定する場合には、このパラメーターをオンにすることをお勧めします。

  • [ターン イベント フィーチャの表現] パラメーターが [ターンの中点] に設定されている場合、同じ turn_event_id 値を共有するすべてのターン イベント フィーチャは、フィーチャの地理的中心に集約されます。 これは、関連付けられたすべてのフィーチャを削除し、計算されたターン イベントの地理的中心に 1 つのフィーチャを残す削減的なプロセスです。 このパラメーターには破壊的な性質があるため、[ターン以外のイベントを除外] パラメーターをオンにした状態で使用するのが最適です。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

各ポイントが関連付けられているトラッキングに注釈が付けられたフィールドを含む時間対応のポイント フィーチャ レイヤー。 ジオメトリ、オブジェクト識別子、トラッキング名、および時間が出力フィーチャ テーブルに転送されます。 入力フィーチャは投影座標系に含まれていなければなりません。

Feature Layer
ID フィールド

ポイント トラッキングごとに一意の識別子を取得するために使用される入力フィーチャ内のフィールド。 このフィールドは、出力フィーチャクラスにコピーされます。

Field
出力フィーチャクラス

計算済みの移動イベントが含まれる出力フィーチャクラス。

Feature Class
曲率
(オプション)

イベントをターン イベントとして分類するのに必要な最小値。 曲率の計算が終了した後、計算済みの曲率がこの値より大きいと、turn_event フィールドに関連するターン イベントが入力され、この値より小さいと、turn_event フィールドが移動中として分類されます。

ターンを計算するには、[曲率] パラメーターと [ポイント数] パラメーターを使用します。 各ポイントは、トラッキング内の前のポイントから現在のポイントへの方向および現在のポイントからトラッキング内の次のポイントへの方向に基づいて評価されます。 その値が、[曲率] パラメーターに指定された値を超える場合、ターンと見なされます。 それ以外の場合は、移動中と見なされます。 トラッキングが大きいオブジェクトを表す場合は、[ポイント数] の値を増やして、ターンを実施するための時間を延長できるようにすることをお勧めします。

Double
ポイント数
(オプション)

方向の差を計算する際に特定のポイントの前後で評価されるポイントの数。 高いサンプリング レート (1 秒以内) のデータを使用している場合は、その短時間に考えられる移動の減少を考慮して、[ポイント数] パラメーターの値を大きくすることができます。 値 1 は、自動車と歩行者に適しています。これは、入力データに対する 1 秒のサンプリングを想定しています。 航空機や船については値を大きくする必要があり、値に 5 を指定します。

Long
対象領域
(オプション)

対象となる領域。 これは入力フィーチャ レイヤーであり、ポリゴン フィーチャクラスにする必要があります。 値を指定すると、roi フィールドが [出力フィーチャクラス] パラメーターに追加されます。

Feature Layer
対象領域 ID フィールド
(オプション)

[対象領域] パラメーター内のフィールドであり、それぞれの対象領域に一意の識別子が含まれています。

Field
ターン イベント ID の作成
(オプション)

出力フィーチャクラスにターン イベント ID を作成するかどうかを指定します。

  • オン - 一意のターン イベント ID を作成します。
  • オン - 一意のターン イベント ID は作成されません。 これがデフォルトです。

Boolean
ターン以外のイベントを除外
(オプション)

turn_event フィールドの値が移動中のフィーチャを除外するかどうかを指定します。

  • オン - turn_event フィールドの値が移動中のフィーチャが除外されます。
  • オフ - turn_event フィールドの値が移動中のフィーチャが除外されず、すべてのフィーチャが返されます。 これがデフォルトです。

Boolean
ターン イベント フィーチャの表現
(オプション)

出力ターン イベントの表現方法を指定します。

  • すべてのフィーチャターン イベントに関連付けられたすべてのポイントが返されます。 これがデフォルトです。
  • ターンの中点ターン イベントの地理的中心が返されます。
String

arcpy.intelligence.ClassifyMovementEvents(in_features, id_field, out_featureclass, {curvature}, {number_of_points}, {regions_of_interest}, {roi_id_field}, {include_turn_ids}, {exclude_non_turn_events}, {turn_events_representation})
名前説明データ タイプ
in_features

各ポイントが関連付けられているトラッキングに注釈が付けられたフィールドを含む時間対応のポイント フィーチャ レイヤー。 ジオメトリ、オブジェクト識別子、トラッキング名、および時間が出力フィーチャ テーブルに転送されます。 入力フィーチャは投影座標系に含まれていなければなりません。

Feature Layer
id_field

ポイント トラッキングごとに一意の識別子を取得するために使用される入力フィーチャ内のフィールド。 このフィールドは、出力フィーチャクラスにコピーされます。

Field
out_featureclass

計算済みの移動イベントが含まれる出力フィーチャクラス。

Feature Class
curvature
(オプション)

イベントをターン イベントとして分類するのに必要な最小値。 曲率の計算が終了した後、計算済みの曲率がこの値より大きいと、turn_event フィールドに関連するターン イベントが入力され、この値より小さいと、turn_event フィールドが移動中として分類されます。

ターンを計算するには、curvature パラメーターと number_of_points パラメーターを使用します。 各ポイントは、トラッキング内の前のポイントから現在のポイントへの方向および現在のポイントからトラッキング内の次のポイントへの方向に基づいて評価されます。 その値が、curvature パラメーターに指定された値を超える場合、ターンと見なされます。 それ以外の場合は、移動中と見なされます。 トラッキングが大きいオブジェクトを表す場合は、number_of_points の値を増やして、ターンを実施するための時間を延長できるようにすることをお勧めします。

Double
number_of_points
(オプション)

方向の差を計算する際に特定のポイントの前後で評価されるポイントの数。 高いサンプリング レート (1 秒以内) のデータを使用している場合は、その短時間の間に移動の減少が可能なように、number_of_points パラメーターの値を大きくすることができます。 値 1 は、自動車と歩行者に適しています。これは、入力データに対する 1 秒のサンプリングを想定しています。 航空機や船については値を大きくする必要があり、値に 5 を指定します。

Long
regions_of_interest
(オプション)

対象となる領域。 これは入力フィーチャ レイヤーであり、ポリゴン フィーチャクラスにする必要があります。 値を指定すると、roi フィールドが out_featureclass パラメーターに追加されます。

Feature Layer
roi_id_field
(オプション)

regions_of_interest パラメーター内のフィールドであり、それぞれの対象領域に一意の識別子が含まれています。

Field
include_turn_ids
(オプション)

出力フィーチャクラスにターン イベント ID を作成するかどうかを指定します。

  • INCLUDE_TURN_IDS一意のターン イベント ID を作成します。
  • NO_TURN_IDS一意のターン イベント ID は作成されません。 これがデフォルトです。
Boolean
exclude_non_turn_events
(オプション)

turn_event フィールドの値が移動中のフィーチャをフィルター処理するかどうかを指定します。

  • ONLY_TURN_EVENTSturn_event フィールドの値が移動中のフィーチャが除外されます。
  • ALL_FEATURESturn_event フィールドの値が移動中のフィーチャが除外されず、すべてのフィーチャが返されます。 これがデフォルトです。
Boolean
turn_events_representation
(オプション)

出力ターン イベントの表現方法を指定します。

String

コードのサンプル

ClassifyMovementEvents の例 (スタンドアロン スクリプト)

次のスタンドアロン Python スクリプトで、ClassifyMovementEvents 関数を使用する方法を示します。

# Name: ClassifyMovementEvents.py
# Description: Identify movement events in a point track dataset. 

# Import system modules 
import arcpy 

arcpy.env.workspace = "C:/data/Tracks.gdb"

# Set local variables 
source_features = "Known_Tracks"
output_movement_events = "MovementEvents"
id_field = "device_id"
regions_of_interest = "Named_Areas_Of_Interest"
roi_name = "counties"

# Run tool
arcpy.intelligence.ClassifyMovementEvents(source_features,
                                          output_point_features,
                                          id_field,
                                          regions_of_interest,
                                          roi_name)