追踪邻近事件 (GeoAnalytics Desktop)

摘要

追踪在空间(位置)和时间上彼此邻近的事件。 启用时间的点数据必须包含表示时刻的要素。

插图

追踪邻域事件工具图示
显示了追踪事件(橙色圆圈)和轨迹(红色圆圈)的示例。

使用情况

  • 以下是可以通过追踪邻域事件工具执行的用例的示例:

    • 组织会监控公司下发给工作人员进行携带的设备。 该公司想要确定哪些员工在已知患有新冠肺炎 (COVID-19) 的个人附近。 借助表示设备位置和时间的点图层,公司可以标识距离感染者和其他可能感染员工 6 米和 5 分钟范围内的设备。
    • NGO 正在使用 GPS 监控鲑鱼种群,并且想要追踪鲑鱼虱在逃逸的养殖鲑鱼和野生种群之间的传播。 将追踪一些进行 GPS 示踪的养殖鲑鱼,以确定它们是否与示踪的野生种群紧密邻近,以及这些野生种群如何进一步传播这种疾病。 测量还包括一个深度字段,以供 NGO 用于寻找相似深度的鱼群。

  • 将在追踪邻域事件工具中使用以下术语:

    • 实体 - 按周期记录位置的对象,例如动物、人或车辆。 实体可以静止或移动。
    • 感兴趣实体 - 用于开始追踪的特定实体,例如,感染了 COVID-19 的人员。
    • 邻域事件 - 两个实体彼此靠近的时间段,例如,两个人彼此相距 3 米和 1 分钟时间窗之内。
    • 深度 - 感兴趣实体和追踪中更远的实体(下游)之间的分离度。 例如,感兴趣实体与其他人之间的邻域事件为深度 1。
    • 追踪事件 - 感兴趣实体下游的指定实体的第一联系人。
  • 追踪邻域事件时,由您负责了解有关数据敏感性和隐私性的组织、本地和国家指导方针。

  • 下面的逻辑示意图显示了追踪邻域事件工具如何处理数据。 在这些逻辑示意图中,时间位于 x 轴上。

    在每个逻辑示意图中,存在 4 个实体:A、B、C 和 D。 突出显示的文本描述了两个实体(“自”实体和“至”实体)之间发生的追踪事件以及邻域事件的深度。 在此示例中,实体 C 是正在向下游追踪的感兴趣实体。

    在逻辑示意图 1 中,实体 C 是所选的感兴趣实体。 深度为 0。

    追踪邻域事件工具逻辑示意图 1

    在逻辑示意图 2 中,实体 C 和 B 之间发生了邻域事件。 追踪的深度为 1。 如果多个要素是后续邻域事件,则这是一个持续的邻域事件。

    追踪邻域事件工具逻辑示意图 2

    在逻辑示意图 3 中,实体 B 和 A 之间发生了邻域事件。 追踪的深度为 2。

    追踪邻域事件工具逻辑示意图 3

    在逻辑示意图 4 中,实体 C 和 D 之间发生了邻域事件。 追踪的深度为 1。

    追踪邻域事件工具逻辑示意图 4

    在下图中,实体 B 是感兴趣实体,并且与实体 A 邻近 3 次,由蓝色圆圈表示。 假设时间位于 x 轴上,则第一个邻域事件是 1,之后是接触中断,然后是邻域事件 2 和 3。 该工具将返回事件 1 作为追踪事件。 邻域事件 2 和 3 不会在输出邻域事件参数图层中返回。 邻域事件 1 之后的所有要素都将在输出轨迹参数中返回。

    第一个追踪事件

  • 要素必须同时满足空间搜索距离时间搜索距离参数条件才能视为彼此邻近。

    空间搜索距离逻辑示意图
    图 A:两个要素位于彼此的空间搜索距离内。
    时间搜索距离逻辑示意图
    图 B:两个要素位于彼此的时间距离(时间搜索距离)内。
  • 指定的时间搜索距离和空间搜索距离越大,生成的事件越多,并且处理结果所需的时间越长。 距离越小,生成的事件越少,并且处理时间越短。

  • 使用领域特定知识可确定用于空间搜索距离时间搜索距离参数的值。 设置距离时,请考虑设备准确性等因素。

  • 感兴趣实体定义方式参数支持以下选项:

    • 感兴趣实体 ID - 此选项用于启用感兴趣实体 ID 参数,该参数需要实体 ID 值和可选开始时间时间值才能开始追踪。
    • 指定感兴趣实体图层中的选定要素 - 此选项用于启用感兴趣实体图层参数,该参数用于选择包含实体 ID 以及(可选)追踪的开始时间的图层。 对于此图层,实体 ID 字段名称必须与输入图层中的实体 ID 字段名称匹配。 如果该图层启用了时间,则将在该图层上使用时间。
  • 感兴趣实体是开始邻域追踪的位置。 如果指定了开始时间,则将从该时间开始对该实体进行追踪。 如果未指定时间,则将从 1970 年 1 月 1 日开始对该实体进行追踪。

  • 可以为邻域事件设置其他要求。 例如,可以仅追踪校园中特定建筑物中的个人,也可以仅追踪建筑物的某一楼层内的个人。 使用属性匹配条件参数可指定约束属性。 例如,要约束同一楼层的实体,请指定 Floor 字段。

  • 输出邻域事件图层将包含追踪中实体的第一个邻域事件,以及以下字段:

    • from_id- 上游实体 ID。
    • to_id- 下游实体 ID。
    • depth- 感兴趣实体与 to_id 字段之间的分离度。
    • duration_minutes- 追踪事件的持续时间,以分钟为单位。 该字段计算为开始时间和结束时间之差。 例如,1.5 分钟是 90 秒。 值 0 表示只有一个邻域事件(开始时间和结束时间相同)。
    • date- 邻域事件的日期和时间。 该字段计算为满足邻域事件条件的第一个记录时间。

    输出邻域事件图层可以使用时间滑块进行可视化或位于链接图表中以可视化追踪结果。

  • 可以使用可选输出轨迹参数创建包含该实体的第一个追踪事件和所有后续要素的图层。 这些结果有助于可视化实体的行驶位置并可在重新构建轨迹工具中使用。 输出轨迹参数将包含以下字段:

    • entity_id- 实体 ID。
    • depth- 感兴趣实体和追踪轨迹之间的分离度。 单条轨迹沿线的深度相同。
    • instant_datetime- 每个要素的日期。 该日期将与输入要素中的记录的日期相同。
  • 不会在结果中包含没有时间值、几何值或实体 ID 字段的输入点。

  • 当使用邻域追踪来查找传播(例如疾病)时,请考虑以下几点:

    • 存在追踪事件并不能保证已经发生传播;可能只是偶然遇到。
    • 不存在追踪事件并不意味着尚未发生传播。 在疾病等情况下,可能通过其他载体传播。
    • 如果可能,使用属性匹配条件参数在必要时约束邻域事件。 例如,使用属性约束房间、楼层或高程。

  • 如果您希望计算所有邻域事件,而不希望从感兴趣实体向下游追踪,使用连接要素工具。

  • 可执行以下一项或多项操作来提高追踪邻域事件工具的性能。

    • 空间搜索距离时间搜索距离参数提供较小值。
    • 使用属性匹配条件参数限制感兴趣实体。
    • 指定最大追踪深度参数值,以限制给定实体和感兴趣实体的下游追踪数。
    • 设置范围环境,以便仅分析感兴趣的数据。
    • 本地数据用于分析运行的位置。

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

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

参数

标注说明数据类型
输入点

启用时间的点要素类,用于追踪邻域事件。

Feature Layer
实体 ID 字段

表示每个实体的唯一 ID 的文本字段。

Field
输出邻近事件

包含追踪邻域事件的输出要素类。

Feature Class
距离法

指定将与空间搜索距离参数一起使用的距离类型。

  • 平面要素之间将使用平面距离。 这是默认设置。
  • 测地线将在要素之间使用测地线距离。 这种线类型考虑到椭球体的曲率,并可以正确处理日期变更线和两极附近的数据。
String
空间搜索距离
(可选)

两点视为邻近时相距的最大距离。 满足空间搜索距离和时间搜索距离条件的要素视为彼此邻近。

Linear Unit
时间搜索距离
(可选)

两点视为邻近时相距的最大持续时间。 时间搜索距离内满足空间搜索距离条件的要素视为彼此邻近。

Time Unit
定义感兴趣实体
(可选)

指定感兴趣实体。

  • 感兴趣实体 ID实体名称和时间将用作感兴趣实体。 这是默认设置。
  • 指定感兴趣实体图层中的选定要素在指定感兴趣实体图层中选择的要素将用作感兴趣实体。
String
感兴趣实体 ID

感兴趣实体的实体名称和开始时间。 仅当为感兴趣实体定义方式参数指定感兴趣实体 ID 时,此参数才受支持。

  • 实体 ID - 唯一实体名称。 名称区分大小写且必须为字符串。
  • 开始时间 - 追踪感兴趣实体的可选开始时间。 如果未指定时间,则将使用 1970 年 1 月 1 日。

Value Table
感兴趣实体图层

包含感兴趣实体的图层或表。 仅当为感兴趣实体定义方式参数指定指定感兴趣实体图层中的选定要素时,此参数才受支持。

Table View
输出轨迹
(可选)

包含该指定实体的第一个追踪事件和所有后续要素的输出图层。

Feature Class
最大追踪深度

感兴趣实体和追踪中更远的实体(下游)之间的最大分离度。

Long
属性匹配条件
(可选)

用于约束邻域事件的字段。

Field

arcpy.geoanalytics.TraceProximityEvents(in_points, entity_id_field, out_feature_class, distance_method, {spatial_search_distance}, {temporal_search_distance}, {entities_of_interest_input_type}, entities_interest_ids, entities_interest_layer, {out_tracks_layer}, max_trace_depth, {attribute_match_criteria})
名称说明数据类型
in_points

启用时间的点要素类,用于追踪邻域事件。

Feature Layer
entity_id_field

表示每个实体的唯一 ID 的文本字段。

Field
out_feature_class

包含追踪邻域事件的输出要素类。

Feature Class
distance_method

指定将与空间搜索距离参数一起使用的距离类型。

  • PLANAR要素之间将使用平面距离。 这是默认设置。
  • GEODESIC将在要素之间使用测地线距离。 这种线类型考虑到椭球体的曲率,并可以正确处理日期变更线和两极附近的数据。
String
spatial_search_distance
(可选)

两点视为邻近时相距的最大距离。 满足空间搜索距离和时间搜索距离条件的要素视为彼此邻近。

Linear Unit
temporal_search_distance
(可选)

两点视为邻近时相距的最大持续时间。 时间搜索距离内满足空间搜索距离条件的要素视为彼此邻近。

Time Unit
entities_of_interest_input_type
(可选)

指定感兴趣实体。

  • ID_START_TIME实体名称和时间将用作感兴趣实体。 这是默认设置。
  • SELECTED_FEATURE在指定感兴趣实体图层中选择的要素将用作感兴趣实体。
String
entities_interest_ids
[entities_interest_ids,...]

感兴趣实体的实体名称和开始时间。 仅当为 entities_of_interest_input_type 参数指定 ID_START_TIME 时,此参数才受支持。

  • 实体 ID - 唯一实体名称。 该名称区分大小写。
  • 开始时间 - 追踪感兴趣实体的可选开始时间。 如果未指定时间,则将使用 1970 年 1 月 1 日。

Value Table
entities_interest_layer

包含感兴趣实体的图层或表。 仅当为 entities_of_interest_input_type 参数指定 SELECTED_FEATURE 时,此参数才受支持。

Table View
out_tracks_layer
(可选)

包含该指定实体的第一个追踪事件和所有后续要素的输出图层。

Feature Class
max_trace_depth

感兴趣实体和追踪中更远的实体(下游)之间的最大分离度。

Long
attribute_match_criteria
[attribute_match_criteria,...]
(可选)

用于约束邻域事件的字段。

Field

代码示例

TraceProximityEvents(独立脚本)

以下独立脚本演示了如何使用 TraceProximityEvents 函数。

# Name: TraceProximityEvents.py
# Description: Trace proximity events for user1 and user4 with 30 feet 
#              spatial search distance and 10 minute temporal search distance.

# Import system modules
import arcpy

# Set workspace
arcpy.env.workspace = r"C:/data/TraceData.gdb"

# Use time-enabled multifile feature connection dataset
inFeatures = r"C:/data/Example.mfc/example_tracks"

entityIDField = "user_id"
outFile = "ProximityEvents" 
spatialDistance = "30 Feet"
temporalDistance = "10 Minutes"
entitiesOfInterest = [['user1', '3/30/2020 9:00:00 AM'], ['user4', '3/30/2020 9:00:00 AM']]
outTracks = "out_tracks"
max_trace_depth = 3

# Run Trace Proximity Events
arcpy.gapro.TraceProximityEvents(inFeatures, entityIDField, outFile, "PLANAR",
                                 spatialDistance, temporalDistance, 
                                 "ID_START_TIME", entitiesOfInterest, None, 
                                 outTracks, max_trace_depth)