检测事件 (GeoAnalytics)

描述

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

插图

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

使用方法

  • 此地理处理工具适用于 ArcGIS Enterprise 10.6 或更高版本。

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

    术语描述

    轨迹

    已启用时间且时间类型为时刻的要素序列。要素由轨迹标识符字段确定处于序列中,并按时间进行排序。例如,某个城市拥有一支扫雪车队,每 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 Server 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。

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

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

  • 此地理处理工具由 ArcGIS GeoAnalytics Server 作为支持。分析将在 GeoAnalytics Server 上完成,且结果将存储在 ArcGIS Enterprise 的内容中。

  • GeoAnalytics Server 工具运行时,GeoAnalytics Server 上的分析已完成。要获得最佳性能,通过 ArcGIS Enterprise 门户上托管的要素图层或通过大数据文件共享,可以将数据用于 GeoAnalytics Server。在分析开始之前,非 GeoAnalytics Server 本地数据将被转移到您的 GeoAnalytics Server。这意味着运行工具需要更长时间,并且在某些情况下,从 ArcGIS ProGeoAnalytics Server 移动数据可能会失败。失败的阈值取决于网络速度,以及数据的大小和复杂性。因此,建议您始终共享数据或创建大数据文件共享。

    了解有关将数据共享至您的门户的详细信息。

    了解有关通过 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,...]

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

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
(可选)

用于分割输入数据以进行分析的时间跨度。您可通过时间界限分析定义的时间跨度内的值。例如,如果您使用始于 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 工具,最终结果将存储于 WGS84 中的时空数据存储之内。

许可信息

  • Basic: 需要 ArcGIS GeoAnalytics Server
  • Standard: 需要 ArcGIS GeoAnalytics Server
  • Advanced: 需要 ArcGIS GeoAnalytics Server

相关主题