trackintel 笔记:generate_staypoints,create_activity_flag

 1 generate_staypoints

trackintel.preprocessing.generate_staypoints(
    positionfixes, 
    method='sliding', 
    distance_metric='haversine', 
    dist_threshold=100, 
    time_threshold=5.0, 
    gap_threshold=15.0, 
    include_last=False, 
    print_progress=False, 
    exclude_duplicate_pfs=True, 
    n_jobs=1)

从位置修正(positionfixes)生成停留点(staypoints)。这是一种通过滑动窗口方法来分析用户在特定位置的停留情况 

positionfixes 位置修正数据
method 创建停留点的方法,‘sliding’表示应用滑动窗口
distance_metric

({'haversine'})

应用方法使用的距离度量

dist_threshold

‘sliding’方法的距离阈值,即用户必须移动多远才能生成新的停留点。

如果使用‘haversine’度量,单位是米。

time_threshold ‘sliding’方法的时间阈值(分钟)
gap_threshold 时间间隙大于‘gap_threshold’的连续位置修正将被排除在停留点生成之外
include_last

(boolean, 默认 False);根据 Li 等人(2008)的算法,仅在用户离开该停留点时才检测到停留点。

这将省略最后一个停留点(如果有的话)。设置‘include_last’为 True 可以包含这最后一个停留点。

print_progress 如果设置为 True,则显示每个用户的进度
exclude_duplicate_pfs

在生成停留点前过滤重复的位置修正。

重复的位置修正可能导致后续处理步骤(例如生成三段)出现问题。不建议将此设置为 False

n_jobs

同时运行的最大作业数。

如果为 -1,则使用所有 CPU。

如果给定 1,则完全不使用并行计算代码,这有助于调试

返回内容:

pfs 带有新列[staypoint_id]的原始位置修正
sp 生成的停留点

2 create_activity_flag

trackintel.analysis.create_activity_flag(
    staypoints, 
    method='time_threshold', 
    time_threshold=15.0, 
    activity_column_name='is_activity')

用于在停留点(staypoints)中添加一个标志,以基于时间阈值确定是否将某个停留点视为活动

staypoints 停留点数据
method ‘time_threshold’:所有持续时间超过时间阈值的停留点都被视为活动
time_threshold

将停留点视为活动的时间阈值(分钟)

如果一个用户在某一地点停留超过设定的时间阈值(例如15分钟),这个停留点就被认为是用户进行某种活动的地点

activity_column_name 新创建的包含活动标志的列的名称

 3 generate_triplegs

trackintel.preprocessing.generate_triplegs(
    positionfixes, 
    staypoints=None, 
    method='between_staypoints', 
    gap_threshold=15)

从位置修正(positionfixes)生成行程段(triplegs)【非staypoint的部分,连续的是一个tripleg】

positionfixes 如果未找到‘staypoint_id’列,则需要提供‘staypoints’
staypoints

与位置修正对应的停留点(staypoints)

如果没有传递此参数,位置修正需要与之关联的‘staypoint_id’

method

创建行程段的方法。

‘between_staypoints’方法将所有位于两个停留点之间的位置修正定义为一个行程段(没有重叠)。

‘overlap_staypoints’方法也将所有位于两个停留点之间的位置修正定义为一个行程段,并包括停留点的坐标。

后者方法需要位置修正具有‘staypoint_id’列,并且需要传递停留点作为输入。

gap_threshold 允许的最大时间间隙大小(分钟)。如果跟踪数据在超过 gap_threshold 分钟内缺失,则将生成一个新的行程段。

返回值

pfs 带有新列[tripleg_id]的原始位置修正
tpls 生成的行程段

4 generate_trips

trackintel.preprocessing.triplegs.generate_trips(
    staypoints, 
    triplegs, 
    gap_threshold=15, 
    add_geometry=True)

基于提供的停留点和行程段数据集构建

staypoints 停留点数据
triplegs 行程段数据
gap_threshold

指定连续行程段之间可以经过的最大时间(以分钟计),以便将它们视为同一行程的一部分。

如果间隔超过此阈值,则开始新的行程

add_geometry

如果设置为 True,函数将计算并添加每次行程的地理起点和终点到输出中。

这有助于可视化和空间分析,但可以禁用以提高处理速度

print_progress 当 True 时,显示进度条以跟踪函数的执行进度,这对于大型数据集很有用

返回内容

sp

增强的停留点数据集

现在包括额外的列,以指示停留点与行程的关系,如 trip_idprev_trip_idnext_trip_id

tpls

增强的行程段数据集

包括一个新列 trip_id,将每个行程段链接到特定的行程

trips

一个包含从输入数据生成的行程的新数据集。

每个行程是在重要活动之间的移动的总结。

5 temporal_tracking_quality

根据数据的粒度(如天、周、工作日或小时)计算每个用户的时间跟踪质量。

这个指标对于评估移动跟踪数据的完整性和可靠性至关重要。

trackintel.analysis.temporal_tracking_quality(
    source, 
    granularity='all')
source 用于计算时间跟踪质量的源数据框。它必须包含 ['user_id', 'started_at', 'finished_at']
granularity

指定计算跟踪质量的详细级别。这些选项允许从多种时间视角进行分析:

  • "all":计算所有时间跨度的总体跟踪质量。
  • "day":按天跟踪质量。
  • "week":按周跟踪质量。
  • "weekday":按工作日(如周一、周二等)跟踪质量。
  • "hour":按小时跟踪质量。

6 generate_locations

从停留点生成位置

trackintel.preprocessing.generate_locations(
    staypoints, 
    method='dbscan', 
    epsilon=100, 
    num_samples=1, 
    distance_metric='haversine', 
    agg_level='user', 
    activities_only=False, 
    print_progress=False, 
    n_jobs=1)
staypoints 要处理的停留点数据集
method 创建位置的方法。目前支持的是 DBSCAN 算法,适用于基于密度的聚类
epsilon DBSCAN 方法的邻域半径,单位是米
num_samples 形成聚类所需的最小停留点数量
distance_metric

{'haversine', 'euclidean'}

用于计算点之间距离的度量

agg_level

生成位置的聚合级别:

  • user:为每个用户独立生成位置,适用于个性化数据分析。
  • dataset:基于所有用户的集体数据生成共享位置,用于更广泛的空间分析。
activities_only 如果设置为 True,则仅从“activity”列值为 True 的停留点生成位置,适用于活动代表更重要的地点
print_progress 如果设置为 True,函数执行期间将显示进度条,这有助于监控大型数据集中的进程
n_jobs 制并行运行的作业数量。设置为 -1 使用所有可用的 CPU 加速处理,而 1 表示不使用任何并行计算代码,这有助于调试

返回值

sp 修改后的停留点数据集,新增了一个 location_id 列,将每个停留点链接到相应的位置
locs

包含生成的位置的新数据集。

每个位置包括几何信息,如中心点(center,默认几何)和地理区域(extent),后者由位置中的停留点的凸包定义,并扩展了等于 epsilon 的缓冲距离

7 merge_staypoints

基于时间阈值聚合停留点,有效地合并在指定时间间隔内发生的相邻停留点

trackintel.preprocessing.merge_staypoints(
    staypoints, 
    triplegs, 
    max_time_gap='10min', 
    agg={})
staypoints 包含带有 location_id 列的停留点,该列可以使用 generate_locations 函数生成
triplegs 行程段数据。两个停留点之间存在行程段将阻止这些停留点被合并
max_time_gap 允许两个停留点之间的最大持续时间,以便它们被考虑合并
agg 一个字典,指定合并停留点后如何聚合列

相关推荐

  1. 拼音笔记笔记

    2024-04-23 10:10:03       32 阅读
  2. 笔记】HDFS基础笔记

    2024-04-23 10:10:03       20 阅读
  3. 笔记】Hbase基础笔记

    2024-04-23 10:10:03       21 阅读
  4. mySql笔记

    2024-04-23 10:10:03       42 阅读
  5. less 笔记

    2024-04-23 10:10:03       42 阅读
  6. React笔记

    2024-04-23 10:10:03       40 阅读

最近更新

  1. SQL Server设置端口:跨平台指南

    2024-04-23 10:10:03       0 阅读
  2. 指定版本ceph-common安装

    2024-04-23 10:10:03       0 阅读
  3. 中科海讯 C++初级研发工程师笔试题目

    2024-04-23 10:10:03       0 阅读
  4. vue3的常用 Composition API有哪些?

    2024-04-23 10:10:03       1 阅读
  5. Linux系统基础命令行指令——Ubuntu

    2024-04-23 10:10:03       0 阅读
  6. 【Android高级UI】计算不规则图形面积

    2024-04-23 10:10:03       0 阅读
  7. Python库 - PyMC3

    2024-04-23 10:10:03       0 阅读
  8. C语言中关键字

    2024-04-23 10:10:03       0 阅读
  9. ios CCPlistFileWritter.m

    2024-04-23 10:10:03       0 阅读
  10. C#实现Winform程序右下角弹窗消息提示

    2024-04-23 10:10:03       0 阅读

热门阅读

  1. 使用nginx发布tomcat站点

    2024-04-23 10:10:03       12 阅读
  2. ChatGPT如何助力科研创新,提升研究效率?

    2024-04-23 10:10:03       11 阅读
  3. GPT-SoVITS声音训练报错ZeroDivisionError: division by zero

    2024-04-23 10:10:03       16 阅读
  4. 分布式与微服务的区别

    2024-04-23 10:10:03       17 阅读
  5. python-读写文本数据

    2024-04-23 10:10:03       14 阅读
  6. 从零手写 tomcat

    2024-04-23 10:10:03       34 阅读
  7. STM32 ST-LINK

    2024-04-23 10:10:03       53 阅读