大数据时代到来,随着智能设备与物联网技术的普及,人在社会生产活动中会产生大量的数据。在我们的日常活动中,手机会记录下我们到访过的地点;在使用城市公交IC卡、共享单车等服务时,服务供应商会知道这些出行需求产生的时间与地点;公交车与出租车的定位信息,也可以告诉我们城市交通状态的具体情况。这些具备时间、空间与个体属性的数据能够为城市交通的智慧管控提供强有力的支持。
交通领域目前需要处理的数据通常规模巨大、种类繁多,数据通常涉及个体级别连续追踪的时空数据。数据通常有多种来源,各种类型的数据格式不同、数据特征不同、数据质量不同,要求我们的处理技术能够灵活多变,针对不同数据情况有不同的处理方法,也对我们所需掌握的数据处理技术带来了巨大挑战。
▲图1 时空大数据
本文将介绍如何使用TransBigData快速高效地处理、分析、挖掘出租车GPS数据。
1、TransBigData简介
TransBigData是一个为交通时空大数据处理、分析和可视化而开发的Python包。TransBigData为处理常见的交通时空大数据(如出租车GPS数据、共享单车数据和公交车GPS数据等)提供了快速而简洁的方法。TransBigData为交通时空大数据分析的各个阶段提供了多种处理方法,代码简洁、高效、灵活、易用,可以用简洁的代码实现复杂的数据任务。
目前,TransBigData主要提供以下方法:
-
数据预处理:对数据集提供快速计算数据量、时间段、采样间隔等基本信息的方法,也针对多种数据噪声提供了相应的清洗方法。
-
数据栅格化:提供在研究区域内生成、匹配多种类型的地理栅格(矩形、三角形、六边形及geohash栅格)的方法体系,能够以向量化的方式快速算法将空间点数据映射到地理栅格上。
-
数据可视化:基于可视化包keplergl,用简单的代码即可在Jupyter Notebook上交互式地可视化展示数据。
-
轨迹处理:从轨迹数据GPS点生成轨迹线型,轨迹点增密、稀疏化等。
-
地图底图、坐标转换与计算:加载显示地图底图与各类特殊坐标系之间的坐标转换。
-
特定处理方法:针对各类特定数据提供相应处理方法,如从出租车GPS数据中提取订单起讫点,从手机信令数据中识别居住地与工作地,从地铁网络GIS数据构建网络拓扑结构并计算最短路径等。
TransBigData可以通过pip或者conda安装,在命令提示符中运行下面代码即可安装:
pip install -U transbigdata
安装完成后,在Python中运行如下代码即可导入TransBigData包。
import transbigdata as tbd
2、数据预处理
TransBigData
与数据处理中常用的Pandas和GeoPandas包能够无缝衔接。首先我们引入Pandas包并读取出租车GPS数据:
import pandas as pd
# 读取数据
data = pd.read_csv('TaxiData-Sample.csv',header = None)
data.columns = ['VehicleNum','time','lon','lat','OpenStatus','Speed']
data.head()
结果如图2所示: