ワンクリックで
transbigdata-traj
使用 TransBigData 进行轨迹数据处理。适用于轨迹清洗(漂移、冗余)、平滑、分段、停留识别、路网匹配、轨迹密化稀疏化等任务。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
使用 TransBigData 进行轨迹数据处理。适用于轨迹清洗(漂移、冗余)、平滑、分段、停留识别、路网匹配、轨迹密化稀疏化等任务。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
TransBigData 交通时空大数据分析工具集。适用于轨迹数据栅格化、轨迹清洗处理、出租车OD提取、公交地铁网络分析、坐标转换、数据可视化等交通大数据分析任务。
使用 TransBigData 进行坐标系转换和距离计算。适用于 WGS84、GCJ02、BD09 坐标系互转,以及两点间距离计算。
使用 TransBigData 获取公共交通和地理数据。适用于获取公交线路站点、行政区划边界、等时圈分析等任务。
使用 TransBigData 库进行地理数据栅格化处理。适用于将GPS轨迹数据映射到栅格、生成矩形/三角形/六边形栅格、Geohash编码、栅格参数优化等空间数据分析任务。
使用 TransBigData 构建公交地铁网络拓扑和路径分析。适用于地铁网络建模、最短路径查询、换乘分析、公交 GPS 到站识别等任务。
使用 TransBigData 进行数据预处理与质量评估。适用于数据质量检查、采样间隔分析、边界过滤、ID重编号等任务。
| name | transbigdata-traj |
| description | 使用 TransBigData 进行轨迹数据处理。适用于轨迹清洗(漂移、冗余)、平滑、分段、停留识别、路网匹配、轨迹密化稀疏化等任务。 |
pip install transbigdata
traj_clean_drift()删除速度/距离/角度异常的漂移点。
import transbigdata as tbd
# 清洗漂移数据
data_clean = tbd.traj_clean_drift(
data,
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
speedlimit=80, # 速度上限 km/h
dislimit=1000, # 距离上限 m
anglelimit=30 # 角度变化上限(度)
)
traj_clean_redundant()删除重复或冗余的轨迹点。
data_clean = tbd.traj_clean_redundant(
data,
col=['VehicleNum', 'Time', 'Lng', 'Lat']
)
traj_smooth()使用卡尔曼滤波平滑轨迹。
data_smooth = tbd.traj_smooth(
data,
col=['id', 'time', 'lon', 'lat'],
process_noise_std=0.1,
measurement_noise_std=1
)
traj_segment()根据时间间隔分割轨迹,返回每段起终点信息。
segments = tbd.traj_segment(
data,
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
groupby_col=['VehicleNum'],
retain_col=['Lng', 'Lat']
)
traj_slice()根据给定的时间段切割轨迹。
# 已知移动段信息
sliced = tbd.traj_slice(
data,
move, # 包含 stime, etime 的 DataFrame
traj_col=['VehicleNum', 'Time'],
slice_col=['VehicleNum', 'stime', 'etime', 'tripid']
)
traj_stay_move()识别轨迹中的停留点和移动段。
stay, move = tbd.traj_stay_move(
data,
params, # 栅格参数
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
activitytime=1800 # 停留判定时间阈值(秒)
)
traj_densify()在轨迹点之间插值生成更密集的点。
data_dense = tbd.traj_densify(
data,
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
timegap=15 # 目标时间间隔(秒)
)
traj_sparsify()降低轨迹采样频率。
data_sparse = tbd.traj_sparsify(
data,
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
timegap=60, # 目标时间间隔(秒)
method='subsample' # 'subsample' 或 'interpolate'
)
traj_to_linestring()将轨迹点转换为 GeoDataFrame 线几何。
traj_gdf = tbd.traj_to_linestring(
data,
col=['VehicleNum', 'Lng', 'Lat'],
timecol='Time'
)
traj_mapmatch()将轨迹匹配到路网。
import osmnx as ox
# 获取路网
G = ox.graph_from_place('Shenzhen, China', network_type='drive')
# 路网匹配
matched = tbd.traj_mapmatch(
data,
G,
col=['VehicleNum', 'Time', 'Lng', 'Lat']
)
traj_length()计算轨迹总长度(米)。
data_with_length = tbd.traj_length(
data,
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
method='Haversine' # 或 'Euclidean'
)
import pandas as pd
import transbigdata as tbd
# 1. 加载数据
data = pd.read_csv('taxi_gps.csv')
data['Time'] = pd.to_datetime(data['Time'])
# 2. 数据清洗
data = tbd.traj_clean_redundant(data, col=['VehicleNum', 'Time', 'Lng', 'Lat'])
data = tbd.traj_clean_drift(data, col=['VehicleNum', 'Time', 'Lng', 'Lat'],
speedlimit=100, dislimit=1000)
# 3. 轨迹平滑
data = tbd.traj_smooth(data, col=['VehicleNum', 'Time', 'Lng', 'Lat'])
# 4. 生成栅格参数(500米)
bounds = [113.75, 22.4, 114.62, 22.86]
params = tbd.area_to_params(bounds, accuracy=500)
# 5. 停留移动识别
stay, move = tbd.traj_stay_move(data, params,
col=['VehicleNum', 'Time', 'Lng', 'Lat'],
activitytime=1800)
# 6. 转换为轨迹线
traj_gdf = tbd.traj_to_linestring(data, col=['VehicleNum', 'Lng', 'Lat'],
timecol='Time')
# 7. 可视化
traj_gdf.plot(figsize=(10, 10))
activitytime 通常设为 1800 秒(30分钟)timegap完整文档: https://transbigdata.readthedocs.io/en/latest/traj.html