Skip To Content

追踪邻域事件

注:

目前,此功能仅在 Map Viewer 经典版(之前称为 Map Viewer)中受支持。 该功能将在新 Map Viewer 的未来版本中提供。

追踪邻域事件 追踪邻域事件工具用于追踪在空间(位置)和时间上彼此邻近的事件。 输入图层必须为启用时间的点,这些点表示时刻。

工作流示意图

追踪邻域事件工作流逻辑示意图

使用 GeoAnalytics Tools 进行的分析

通过跨多个 ArcGIS GeoAnalytics Server 计算机和核心组件的分布式处理来运行使用 GeoAnalytics Tools 进行的分析。GeoAnalytics ToolsArcGIS Enterprise 中标准要素分析工具的参数和功能不同。要了解有关这些差别的详细信息,请参阅要素分析工具差别

术语

术语定义示例

实体

定期记录位置的移动对象。

动物、人或车辆。 实体可以静止或移动。

感兴趣实体

用于开始追踪的特定实体。

感染了 COVID-19 的人员。

邻域事件

两个实体在一段时间内彼此邻近。

两个人彼此相距 3 米和位于 1 分钟时间窗之内。

深度

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

感兴趣实体与其他人之间的邻域事件为深度 1。

追踪事件

感兴趣实体下游的指定实体的第一联系人。

示例

组织会监控公司下发给工作人员进行携带的设备。 该公司想要确定哪些员工在已知患有新冠肺炎 (COVID-19) 的个人附近。 他们使用表示设备位置和时间的点图层来识别距离感染者和其他可能感染员工六米和五分钟范围内的设备。

NGO 正在使用 GPS 监控鲑鱼种群,并且想要追踪鲑鱼虱在逃逸的养殖鲑鱼和野生种群之间的传播。 将追踪一些进行 GPS 示踪的养殖鲑鱼,以查看它们是否与示踪的野生种群紧密邻近,以及这些野生种群如何进一步传播这种疾病。 测量还包括一个深度字段,仅供 NGO 用于寻找相似深度的鱼群。

用法说明

追踪邻域事件时,由您负责了解有关数据敏感性和隐私性的组织、本地和国家指导方针。

不会在结果中包含没有时间值、几何值或实体 ID 字段的输入点。

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

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

指定的时间搜索距离和空间搜索距离越大,生成的事件越多,并且处理结果所需的时间越长。 距离越小,生成的事件越少,并且处理时间越短。

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

空间搜索距离逻辑示意图
图 A:两个要素位于彼此的空间搜索距离内。
时间搜索距离逻辑示意图
图 B:两个要素位于彼此的时间距离(时间搜索距离)内。

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

感兴趣实体是开始邻域追踪的位置。 如果指定了开始时间,则将从该时间开始对该实体进行追踪。 如果未指定时间,则将从 1970 年 1 月 1 日开始对该实体进行追踪。

默认情况下,系统将使用测地线方法创建实体轨迹,以进行距离计算。 建议在以下情况下使用测地线距离:

  • 跨越国际日期变更线的轨迹 - 当使用测地线方法时,越过国际日期变更线的输入图层将具有正确跨越国际日期变更线的轨迹。 必须将您的输入图层或处理空间参考设置为支持环绕国际日期变更线的空间参考,例如“世界圆柱等积”等全球投影。
  • 您的数据集不在局部投影中 - 如果输入数据在局部投影中,请使用平面距离方法。 例如,可以使用平面方法检查单个州内的追踪事件。 您的输入图层或处理空间参考必须设置为数据集本地的空间参考。

使用高级选项可指定最大追踪深度和要匹配的实体属性:

  • 可以为邻域事件设置其他要求。 例如,可以仅追踪校园中特定建筑物中的个人,也可以仅追踪建筑物的某一楼层内的个人。 使用选择一个或多个要匹配的实体属性参数可指定约束属性。 例如,要约束同一楼层的实体,请指定 Floor 字段。
  • 默认情况下,将查找感兴趣实体与轨迹下游实体之间的所有追踪。 使用最大追踪深度参数可限制深度。

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

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

可以使用时间滑块来可视化输出邻域事件图层,或者使用 ArcGIS Pro 中的链接图表来可视化追踪结果。

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

  • entity_id- 实体 ID。
  • depth- 感兴趣实体和追踪轨迹之间的分离度。 单条轨迹沿线的深度相同。
  • instant_datetime- 每个要素的日期。 该日期将与输入要素中的记录的日期相同。

如果选中使用当前地图范围,则仅对当前地图范围中可见的要素进行分析。如果未选中,则将分析输入图层中的所有输入要素,包括超出当前地图范围的要素。

局限性

输入邻域事件必须为具有已启用时间且类型为时刻的要素的点图层。 任何不具备时间的要素都不会包含在输出结果中。

追踪邻域事件的工作原理

下面的逻辑示意图显示了追踪邻域事件工具如何处理数据。 在这些逻辑示意图中,时间位于 x 轴上。 在每个逻辑示意图中,存在 4 个实体:A、B、C 和 D。 突出显示的文本描述了两个实体(“自”实体和“至”实体)之间发生的追踪事件以及邻域事件的深度。 在此示例中,实体 C 是正在向下游追踪的感兴趣实体。

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

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

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

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

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

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

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

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

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

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

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

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

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

第一个追踪事件的示例。

ArcGIS API for Python 示例

可通过 ArcGIS API for Python 获取追踪邻域事件工具。

本示例可查找输入图层的所有实体中处于名为 entity_3 的邻域中的邻域事件。


# Import the required ArcGIS API for Python modules
import arcgis
from arcgis.gis import GIS

# Connect to your ArcGIS Enterprise portal and confirm that GeoAnalytics is supported
portal = GIS("https://myportal.domain.com/portal", "gis_publisher", "my_password")
if not portal.geoanalytics.is_supported():
    print("Quitting, GeoAnalytics is not supported")
    exit(1)   

# Search for and list the big data file shares in your portal
search_result = portal.content.search("", "Big Data File Share")

# Look through the search results for the big data file share of interest
bd_layer = next(x for x in search_result if x.title == "bigDataFileShares_EntityLocationPoints")

# Run the Trace Proximity Events tool 
result = arcgis.geoanalytics.use_proximity.trace_proximity_events(input_points = bd_layer, 
    entity_id_field = "UniqueID",
    entities_of_interest_ids = [{"entityId": "entity_3", "epochTimeStamp": None}],
    spatial_search_distance = 6,
    spatial_search_distance_unit = "feet",
    distance_method = "Geodesic",
    temporal_search_distance = 10,
    temporal_search_distance_unit = "minutes",
    max_trace_depth = None,
    attribute_match_criteria = None,
    include_tracks_layer = None,
    output_name = "TPE_output")

# Visualize the results if you are running Python in a Jupyter Notebook
processed_map = portal.map()
processed_map.add_layer(result)
processed_map

类似工具

追踪邻域事件用于追踪在空间(位置)和时间上彼此邻近的事件。 其他工具或许在解决略有差异的类似问题时十分有用。

Map Viewer 经典版 分析工具

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

如果您希望将点重新构建为行驶的路径或者可视化输出轨迹,请使用重新构建轨迹工具。

ArcGIS Pro 分析工具

追踪邻域事件工具也可用于 ArcGIS Pro

要从 ArcGIS Pro 运行该工具,则工程的活动门户必须运行 ArcGIS Enterprise 10.9 或更高版本。 对于 10.9,您必须使用相应帐户登录到门户,该帐户应具有在门户中执行空间分析的权限。