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 | 增强的停留点数据集 现在包括额外的列,以指示停留点与行程的关系,如 |
tpls | 增强的行程段数据集 包括一个新列 |
trips | 一个包含从输入数据生成的行程的新数据集。 每个行程是在重要活动之间的移动的总结。 |
5 temporal_tracking_quality
根据数据的粒度(如天、周、工作日或小时)计算每个用户的时间跟踪质量。
这个指标对于评估移动跟踪数据的完整性和可靠性至关重要。
trackintel.analysis.temporal_tracking_quality(
source,
granularity='all')
source | 用于计算时间跟踪质量的源数据框。它必须包含 ['user_id', 'started_at', 'finished_at'] 列 |
granularity | 指定计算跟踪质量的详细级别。这些选项允许从多种时间视角进行分析:
|
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 | 生成位置的聚合级别:
|
activities_only | 如果设置为 True,则仅从“activity”列值为 True 的停留点生成位置,适用于活动代表更重要的地点 |
print_progress | 如果设置为 True,函数执行期间将显示进度条,这有助于监控大型数据集中的进程 |
n_jobs | 制并行运行的作业数量。设置为 -1 使用所有可用的 CPU 加速处理,而 1 表示不使用任何并行计算代码,这有助于调试 |
返回值
sp | 修改后的停留点数据集,新增了一个 location_id 列,将每个停留点链接到相应的位置 |
locs | 包含生成的位置的新数据集。 每个位置包括几何信息,如中心点( |
7 merge_staypoints
基于时间阈值聚合停留点,有效地合并在指定时间间隔内发生的相邻停留点
trackintel.preprocessing.merge_staypoints(
staypoints,
triplegs,
max_time_gap='10min',
agg={})
staypoints | 包含带有 location_id 列的停留点,该列可以使用 generate_locations 函数生成 |
triplegs | 行程段数据。两个停留点之间存在行程段将阻止这些停留点被合并 |
max_time_gap | 允许两个停留点之间的最大持续时间,以便它们被考虑合并 |
agg | 一个字典,指定合并停留点后如何聚合列 |