分类移动事件 (智能)

摘要

识别输入点轨迹数据集中的转弯事件、加速事件和速度。

插图

分类移动事件工具图示

使用情况

  • 要执行该工具,输入要素参数值必须采用投影坐标系,并且必须启用时间。

    此工具将识别以下事件:

    • 左转或右转
    • 左侧或右侧 U 形转弯
    • 加速
    • 减速
    • 起始
    • 停止
    • 速度(以英里/小时为单位)
    • 速度(以千米/小时为单位)
    • 起始方位角
    • 终止方位角

    另外,系统将计算轨迹中当前点和上一个点之间的距离差和时间差。

    可以有选择地定位感兴趣区域点。

  • 系统将根据行驶方向注记转弯。 转弯可分类为以下类别:

    • 右转
    • 左转
    • 右侧 U 形转弯
    • 左侧 U 形转弯
    • 已停止
    • 行驶中

    转弯使用曲率点数参数进行计算。 系统将基于从轨迹中上一个点到当前点以及从当前点到轨迹中下一个点的方位角来计算每个点。 如果该值超过曲率参数中指定的值,则系统会将其视为转弯。 否则,系统会将其视为行驶中。 对于代表大型对象(例如航空器或船舶)的轨迹,建议您增加点数参数值,以解决转弯执行时间较长的问题。

    方位角计算

    系统将从上一个点到当前点以及从当前点到下一个点来计算方位角,并且将使用差值来确定转弯事件。

  • 曲率点数参数的默认值已针对典型汽车轨迹进行优化,假设采样速率大约为一秒。 对于行驶速度大于汽车的车辆或采样间隔不是每秒一次的数据,可能需要更改曲率点数参数值。 例如,对于使用每五秒采样一次的个人 GPS 设备的人员,请增大点数值。 对于表示每秒采样一次的飞机的数据,请将曲率参数值下调为 10 或更低,以考虑飞机转弯所需的大量时间和空间。

    较小对象与较大对象之间的转弯半径差

    较小对象(例如人和汽车)与较大对象(例如航空器和船舶)相比所需的转弯距离更小。

  • 速度通过将两点之间的距离除以行驶该距离所需的时间计算。 当车辆的速度为零时,将识别为停靠点。 起点根据点从停止位置加速的时间确定。

    系统将使用轨迹中的当前点与轨迹中的上一个点之间的差以及轨迹中的当前点与下一个点之间的差来计算 acc_event 字段。 具体的加速事件如下:

    • 加速起点事件 - 轨迹开始加速的点。 当前点的前面是速度相等的点,后面是速度更高的点。
    • 制动起点事件 - 轨迹开始减速的点。 当前点的前面是速度相等的点,后面是速度更低的点。
    • 加速 - 点轨迹在先前点和当前点之间的速度不断提高。 该事件必须在加速起点之后和加速终点事件之前出现。
    • 制动 - 点轨迹在先前点和当前点之间的速度逐渐降低。 该事件必须在制动起点事件之后和制动终点事件之前出现。
    • 加速终点事件 - 加速事件停止的点。 当前点的速度高于上一个点,但下一个点的速度与此相同或更低。 通常,该事件在“行驶中”或制动事件之前。
    • 制动终点事件 - 制动事件停止的点。 当前点的速度低于上一个点,但下一个点的速度与此相同或更高。 通常,该事件在“已停止”或加速事件之前。
    • 已停止 - 点轨迹未移动。 速度必须等于 0 mph 或 0 kph。
    • 行驶中 - 点轨迹的移动速度不属于上述任何类别。

    加速和制动事件计算

    系统将使用点之间的平均速度来计算加速和制动事件。

  • 输出要素类将包含以下字段:

    • track_id- 将点关联到轨迹的唯一标识符。 该字段派生自 ID 字段参数。
    • time- 与点轨迹要素关联的时间。 该字段派生自在图层属性中指定的时间字段。
    • POINT_X- 与当前要素关联的 x 坐标。
    • POINT_Y- 与当前要素关联的 y 坐标。
    • distance_diff- 轨迹中先前要素与当前要素之间的距离。 距离采用输入坐标系的单位进行计算。
    • time_diff- 轨迹中先前要素与当前要素之间的秒数差。
    • speed- 采用每秒输入坐标系的线性单位的速度。
    • speed_MPH- 轨迹中先前要素到当前要素的速度(以英里/小时为单位)。
    • speed_KMPH- 轨迹中先前要素到当前要素的速度(以公里/小时为单位)。
    • acc_event- 加速事件。 具体的加速事件如下:
      • 加速起点事件
      • 制动起点事件
      • 加速
      • 制动
      • 加速终点事件
      • 制动终点事件
      • 已停止
      • 行驶中
    • turn_event- 转弯事件。 具体的转弯事件如下:
      • 左转
      • 右转
      • 左侧 U 形转弯
      • 右侧 U 形转弯
      • 已停止
      • 行驶中
    • from_bearing- 轨迹中从上一个点到当前点的方位角。
    • to_bearing- 轨迹中从当前点到下一个点的方位角。

    如果可选感兴趣区域参数值具有关联的要素类,将填充 roi_id 字段。 该字段将包含点相交的感兴趣区域。

  • 系统将包含 from_bearingto_bearing 字段,主要用于帮助理解行驶的方向性,并帮助应用符号系统以正确进行行驶方向定向。 这些字段的主要差异在于 from_bearing 字段表示从轨迹的当前点到先前点的后侧角度。

参数

标注说明数据类型
输入要素

启用时间的点要素图层,具有用于注记与每个点关联的轨迹的字段。 几何、对象标识符、轨迹名称和时间将传递到输出要素类。 输入必须采用投影坐标系。

Feature Layer
ID 字段

输入要素中的字段,用于获取每个点轨迹的唯一标识符。 该字段将复制到输出要素类。

Field
输出要素类

将包含计算的移动事件的输出要素类。

Feature Class
曲率
(可选)

将事件分类为转弯事件所需的最小值。 在计算曲率后,大于此值的任何计算曲率都会导致在 turn_event 字段中填充相关的转弯事件,而小于此值的值将导致 turn_event 字段分类为“行驶中”。

转弯使用曲率点数参数进行计算。 系统将基于从轨迹中上一个点到当前点以及从当前点到轨迹中下一个点的方位角来计算每个点。 如果该值超过曲率参数中指定的值,则系统会将其视为转弯。 否则,系统会将其视为行驶中。 对于代表大型对象的轨迹,建议您增加点数值,以解决转弯执行时间较长的问题。

Double
点数
(可选)

计算方位角差值时,位于给定点之前和之后的待计算点数。 使用采样速率(亚秒)较高的数据时,可能需要增加点数参数值,以考虑在该短暂时间内可能发生的移动减少。 假设每秒对输入数据采样一次,则值 1 适用于汽车和行人。 对于航空器和船舶,必须使用较大的值,并且应使用默认值 5。

Long
感兴趣区域
(可选)

感兴趣区域。 此输入要素图层必须为面要素类。 如果提供了一个值,roi 字段将添加到输出要素类参数。

Feature Layer
感兴趣区域 ID 字段
(可选)

来自感兴趣区域参数的字段,包含每个感兴趣区域的唯一标识符。

Field

arcpy.intelligence.ClassifyMovementEvents(in_features, id_field, out_featureclass, {curvature}, {number_of_points}, {regions_of_interest}, {roi_id_field})
名称说明数据类型
in_features

启用时间的点要素图层,具有用于注记与每个点关联的轨迹的字段。 几何、对象标识符、轨迹名称和时间将传递到输出要素类。 输入必须采用投影坐标系。

Feature Layer
id_field

输入要素中的字段,用于获取每个点轨迹的唯一标识符。 该字段将复制到输出要素类。

Field
out_featureclass

将包含计算的移动事件的输出要素类。

Feature Class
curvature
(可选)

将事件分类为转弯事件所需的最小值。 在计算曲率后,大于此值的任何计算曲率都会导致在 turn_event 字段中填充相关的转弯事件,而小于此值的值将导致 turn_event 字段分类为“行驶中”。

转弯使用 curvaturenumber_of_points 参数进行计算。 系统将基于从轨迹中上一个点到当前点以及从当前点到轨迹中下一个点的方位角来计算每个点。 如果该值超过 curvature 参数中指定的值,则系统会将其视为转弯。 否则,系统会将其视为行驶中。 对于代表大型对象的轨迹,建议您增加 number_of_points 值,以解决转弯执行时间较长的问题。

Double
number_of_points
(可选)

计算方位角差值时,位于给定点之前和之后的待计算点数。 使用采样速率(亚秒)较高的数据时,可能需要增加 number_of_points 参数值,以考虑在该短暂时间内可能发生的移动减少。 假设每秒对输入数据采样一次,则值 1 适用于汽车和行人。 对于航空器和船舶,必须使用较大的值,并且应使用默认值 5。

Long
regions_of_interest
(可选)

感兴趣区域。 此输入要素图层必须为面要素类。 如果提供了一个值,roi 字段将添加到 out_featureclass 参数。

Feature Layer
roi_id_field
(可选)

来自 regions_of_interest 参数的字段,包含每个感兴趣区域的唯一标识符。

Field

代码示例

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"

# Execute tool
arcpy.ClassifyMovementEvents_intelligence(source_features,
                                          output_point_features,
                                          id_field,
                                          regions_of_interest,
                                          roi_name)

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 是

相关主题