查找常用位置 (情报)

摘要

识别运动轨迹已停留多个时间段的区域,并根据轨迹标识符聚合这些位置。

使用情况

  • 该工具可识别运动轨迹持续停留的位置。 这有助于为唯一运动轨迹标识符制定正常的生活模式,并有助于确定可能的新感兴趣区域以帮助调查。

    生活模式是在给定时间段内与实体相关的一组特定行为和运动。 它在调查中被广泛使用,可以更好地了解特定实体位于给定位置特定次数的时间。

  • 查找常用位置工具中使用了以下术语:

    • 常用位置 - 表示多个停留位置在多个时间间隔内在空间中相交的位置。
    • 停留位置 - 在给定时间和距离参数的情况下表示轨迹何时静止的要素。
    • 轨迹 - 已启用时间且时间类型为时刻的要素序列。 要素由轨迹标识符字段确定处于序列中,并按时间进行排序。 例如,带有海上移动通信业务标识 (MMSI) 的船舶近乎实时地报告其位置。 在本例中,MMSI 可以代表不同的轨迹。
    • 时刻 - 由开始时间表示的单个时间点且无结束时间。 这有时被称为时间时刻。
    • 间隔 - 由开始时间和结束时间表示的持续时间。 这有时被称为时间间隔。

  • 查找常用位置工具与查找汇合位置工具的不同之处在于,查找汇合位置标识多个独特的运动轨迹在空间和时间上共存的区域。 查找常用位置工具可识别单个唯一运动轨迹在多个唯一时间间隔内停留在同一位置的位置。

  • 停留位置是使用最短徘徊时间搜索距离参数值确定的。 首先,该工具将使用唯一标识符将要素分配给轨迹。 轨迹的顺序取决于要素的时间。 接下来,将计算轨迹中的第一个观测点与下一个观测点之间的距离。 如果两个时间上连续的点至少在给定的持续时间内保持在给定的距离内,则要素将被视为停留的一部分。 如果发现两个要素是停留的一部分,则停留中的第一个要素将被用作参考点,且该工具会找到位于停留中参考点的指定距离内的连续要素。 找到指定距离内的所有要素后,该工具将采集停留要素并计算其平均中心。 如果当前停留之前和之后的要素位于停留位置的平均中心的给定距离内,则系统会将其添加到停留中。 此过程将一直持续到轨迹结束。

    通过首先识别数据集中存在的所有停留位置来确定常用位置。 一旦它们被识别,共享相同轨迹标识符的停留位置将被组合在一起并合并。 如果指定了每个位置的最小停留数值,则该位置必须满足指定的最小停留数值才合格。 将计算额外的统计数据以查找该位置的第一次和最后一次访问、该位置的单次停留总数、该位置的总持续时间以及一周中每天活动的详细分类。

  • 默认情况下,时间边界参数将在每天 12:00 a.m. 开始分割轨迹数据。如果停留位置从 1 月 1 日星期一 10:00 p.m. 开始,并在 1 月 2 日 2:00 a.m. 结束,将为该地点创建 1 月 1 日和 1 月 2 日的停留位置。

    如果对于相同的数据,时间边界值设置为 1 周,则将在 monday 字段中创建一个值为 1 的停留位置。

  • 必须在输入要素参数值上启用时间。

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

  • 输出要素类参数值将包含以下字段:

    • track_id - 从追踪 ID 字段参数中指定的值派生的唯一轨迹标识符
    • area_id - 表示每个已识别常用位置的唯一值
    • total_dwells - 已为指定的停留地点确定的数量 area_id
    • total_time - 每个单次停留位置的持续时间总和(以秒为单位)
    • location_start - 常用位置的第一个观察时刻
    • location_end - 常用位置的最后一个观察时刻
    • sunday - 星期日在给定 area_id 发生的单次停留地点的数量
    • monday - 星期一在给定 area_id 发生的单次停留地点的数量
    • tuesday - 星期二在给定 area_id 发生的单次停留地点的数量
    • wednesday - 星期三在给定 area_id 发生的单次停留地点的数量
    • thursday - 星期四在给定 area_id 发生的单次停留地点的数量
    • friday - 星期五在给定 area_id 发生的单次停留地点的数量
    • saturday - 星期六在给定 area_id 发生的单次停留地点的数量

  • 如果选中归一化每日分布参数,则 sundaymondaytuesdaywednesdaythursdayfridaysaturday 字段的值将代表一周中特定日期在该位置花费的总时间的百分比。 这些值将介于 0 和 1 之间,值 1 表示 100%。 如果未选中归一化每日分布参数,则该值将代表一周中某一天在特定位置花费的时间的实际值。

  • 此地理处理工具由 Spark 作为支持。 可在台式计算机上并行使用多个核来完成分析。 为获得最佳性能,应在台式计算机上提供数据。 如果数据不是本地数据,则运行此工具需要更长时间。

参数

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

输入运动轨迹点,用于分析是否为可能的常用地点。 图层必须已启用时间。

Feature Layer
追踪 ID 字段

包含将源数据组织成运动轨迹的唯一标识符的字段。

Field
输出要素类

包含可能常用位置的输出面要素类。

Feature Class
表达式
(可选)

用于选择记录子集的 SQL 表达式。

SQL Expression
搜索距离
(可选)

运动轨迹点在不再被视为常用位置的一部分之前可以徘徊的最大距离。 默认值是 100 米。

Linear Unit
最短徘徊时间
(可选)

运动轨迹点在被视为停留之前可以在区域中徘徊的最短时间。

该值有助于识别可能常用位置,其中多个唯一运动轨迹停留在同一时间和空间。 默认值为 10 分钟。

Time Unit
时间界限
(可选)

将用于拆分输入要素参数值的时间跨度。 例如,如果您使用始于 1 天的时间界限,则轨迹将在每天开始时被分割。

Time Unit
每个位置的最小停留数
(可选)

要定义为常用位置所需发生的重叠单次停留的最小数量。 默认情况下,将返回满足停留条件的所有位置。

Long
归一化每天分布
(可选)

指定是否对停留位置的每日分布进行归一化。 归一化值表示在特定日期停留位置发生的总时间的百分比,而实际值表示在给定日期发生的停留总数。

  • 选中 - 将对停留位置值的每日分布进行归一化。
  • 未选中 - 不对停留位置值的每日分布进行归一化。 这是默认设置。

Boolean
汇总字段
(可选)

指定将计算的统计数据。

可以计算以下变量的统计数据:

  • 开始时间 - 首次检测到单次停留位置的时间(以小时为单位)。 时间将舍入为最接近的小时。
  • 结束时间 - 最后一次检测到单次停留位置的时间(以小时为单位)。 时间将舍入为最接近的小时。
  • 停留持续时间 - 每个单次停留位置处于活动状态的时间(以秒为单位)

支持以下统计数据:

  • 平均值 - 数值的平均值。
  • 最小值 - 数值字段的最小值。
  • 最大值 - 数值字段的最大值。
  • 标准差 - 数值字段的标准差。

Value Table

arcpy.intelligence.FindFrequentedLocations(in_features, track_id_field, out_featureclass, {expression}, {search_distance}, {minimum_loiter_time}, {time_boundary}, {minimum_dwells}, {normalize_daily_distribution}, {summary_fields})
名称说明数据类型
in_features

输入运动轨迹点,用于分析是否为可能的常用地点。 图层必须已启用时间。

Feature Layer
track_id_field

包含将源数据组织成运动轨迹的唯一标识符的字段。

Field
out_featureclass

包含可能常用位置的输出面要素类。

Feature Class
expression
(可选)

用于选择记录子集的 SQL 表达式。 有关 SQL 语法的详细信息,请参阅在 ArcGIS 中使用的查询表达式的 SQL 参考

SQL Expression
search_distance
(可选)

运动轨迹点在不再被视为常用位置的一部分之前可以徘徊的最大距离。 默认值是 100 米。

Linear Unit
minimum_loiter_time
(可选)

运动轨迹点在被视为停留之前可以在区域中徘徊的最短时间。

该值有助于识别可能常用位置,其中多个唯一运动轨迹停留在同一时间和空间。 默认值为 10 分钟。

Time Unit
time_boundary
(可选)

将用于拆分输入要素参数值的时间跨度。 例如,如果您使用始于 1 天的时间界限,则轨迹将在每天开始时被分割。

Time Unit
minimum_dwells
(可选)

要定义为常用位置所需发生的重叠单次停留的最小数量。 默认情况下,将返回满足停留条件的所有位置。

Long
normalize_daily_distribution
(可选)

指定是否对停留位置的每日分布进行归一化。 归一化值表示在特定日期停留位置发生的总时间的百分比,而实际值表示在给定日期发生的停留总数。

  • NORMALIZED将对停留位置值的每日分布进行归一化。
  • REAL不对停留位置值的每日分布进行归一化,其将表示实际值。 这是默认设置。
Boolean
summary_fields
[summary_fields,...]
(可选)

指定将计算的统计数据。

可以计算以下变量的统计数据:

  • START_TIME - 首次检测到单次停留位置的时间(以小时为单位)。 时间将舍入为最接近的小时。
  • END_TIME - 最后一次检测到单次停留位置的时间(以小时为单位)。 时间将舍入为最接近的小时。
  • DWELL_DURATION - 每个单次停留位置处于活动状态的时间(以秒为单位)

支持以下统计数据:

  • MEAN - 数值的平均值。
  • MIN - 数值字段的最小值。
  • MAX - 数值字段的最大值。
  • STDDEV - 数值字段的标准差。

Value Table

代码示例

FindFrequentedLocations 示例(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用 FindFrequentedLocations 函数。

# Name FindFrequentedLocations.py
# Description: Find frequented locations in a track dataset.

import arcpy

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

fc = "Movement_Tracks"
track_field = "user"
out_fc = "frequented_locations"
where_statement = "user = 'user_1'"
distance = "100 Meters"
loiter_time = "10 Minutes"
boundary = "1 Days"
min_dwells = 5
daily_dist = "NORMALIZED"

arcpy.intelligence.FindFrequentedLocations(fc, 
                                           track_field, 
                                           out_fc, 
                                           where, 
                                           distance, 
                                           loiter_time, 
                                           boundary, 
                                           min_dwells, 
                                           daily_dist)