查找同行者 (AllSource)

摘要

用于提取点轨迹数据集中以指定的间隔在空间和时间中移动的唯一标识符。

使用情况

  • 该工具将从输入要素中识别在要素之间相距指定时间和距离内移动的唯一标识符。 输入要素必须启用时间。

    了解有关设置数据的时间属性的详细信息

  • 选择要用作唯一标识符的字段时,请选择整型或文本字段。 这将允许对要素进行更有效的分组并返回最佳输出。 最佳情况下,数据集中将包含一个现有的追踪 ID。 追踪标识符的一个很好的示例就是海上移动通信业务标识 (MMSI)。 可将 .gpx 文件、航空器呼号或其他唯一值中的 Name 字段分组为轨迹。 唯一标识符不应对每行均唯一。 如果对每行均唯一,则系统将无法形成轨迹,且无法识别出任何同行者,或在极少数情况下会生成大量的误报。

  • 时间和空间分隔间隔越小,处理速度越快。 例如,10 分钟时间差和 100 米空间间隔的处理速度比 1 小时时间差和 1 千米空间间隔的处理速度快。

  • 要优化搜索距离时间差参数以返回适当数量的同行要素,请考虑以下方法:

    • 较大的搜索距离时间差值将识别更多潜在的同行者。 如果需要增大移动对象(例如船舶或大型货车)之间的平均间距,则该设置可能较为理想。
    • 对于具有以分钟为单位测量的采样率的数据,较大的搜索距离时间差值也是理想的选择。 这是由于在这些增加的间隔内,对象可能会出行更大的距离。
    • 较小的搜索距离时间差值将识别更少潜在的同行者。 如果移动对象(例如人、自行车或汽车)之间的间距较小,则该设置可能比较理想。
    • 较小的搜索距离时间差值非常适合采用秒或亚秒级采样率的数据。 采样率越小,对象出行的机会就越少,从而在检测同行者时允许采用更严格的容差。

    小参数值与大参数值
    行人的参数值必须较小,而大型对象的参数值必须较大。

  • 最短同行持续时间过滤器参数允许指定两个要素在被视为同行要素之前必须共同出行的最短时间。 例如,如果指定的最短同行持续时间为 15 分钟,则从检测到同行事件的第一个实例开始到检测到同行事件的最后一个实例结束的时间必须至少为 15 分钟,然后工具才能将轨迹作为有效同行者返回。 如果港口、停车场或具有极少量轨迹的同行事件等要素导致了大量误报,建议您应用最短同行持续时间过滤器值,然后再次运行该工具。 最短同行持续时间过滤器值将有助于移除大多数较小的轨迹段。

    搜索距离时间差值设置为较大的值时,该工具可能会识别可能作为潜在同行者传递或相交的要素。 为避免发生这种情况,请将最短同行持续时间过滤器参数设置为大于数据采样率的值。

    传递和相交对象
    传递和相交对象不是同行对象。

  • 输出要素表示同行要素的位置。 除了其他描述性字段外,还将向输出要素添加两个字段,用于指示旅行者和可能的同行者之间的时间和空间间隔。

    输出要素将包含以下字段:

    • traveler_id- 旅行要素的唯一标识符。 该标识符与同行要素一起移动,可视为源要素。
    • cotraveler_id- 同行要素的唯一标识符。 该标识符与旅行要素同行,可视为目标要素。
    • X- 旅行要素的 x 坐标。 该坐标将采用输入要素参数的投影单位。
    • Y- 旅行要素的 y 坐标。 该坐标将采用输入要素参数的投影单位。
    • X_cotraveler- 同行要素的 x 坐标。 该坐标将采用输入要素参数的投影单位。
    • Y_cotraveler- 同行要素的 y 坐标。 该坐标将采用输入要素参数的投影单位。
    • traveler_time- 旅行要素的日期和时间。
    • cotraveler_time- 同行要素的日期和时间。
    • distance_difference- 在输入要素参数中标识的要素与评估的同行者之间的距离。 该距离将采用输入要素参数的线性单位。
    • time_difference- 在输入要素参数中标识的要素与评估的同行者之间的时间间隔。 时间差以秒为单位,可以是正数,也可以是负数。 正数表示标识为在旅行者之后出现的要素。 负数表示标识为在旅行者之前出现的要素。
    • cotraveling_pair_id- 为每个唯一的同行要素对生成的唯一标识符。

    将生成 cotraveling_pair_id 标识符以提供用于过滤和识别所有可能的同行者组合的选项。 对于 (A, B) 和 (B, A),两个同行要素 (A, B) 将共享相同的标识符。

    一个同行轨迹对的 Cotraveling_pair_id 标识符
    当一个轨迹对被标识为同行时,该轨迹对的所有实例都将具有相同的 cotraveling_pair_id 标识符。

    可以创建一个可选的汇总表。 汇总表将包含以下字段:

    • unique_pair_id- 为每个唯一的同行要素对生成的唯一标识符。 对于 (A, B) 和 (B, A),两个同行要素 (A, B) 将共享相同的标识符。
    • traveler_id- 旅行要素的唯一标识符。 该标识符与同行要素一起移动,可视为源要素。
    • cotraveler_id- 同行要素的唯一标识符。 该标识符与旅行要素同行,可视为目标要素。
    • time_diff_max- 旅行者和同行者之间的最大时间间隔。
    • time_diff_min- 旅行者和同行者之间的最小时间间隔。
    • time_diff_mean- 旅行者和同行者之间的平均时间间隔。
    • time_diff_std- 旅行者和同行者之间时间间隔的标准差。
    • dist_diff_max- 旅行者和同行者之间的最大距离间隔。
    • dist_diff_min- 旅行者和同行者之间的最小距离间隔。
    • dist_diff_mean- 旅行者和同行者之间的平均距离间隔。
    • dist_diff_std- 旅行者和同行者之间距离间隔的标准差。
    • unique_pair_id_count- 标识为 unique_pair_id 字段同行的要素总数。

  • 可以在链接图表中可视化查找同行者工具的输出。

    了解有关链接图表的详细信息

    链接图表允许将复杂数据集向下钻取到其组件部分,以帮助可视化和探索数据中的关系。 该项工作可通过创建实体类型和关系类型来完成。 实体类型可代表离散对象,例如人员、地点、组织和唯一标识符。 traveler_idcotraveler_id 字段是可以转换为实体类型的数据类型的示例。 链接图表的另一部分是关系类型。 关系类型可在链接图表中将各个实体类型相互连接。 对查找同行者的输出进行可视化可增强对所连接的实体以及是否存在需要进一步探索的相关聚类等情况的了解。

    一旦创建了链接图表,就可以为查找同行者输出创建实体和关系类型。 建议您选中创建汇总表参数。 查找同行者结果可能很大,并且可能会影响链接图表的性能。 无论使用可选的创建汇总表值还是输出要素类值,我们都建议您通过创建多字段实体从 traveler_idcotraveler_id 字段添加实体类型

    要使用输出汇总表输出要素类值来创建关系类型,请使用“实体”键类型。 将源实体关键字段值设置为 traveler_id,并将目标实体关键字段值设置为 cotraveler_id

参数

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

启用时间的要素,表示将用于查找同行者的已知标识符。 唯一标识符、时间戳和位置将传输到输出图层,以帮助计算时间和空间间隔。

Feature Layer
输出要素类

该输出要素类将包含标识为与输入源图层同行的点轨迹段。 该要素类将包含与指定点轨迹段关联的源。 将为每个点轨迹要素计算时间和空间间隔。

Feature Class
ID 字段

输入要素参数中的字段,用于获取每个点轨迹的唯一标识符。 该字段将复制到输出要素类。

Field
搜索距离
(可选)

在要素不被视为同行要素之前可以分隔的最大距离。 默认值为 100 英尺。

Linear Unit
时间差
(可选)

在要素不被视为同行要素之前可以分隔的最大时间差。 默认值为 10 秒。

Time Unit
输入类型
(可选)

指定将在一个要素类中还是在跨要素类检测同行者。

  • 一个要素类将在一个要素类中检测同行者。 这是默认设置。
  • 两个要素类将在两个要素类中检测同行者。
String
次要要素
(可选)

将用于标识同行者的第二个要素类。 将使用以下内容来评估潜在同行者:

  • 同行者正在输入要素内同行。
  • 同行者正在次要要素内同行。
  • 同行者正在输入要素和次要要素之间同行。

Feature Layer
次要 ID 字段
(可选)

次要要素参数中的字段,用于获取每个点轨迹的唯一标识符。 该字段将复制到输出要素类。

Field
创建汇总表
(可选)

指定是否将创建输出汇总表。

  • 选中 - 将创建汇总表。
  • 未选中 - 将不会创建汇总表。 这是默认设置。

Boolean
输出汇总表
(可选)

将存储汇总信息的输出表。 此参数仅在选中创建汇总表参数时处于活动状态。 输出文件必须是文件地理数据库、文本文件或逗号分隔值文件 (.csv) 中的表。

Table
包括最短同行持续时间过滤器
(可选)

指定是否将应用仅返回满足最短共同出行时间的同行者的过滤器。

  • 选中 - 将应用最短同行者持续时间过滤器。
  • 未选中 - 将不会应用最短同行者持续时间过滤器。 这是默认设置。

Boolean
最短同行持续时间
(可选)

两个要素在被视为同行者之前,必须先在空间和时间上一起运动的最短时间。

Time Unit

arcpy.intelligence.FindCotravelers(input_features, out_featureclass, id_field, {search_distance}, {time_difference}, {input_type}, {secondary_features}, {secondary_id_field}, {create_summary_table}, {out_summary_table}, {include_min_cotraveling_duration}, {min_cotraveling_duration})
名称说明数据类型
input_features

启用时间的要素,表示将用于查找同行者的已知标识符。 唯一标识符、时间戳和位置将传输到输出图层,以帮助计算时间和空间间隔。

Feature Layer
out_featureclass

该输出要素类将包含标识为与输入源图层同行的点轨迹段。 该要素类将包含与指定点轨迹段关联的源。 将为每个点轨迹要素计算时间和空间间隔。

Feature Class
id_field

input_features 参数中的字段,用于获取每个点轨迹的唯一标识符。 该字段将复制到输出要素类。

Field
search_distance
(可选)

在要素不被视为同行要素之前可以分隔的最大距离。 默认值为 100 英尺。

Linear Unit
time_difference
(可选)

在要素不被视为同行要素之前可以分隔的最大时间差。 默认值为 10 秒。

Time Unit
input_type
(可选)

指定将在一个要素类中还是在跨要素类检测同行者。

  • ONE_FEATURECLASS将在一个要素类中检测同行者。 这是默认设置。
  • TWO_FEATURECLASSES将在两个要素类中检测同行者。
String
secondary_features
(可选)

将用于标识同行者的第二个要素类。 将使用以下内容来评估潜在同行者:

  • 同行者正在输入要素内同行。
  • 同行者正在次要要素内同行。
  • 同行者正在输入要素和次要要素之间同行。

Feature Layer
secondary_id_field
(可选)

secondary_features 参数中的字段,用于获取每个点轨迹的唯一标识符。 该字段将复制到输出要素类。

Field
create_summary_table
(可选)

指定是否将创建输出汇总表。

  • NO_SUMMARY_TABLE将不会创建汇总表。 这是默认设置。
  • CREATE_SUMMARY_TABLE将创建汇总表。
Boolean
out_summary_table
(可选)

将存储汇总信息的输出表。 仅当将 create_summary_table 参数值设置为 CREATE_SUMMARY_TABLE 时,才会启用此参数。 输出文件必须是文件地理数据库、文本文件或逗号分隔值文件 (.csv) 中的表。

Table
include_min_cotraveling_duration
(可选)

指定是否将应用仅返回满足最短共同出行时间的同行者的过滤器。

  • 选中 - 将应用最短同行者持续时间过滤器。
  • 未选中 - 将不会应用最短同行者持续时间过滤器。 这是默认设置。

指定是否将应用最短同行者持续时间过滤器。

  • MIN_COTRAVELING_DURATION将应用最短同行者持续时间过滤器。
  • NO_MIN_COTRAVELING_DURATION不会应用任何最短同行者持续时间过滤器。 这是默认设置。
Boolean
min_cotraveling_duration
(可选)

两个要素在被视为同行者之前,必须先在空间和时间上一起运动的最短时间。

Time Unit

代码示例

FindCotravelers 示例(独立脚本)

以下 Python 脚本演示了如何在不含输出汇总表,仅包含一个输入要素类的独立脚本中使用 FindCotravelers 函数。


# Name: FindCotravelers.py
# Description: Identify cotravelers in a point track dataset. 

# Import system modules 
import arcpy 

arcpy.env.workspace = "C:/data/Tracks.gdb"

# Set local variables 
source_features = "Known_Tracks"
output_point_features = "Cotravelers"
id_field = "device_id"

# Run tool
arcpy.intelligence.FindCotravelers(source_features,
                                   output_point_features,
                                   id_field)
FindCotravelers 示例(独立脚本)

以下 Python 脚本演示了如何在含有输出汇总表和两个输入要素类的独立脚本中使用 FindCotravelers 函数。


# Name: FindCotravelers.py
# Description: Identify cotravelers in a point track dataset. 

# Import system modules 
import arcpy 

arcpy.env.workspace = "C:/data/Tracks.gdb"

# Set local variables 
source_features = "Known_Tracks"
unknown_features = "Unknown_Tracks"
output_point_features = "Cotravelers"
id_field_name = "device_id"
unknown_id_field = "MMSI"
search_distance = "75 Feet"
time_difference = "5 Seconds"
summary_table = "CREATE_SUMMARY_TABLE"
summary_table_name = "Tracks_Summary_Table"
filter_duration = "MIN_COTRAVELING_DURATION"
cotraveling_duration = "30 Minutes"


# Run tool
arcpy.intelligence.FindCotravelers(source_features,
                                   output_point_features,
                                   id_field_name,
                                   search_distance,
                                   time_difference,
                                   "TWO_FEATURECLASSES",
                                   unknown_features,
                                   unknown_id_field,
                                   summary_table,
                                   summary_table_name,
                                   filter_duration,
                                   cotraveling_duration)