检测事件 (GeoAnalytics)

摘要

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

旧版本:

ArcGIS GeoAnalytics Server 扩展模块在 ArcGIS Enterprise 中处于弃用状态。 GeoAnalytics Server最终版本包含在 ArcGIS Enterprise 11.3 中。 可通过 ArcGIS Enterprise 11.3 及较早版本获取此地理处理工具。

插图

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

使用情况

  • 此地理处理工具适用于 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 创建大数据文件共享的详细信息

参数

标注说明数据类型
输入图层

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

Record Set
输出名称

输出要素服务的名称。

String
轨迹字段

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

Field
开始条件

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

如果将图层添加到地图中,则可以使用字段助手过滤器来构建表达式。

Calculator Expression
结束条件
(可选)

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

以 Arcade 格式写入表达式,其中可包括运算符和多个字段。

如果将图层添加到地图中,则可以使用字段助手过滤器来构建表达式。

Calculator Expression
输出模式
(可选)

用于指定将返回的要素。

  • 所有要素将返回所有输入要素。这是默认设置。
  • 事件点仅将返回被发现是事件的要素。
String
数据存储
(可选)

指定将用于存储输出的 ArcGIS Data Store。 在时空大数据存储中存储的所有结果都将存储在 WGS84 中。 在关系数据存储中存储的结果都将保持各自的坐标系。

  • 时空大数据存储输出将存储在时空大数据存储中。 这是默认设置。
  • 关系数据存储输出将存储在关系数据存储中。
String
时间界限分割
(可选)

用于分割输入数据以进行分析的时间跨度。 您可通过时间界限分析定义的时间跨度内的值。 例如,如果您使用始于 1980 年 1 月 1 日的 1 天的时间界限,则轨迹将在每天开始时被分割。 此参数仅适用于 ArcGIS Enterprise 10.7 及更高版本。

Time Unit
时间界限参考
(可选)

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

Date

派生输出

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

满足给定条件的输出要素。

Record Set

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。 在时空大数据存储中存储的所有结果都将存储在 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

满足给定条件的输出要素。

Record Set

代码示例

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 Tools,最终结果将存储于 WGS84 中的时空数据存储之内。

许可信息

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

相关主题