con un clic
transbigdata-preprocess
使用 TransBigData 进行数据预处理与质量评估。适用于数据质量检查、采样间隔分析、边界过滤、ID重编号等任务。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
使用 TransBigData 进行数据预处理与质量评估。适用于数据质量检查、采样间隔分析、边界过滤、ID重编号等任务。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
TransBigData 交通时空大数据分析工具集。适用于轨迹数据栅格化、轨迹清洗处理、出租车OD提取、公交地铁网络分析、坐标转换、数据可视化等交通大数据分析任务。
使用 TransBigData 进行坐标系转换和距离计算。适用于 WGS84、GCJ02、BD09 坐标系互转,以及两点间距离计算。
使用 TransBigData 获取公共交通和地理数据。适用于获取公交线路站点、行政区划边界、等时圈分析等任务。
使用 TransBigData 库进行地理数据栅格化处理。适用于将GPS轨迹数据映射到栅格、生成矩形/三角形/六边形栅格、Geohash编码、栅格参数优化等空间数据分析任务。
使用 TransBigData 构建公交地铁网络拓扑和路径分析。适用于地铁网络建模、最短路径查询、换乘分析、公交 GPS 到站识别等任务。
使用 TransBigData 处理出租车 GPS 数据。适用于出租车状态清洗、OD 提取、载客/空驶轨迹分离等任务。
| name | transbigdata-preprocess |
| description | 使用 TransBigData 进行数据预处理与质量评估。适用于数据质量检查、采样间隔分析、边界过滤、ID重编号等任务。 |
pip install transbigdata
data_summary()输出数据集的基本统计信息。
import transbigdata as tbd
tbd.data_summary(
data,
col=['VehicleNum', 'Time'],
show_sample_duration=True,
roundnum=2
)
输出内容:
sample_duration()计算每条记录与前一条的时间间隔。
data_with_duration = tbd.sample_duration(
data,
col=['VehicleNum', 'Time']
)
# 返回包含 'duration' 列的 DataFrame(单位:秒)
clean_outofbounds()根据矩形边界过滤数据。
# 只保留研究范围内的数据
bounds = [113.75, 22.4, 114.62, 22.86] # [lon_min, lat_min, lon_max, lat_max]
data_clean = tbd.clean_outofbounds(
data,
bounds=bounds,
col=['Lng', 'Lat']
)
clean_outofshape()根据任意形状的地理边界过滤数据。
import geopandas as gpd
# 加载研究区域边界
area = gpd.read_file('study_area.shp')
data_clean = tbd.clean_outofshape(
data,
shape=area,
col=['Lng', 'Lat'],
accuracy=500 # 栅格精度,值越小越精确
)
id_reindex()当同一ID的记录时间间隔过大时,视为不同个体。
data_reindex = tbd.id_reindex(
data,
col='VehicleNum',
timegap=7200, # 时间阈值(秒),超过则分配新ID
timecol='Time',
new=False, # False: 保持相同ID索引一致
suffix='_new'
)
id_reindex_disgap()当同一ID的相邻记录距离过大时,视为不同个体。
data_reindex = tbd.id_reindex_disgap(
data,
col='VehicleNum',
disgap=1000, # 距离阈值(米)
suffix='_new'
)
import pandas as pd
import geopandas as gpd
import transbigdata as tbd
# 1. 加载数据
data = pd.read_csv('gps_data.csv')
data['Time'] = pd.to_datetime(data['Time'])
# 2. 数据质量检查
print("=== 数据概览 ===")
tbd.data_summary(data, col=['VehicleNum', 'Time'])
# 3. 添加采样间隔列
data = tbd.sample_duration(data, col=['VehicleNum', 'Time'])
print(f"采样间隔统计: 均值={data['duration'].mean():.1f}秒, 中位数={data['duration'].median():.1f}秒")
# 4. 边界过滤(深圳范围)
bounds = [113.75, 22.4, 114.62, 22.86]
data = tbd.clean_outofbounds(data, bounds=bounds, col=['Lng', 'Lat'])
print(f"边界过滤后: {len(data)} 条记录")
# 5. ID重编号(处理长时间断点)
data = tbd.id_reindex(data, col='VehicleNum', timegap=3600, timecol='Time')
print(f"重编号后车辆数: {data['VehicleNum_new'].nunique()}")
# 6. 保存处理后的数据
data.to_csv('gps_data_cleaned.csv', index=False)
data_summary() 了解数据质量