检测事件 (GeoAnalytics Desktop)

描述

创建用于检测满足给定条件的要素的图层。

插图

检测事件工作流示意图
检测事件工作流

使用方法

  • 下表概述了检测事件工具的术语:

    术语描述

    轨迹

    已启用时间且时间类型为时刻的要素序列。要素由轨迹标识符字段确定处于序列中,并按时间进行排序。例如,某个城市拥有一支扫雪车队,每 10 分钟记录一次车辆的位置。车辆 ID 可以表示不同的轨迹。

    事件点

    满足感兴趣条件的要素。

    时刻

    由开始时间表示的单个时间点且无结束时间。检测事件的输入的时间类型必须为时刻。

    间隔

    由开始时间和结束时间表示的一段时间。

    感兴趣要素

    用于描述正分析的要素。在分析过程中,将分析所有要素。

  • 事件是满足特定条件的要素。

  • 检测事件将创建新输出。该工具不会修改输入。

  • 可针对点、线或面要素完成检测事件。输入图层必须已启用时间,并具有用于表示时刻的要素。

  • 仅使用具有时间条目的输入要素。将排除所有不具有时间条目的要素。

  • 轨迹由轨迹字段的唯一组合表示。例如,如果将字段 flightIDDestination 用作轨迹标识符,则 [ID007, Solden][ID007, Tokyo] 要素将分别处于两个独立的轨迹,原因是其 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:00,则轨迹会在每天上午 9:00 被截断。此分割方法可加快计算速度的快速方法,因为它可以创建较小的追踪以进行分析。如果您的分析更适合按重复的时间间隔边界进行分割,则建议使用大数据处理。

  • 条件需使用 Arcade 表达式创建,且可为追踪感知型。有关详细信息,请参阅 GeoAnalytics Desktop 工具中的 Arcade 表达式

  • 一个轨迹可包含多个事件。

  • 输出要素将返回输入中的字段以及下列其他字段:

    • 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 - 要素发生的时间。

  • 将按轨迹以时间顺序排列要素。从第一个要素起,对开始条件进行评估,直到其为 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]

  • 事件的持续时间(以毫秒为单位)计算为要素的时间减去事件的开始时间。仅当要素状态为 StartedOnGoingEnded 时,才会计算持续时间。状态为 Started 的要素的持续时间始终为 0。

  • 您可以执行以下一项或多项操作来提高检测事件工具的性能。

    • 设置范围环境,以便仅分析感兴趣的数据。
    • 仅输出事件要素。
    • 使用时间界限分割参数来分割轨迹。
    • 本地数据用于分析运行的位置。

  • 此地理处理工具由 Spark 作为支持。可在台式计算机上并行使用多个核来完成分析。要了解有关运行分析的详细信息,请参阅 GeoAnalytics Desktop 工具的注意事项

  • 运行 GeoAnalytics Desktop 工具时,将在台式计算机上完成分析。为获得最佳性能,应在桌面上提供数据。如果您使用的是托管要素图层,则建议使用 ArcGIS GeoAnalytics Server。如果您的数据不是本地数据,则运行工具需要更长时间。要使用 ArcGIS GeoAnalytics Server 执行分析,请参阅 GeoAnalytics 工具

语法

arcpy.gapro.DetectIncidents(input_layer, output, track_fields, start_condition, {end_condition}, {output_mode}, {time_boundary_split}, {time_boundary_reference})
参数说明数据类型
input_layer

包含潜在事件的输入要素。

Table View
output

包含事件的新输出数据集。

Feature Class;Table
track_fields
[track_fields,...]

将用于标识唯一轨迹的一个或多个字段。

Field
start_condition

将用于标识事件的条件。以 Arcade 格式写入表达式,其中可包括 [+ - * / ] 运算符和多个字段。

Calculator Expression
end_condition
(可选)

将用于结束事件的条件。如果未指定结束条件,则开始条件不再为 true 时,事件将结束。

Calculator Expression
output_mode
(可选)

用于指定将返回的要素。

  • ALL_FEATURES将返回所有输入要素。这是默认设置。
  • INCIDENTS仅将返回被发现是事件的要素。
String
time_boundary_split
(可选)

用于分割输入数据以进行分析的时间跨度。您可通过时间界限分析定义的时间跨度内的值。例如,如果您使用 1 天的时间界限,并将时间界限参考设置为 1980 年 1 月 1 日,则轨迹将在每天开始时被分割。

Time Unit
time_boundary_reference
(可选)

用于分割输入数据以进行分析的参考时间。将为整个数据跨度创建时间界限,且不需要在开始时产生参考时间。如果未指定参考时间,则将使用 1970 年 1 月 1 日。

Date

代码示例

DetectIncidents 示例(Python 窗口)

以下 Python 窗口脚本演示了如何使用 DetectIncidents 工具。

#-------------------------------------------------------------------------------
# Name: DetectIncidents.py
# Description: Detect Incidents when wind speed is greater than 100 miles per hour
# Import system modules
import arcpy
arcpy.env.workspace = "C:/data/Weather.gdb"
# Set local variables
inFeatures = "Hurricanes"
out = "HurricaneTracks_Incidents"
trackIdentifier = "STAGE"
start_condition = "$feature['WINDSPEED'] > 100"
# Execute Reconstruct Tracks
arcpy.gapro.DetectIncidents(inFeatures, out, trackIdentifier, calcExpression)

许可信息

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

相关主题