基于手机信息的交通出行计算方法
技术领域
本发明属于交通规划及管理中交通信息采集及处理领域,涉及一种利用手机信息计算交通小区间起讫点出行量和产生量吸引量的方法。
背景技术
交通调查及出行分析是交通规划与交通管理政策制定的基础。目前居民出行调查工作主要通过人工入户调查的方式进行,采样率低,采集分析过程较长。随着城市交通建设的迅速发展,交通需求变化加快,对交通调查与分析工作的要求不断提高,传统的交通需求分析手段已无法满足现状需求。结合新技术手段的交通需求分析与规划决策支持系统必将成为城市智能交通系统的一个重要发展领域。
手机目前已经成为广泛使用的移动通信工具,当手机移动或对外通信时,会和附近的基站(Cell)进行通信,基站会记录通信手机的编号、通信时间、通信类型和基站编号(Cell ID简称CI)传回后台数据管理中心。由于手机位置信息能够通过基站表示手机用户的位置和时间信息,经特别处理,可以判断用户起讫点,结合基站所属交通小区(按地域人为划分的区域),从而计算各个交通小区之间的出行量。相比其它交通采集系统来说,手机信息具有信息量多、覆盖范围大等特点。
发明内容
为了克服人工出行调查方法采样率低,采集分析过程较长的缺点,本发明提供了一种通过对手机移动信息的快速准确的处理及计算得到小区的出行数据的方法。本发明中的交通出行数据包括各小区间起讫点出行量,各小区出行总产生量(从该小区到其他小区的出行总量)及吸引量(从其他小区到该小区的出行总量)。该法可有效解决目前存在的手机信息数据量巨大,导致处理过程中耗费较多的时间和资源的问题,以及存在异常数据及无用数据、基站重叠或信号漂移、且信息上传时间不连续,计算精度难以保障的难点。
手机上传数据信息包括,用户编号、事件类型、基站编号、基站经纬度坐标、上传时间。
事件类型对交通出行判断影响很大,下面是事件类型的定义。
事件类型 |
说明 |
1 |
周期性位置更新:无其它事件上传时在1-2小时内上报一次位置信息 |
2 |
关机 |
3 |
开机 |
4 |
正常位置更新:通话时,手机每变化一次基站,上报一次位置信息 |
5 |
寻呼响应(被叫) |
6 |
发短信 |
7 |
电话主叫 |
8 |
短信接收 |
出行者在一天内会经过或停留在不同的空间位置,本发明中这些位置由上传手机信息时的用户所处的基站地理位置来反映,本发明将其称为位置点。对于任一用户,一天内经过或停留的位置点被划分为两类,经过点及逗留点,来描述用户在其上所处的状态。经过点为出行者空间移动过程中短暂经过的点,逗留点是指出行者逗留时间较长的点(本发明中将逗留时间大于1小时的点视为用户逗留点,并将其起视为出行者出行的出发地点或目的地点)。通过对手机上传的移动信息的处理,可进行逗留点及所在交通小区的判断,进而结合上传时间可得到出行者一日内的出行链(按时间序列的起讫点集合),通过对所有持有手机的出行者一日的所有出行进行集计,可得出以持有手机的出行者为样本的两个小区间的日出行数量,即出行OD,以及各小区出行总产生量及吸引量。最后用通用统计方法进行扩样后即可得到实际出行量。
本发明在对手机信息读取和按用户分类后,以用户为单位有针对性地对手机信息进行筛选,去除异常及与出行计算无关的经过点,同时通过对手机上传位置点的归并及对逗留点进行合理判断,在保证计算准确的同时又提高处理效率。
本发明提供的方法具体包括如下步骤:
步骤一:交通小区信息及基站信息的装载及匹配
程序从数据库中读入以经纬度坐标为基础的交通小区的平面多边形地理信息和基站的点地理信息;根据各交通小区和基站的地理位置关系,即平面上多边形与点的包含关系,将各个基站匹配到其所属的各交通小区内,建立基站和交通小区的隶属关系;
步骤二:将手机用户的事件信息按用户分离
读取数据库手机用户的事件信息数据记录;以用户为单位重新排列事件信息,对每个用户而言,每次上传事件信息称为一次通信,每次通信对应一个通信点,按时间排序从0开始编号,每次通信所使用基站对应的地理位置称为一个位置点;
步骤三:数据预处理
1)过滤事件信息异常的非正常用户:采用两种判断方法过滤通信数据异常的非正常用户:(a)同一位置,一小时短信通信次数大于20次;(b)一天通信次数大于300次;
2)经纬度重叠的基站及相邻基站信号漂移的处理:手机用户空间位置的移动由基站的编号变化来体现,而部分基站存在空间位置的重叠,或者过于临近。基站位置重叠或过于邻近会造成在同一位置没有移动(或在出行统计中可忽略的极短距离的移动)但基站编号有变化,从而影响这一位置逗留时间的计算,造成逗留点的丢失。另外手机信息上传时存在的信号漂移的现象(即因信号强弱变化导致在同一位置没有移动但基站编号有变化,表现为在多个相邻基站之间往复跳跃)也会造成类似的结果。因此若不将重叠或过于邻近的基站进行归并处理,则会与实际出行有重大的偏差。但如果对基站整体重新处理,使每一个位置有唯一的基站,则必须相应的将手机记录中的基站编号也作相应的更正。这些工作对于有上万个基站和每天上亿条纪录的数据量来说计算处理量相当大。以用户为单位,采用连续点距离判断的方法,将经纬度重叠的基站合并,同时通过设定阀值对因信号漂移导致多个在相邻基站之间往复跳跃的位置点进行整合;具体而言,对每个用户从位置点0开始连续两两计算前后位置点的距离,如果距离小于所设定阈值,则将后一个位置点合并到前一个位置点,将位置点对应的基站编号改为上一个位置点的基站编号,并将上一位置点通信次数加1;
3)去除经过点:经过点为出行者空间移动过程中短暂经过的点,对出行量统计没有实际意义。经过步骤2)的位置点通信次数判断后,将通信次数为1次并且事件类型不为1的位置点视为经过点并予以剔除。这样可以将相当一部分用户移动过程中的经过点数据过滤,从而大大提高了系统的处理效率,节省了系统的资源。
步骤四:逗留点判断
1)按信号时间差判断逗留点:对每个用户,按时间顺序逐个处理有多次通信的位置点,计算每个位置点首次和末次所传信号时间差,当时间差大于逗留允许值,则判断该位置点为逗留点;
2)按信号类型判断逗留点:手机待机状态下同一基站位置上每隔1-2小时上报一次信息,此为周期位置更新,事件类型为1,因本发明中将逗留时间大于1小时的点视为用户逗留点。因此对按时间顺序连续仅有一次通信的位置点,若其上传事件类型为1,则该点也判断为用户逗留点;
步骤五:交通小区间起讫点出行量及小区产生吸引量的计算
将计算得到的所有逗留点按照时间顺序排序,两个连续逗留点所属两小区间起讫点出行量计1次。前一小区出行产生量计1次,后一小区出行吸引量计1次,最后将所有用户小区间起讫点出行数量、小区出行产生量、小区出行吸引量进行总计,得出以持有手机的出行者为样本的小区间起讫点出行量及各小区总出行数据。
本发明具有以下有益效果
该发明的基础数据来源于移动通信网络,相对传统的抽样调查方法,此种方法处理数据在手机普及率较高的情况下覆盖范围广、数据源稳定可靠、样本量大大增加,而相应的基础设施建设要求低,费用低廉,并且处理速度快,能够满足快速、动态获取交通基础信息的要求。
以下结合附图说明和具体实施方式对本发明作进一步的说明。
附图说明
图1是本发明流程框图;
图2是基站和交通小区分布示意图;
图3是用户位置点图;
图4是交通小区出行计算结果示意图。
具体实施方式
本发明的具体实施流程如图1所示,其中每个步骤都可通过计算机编制程序,对数据进行处理实现。程序运行硬件环境惠普xw8600WorkStation,操作系统Microsoft Windows XP Professional x64 Edition2003 SP2,采用Microsoft Visual Studio 2005开发。
具体执行步骤如下:
步骤一:交通小区信息及基站信息的装载及匹配
图2为读取的交通小区和基站数据在地图上的显示情况部分截图,图中的多边形区域为交通小区,区域中间的数字是交通小区编号。图上黑色小圆圈为基站,每个基站有相应的实际编号。
根据基站和交通小区的位置关系,将各个基站匹配到小区内,建立基站和交通小区的隶属关系。
为了在图中更清晰的表示,图3是用户位置点图,位置点是以基站点的形式表示。空心的黑色小圆圈为该位置只有一次上传信息,实心的黑色小圆圈为该位置有多次上传信息,对每个基站,通信公司对其有唯一的编号,即实际编号,图中基站编号是为清楚说明本方法而定义的(称图中编号),用①、②、③、④等数字表示。在图中可以看到每一个小区区域内的基站经过计算隶属于各自小区。图中基站①、②属于小区628,基站③、⑤属于小区627,④属于小区629。
读取数据库手机数据记录。
步骤二:将手机用户的事件信息按用户分离
以用户为单位把用户所经经过或停留的空间位置点(由基站编号来描述)归类,并以时间排序及编号,第一点编号为0。
表1
通信点编号 |
基站实际编号(位置点编号) |
通信次数 |
通信类型 |
通信时间 |
|
687807(2) |
6(多次通信点) |
|
|
0 |
同上 |
|
1 |
2008-8-10:25:33 |
1 |
同上 |
|
1 |
2008-8-12:19:11 |
2 |
同上 |
|
1 |
2008-8-14:12:50 |
3 |
同上 |
|
1 |
2008-8-16:06:24 |
4 |
同上 |
|
1 |
2008-8-18:00:00 |
5 |
同上 |
|
1 |
2008-8-19:53:35 |
6 |
259820(3) |
1 |
4 |
2008-8-111:09:20 |
7 |
309549(5) |
1 |
4 |
2008-8-111:15:49 |
8 |
895672(7) |
1 |
4 |
2008-8-111:18:02 |
9 |
845290(8) |
1 |
4 |
2008-8-111:21:19 |
10 |
598063(12) |
1 |
4 |
2008-8-111:24:05 |
11 |
295456(9) |
1 |
4 |
2008-8-111:27:32 |
12 |
717323(9) |
1 |
7 |
2008-8-111:54:30 |
13 |
295456(9) |
1 |
1 |
2008-8-113:48:55 |
|
598063(12) |
3(多次通信点) |
|
|
14 |
同上 |
|
4 |
2008-8-114:11:48 |
15 |
同上 |
|
5 |
2008-8-114:35:29 |
16 |
同上 |
|
5 |
2008-8-114:38:06 |
|
295456(9) |
2(多次通信点) |
|
|
17 |
同上 |
|
4 |
2008-8-114:40:46 |
18 |
同上 |
|
5 |
2008-8-114:42:41 |
|
717323(9) |
4(多次通信点) |
|
|
19 |
同上 |
|
1 |
2008-8-116:36:23 |
20 |
同上 |
|
1 |
2008-8-118:29:59 |
21 |
同上 |
|
7 |
2008-8-118:36:42 |
22 |
同上 |
|
7 |
2008-8-118:43:52 |
23 |
116184(11) |
1 |
4 |
2008-8-120:30:19 |
24 |
295456(9) |
1 |
4 |
2008-8-120:31:22 |
25 |
116184(11) |
1 |
4 |
2008-8-121:30:22 |
|
295456(9) |
2(多次通信点) |
|
|
26 |
同上 |
|
4 |
2008-8-121:56:18 |
27 |
同上 |
|
5 |
2008-8-122:21:33 |
28 |
419358(11) |
1 |
4 |
2008-8-122:22:37 |
29 |
692619(12) |
1 |
5 |
2008-8-122:30:06 |
30 |
709611(6) |
1 |
4 |
2008-8-122:30:36 |
31 |
737011(5) |
1 |
4 |
2008-8-122:31:12 |
32 |
8490(4) |
1 |
4 |
2008-8-122:34:24 |
|
687807(2) |
3(多次通信点) |
|
|
33 |
同上 |
|
4 |
2008-8-122:41:35 |
34 |
同上 |
|
7 |
2008-8-122:41:49 |
35 |
同上 |
|
5 |
2008-8-123:08:22 |
36 |
259820(3) |
1 |
4 |
2008-8-123:29:06 |
37 |
666612(1) |
1 |
4 |
2008-8-123:30:49 |
步骤三:数据预处理
如表1为按用户分类处理后用户″3699677219144722116″(加密后的用户手机编号)一天按时间排序的位置点数据。该用户手机数据经整理后内容包括位置点编号、基站编号、通信次数、通信类型、通信时间。其中位置点编号代表上传时间的先后顺序;基站编号和图3中表示的基站编号一致;通信次数是在该位置发生信号的次数,大于1的为多次通信点,可视为逗留点。
过滤通信数据异常的非正常用户:将在同一位置,一小时通信次数大于20次的用户或一天通信次数大于300次的用户剔除。
合并重叠或相近的基站:对每一用户从位置点0开始连续两两计算前后位置点的距离,如果距离小于100米,则将后一个位置点合并到前一个位置点,修改位置点对应的基站编号改为上一个位置点的基站编号,并将上一位置点通信次数加1。
表2
通信点编号 |
基站实际编号(位置点编号) |
通信次数 |
通信类型 |
通信时间 |
|
687807(2) |
6(多次通信点) |
|
|
0 |
同上 |
|
1 |
2008-8-10:25:33 |
1 |
同上 |
|
1 |
2008-8-12:19:11 |
2 |
同上 |
|
1 |
2008-8-14:12:50 |
3 |
同上 |
|
1 |
2008-8-16:06:24 |
4 |
同上 |
|
1 |
2008-8-18:00:00 |
5 |
同上 |
|
1 |
2008-8-19:53:35 |
6 |
259820(3) |
1 |
4 |
2008-8-111:09:20 |
7 |
309549(5) |
1 |
4 |
2008-8-111:15:49 |
8 |
895672(7) |
1 |
4 |
2008-8-111:18:02 |
9 |
845290(8) |
1 |
4 |
2008-8-111:21:19 |
10 |
598063(12) |
1 |
4 |
2008-8-111:24:05 |
|
295456(9) |
3(多次通信点) |
|
|
11 |
同上 |
|
4 |
2008-8-111:27:32 |
12 |
同上 |
|
7 |
2008-8-111:54:30 |
13 |
同上 |
|
1 |
2008-8-113:48:55 |
|
598063(12) |
3(多次通信点) |
|
|
14 |
同上 |
|
4 |
2008-8-114:11:48 |
15 |
同上 |
|
5 |
2008-8-114:35:29 |
16 |
同上 |
|
5 |
2008-8-114:38:06 |
|
295456(9) |
2(多次通信点) |
|
|
17 |
同上 |
|
4 |
2008-8-114:40:46 |
18 |
同上 |
|
5 |
2008-8-114:42:41 |
|
717323(9) |
4(多次通信点) |
|
|
19 |
同上 |
|
1 |
2008-8-116:36:23 |
20 |
同上 |
|
1 |
2008-8-118:29:59 |
21 |
同上 |
|
7 |
2008-8-118:36:42 |
22 |
同上 |
|
7 |
2008-8-118:43:52 |
23 |
116184(11) |
1 |
4 |
2008-8-120:30:19 |
24 |
295456(9) |
1 |
4 |
2008-8-120:31:22 |
25 |
116184(11) |
1 |
4 |
2008-8-121:30:22 |
|
295456(9) |
2(多次通信点) |
|
|
26 |
同上 |
|
4 |
2008-8-121:56:18 |
27 |
同上 |
|
5 |
2008-8-122:21:33 |
28 |
419358(11) |
1 |
4 |
2008-8-122:22:37 |
29 |
692619(12) |
1 |
5 |
2008-8-122:30:06 |
30 |
709611(6) |
1 |
4 |
2008-8-122:30:36 |
31 |
737011(5) |
1 |
4 |
2008-8-122:31:12 |
32 |
8490(4) |
1 |
4 |
2008-8-122:34:24 |
|
687807(2) |
3(多次通信点) |
|
|
33 |
同上 |
|
4 |
2008-8-122:41:35 |
34 |
同上 |
|
7 |
2008-8-122:41:49 |
35 |
同上 |
|
5 |
2008-8-123:08:22 |
36 |
259820(3) |
1 |
4 |
2008-8-123:29:06 |
37 |
666612(1) |
1 |
4 |
2008-8-123:30:49 |
由表2中可以看出编号11、12、13的位置点,它们尽管对应的基站实际编号不同,但是属于同一位置,在图中编号⑨处,相邻距离为零。属于基站位置重叠情况。为此,修改位置点对应的基站编号改为上一个位置点的基站编号,并将上一位置点通信次数加1。从而位置点11至13形成新的位置点。修改后数据如表2中通讯点编号11至13所示。
去除经过点:确定单一基站位置只有一次通信的点是经过点,在处理中将单一基站上的非1事件类型的连续只有一次通信的数据去除。
表3
通信点编号 |
基站实际编号(位置点编号) |
通信次数 |
通信类型 |
通信时间 |
|
687807(2) |
6(多次通信点) |
|
|
0 |
同上 |
|
1 |
2008-8-10:25:33 |
1 |
同上 |
|
1 |
2008-8-12:19:11 |
2 |
同上 |
|
1 |
2008-8-14:12:50 |
3 |
同上 |
|
1 |
2008-8-16:06:24 |
4 |
同上 |
|
1 |
2008-8-18:00:00 |
5 |
同上 |
|
1 |
2008-8-19:53:35 |
|
295456(9) |
3(多次通信点) |
|
|
11 |
同上 |
|
4 |
2008-8-111:27:32 |
12 |
同上 |
|
7 |
2008-8-111:54:30 |
13 |
同上 |
|
1 |
2008-8-113:48:55 |
|
598063(12) |
3(多次通信点) |
|
|
14 |
同上 |
|
4 |
2008-8-114:11:48 |
15 |
同上 |
|
5 |
2008-8-114:35:29 |
16 |
同上 |
|
5 |
2008-8-114:38:06 |
|
295456(9) |
2(多次通信点) |
|
|
17 |
同上 |
|
4 |
2008-8-114:40:46 |
18 |
同上 |
|
5 |
2008-8-114:42:41 |
|
717323(9) |
4(多次通信点) |
|
|
19 |
同上 |
|
1 |
2008-8-116:36:23 |
20 |
同上 |
|
1 |
2008-8-118:29:59 |
21 |
同上 |
|
7 |
2008-8-118:36:42 |
22 |
同上 |
|
7 |
2008-8-118:43:52 |
|
295456(9) |
2(多次通信点) |
|
|
26 |
同上 |
|
4 |
2008-8-121:56:18 |
27 |
同上 |
|
5 |
2008-8-122:21:33 |
|
687807(2) |
3(多次通信点) |
|
|
33 |
同上 |
|
4 |
2008-8-122:41:35 |
34 |
同上 |
|
7 |
2008-8-122:41:49 |
35 |
同上 |
|
5 |
2008-8-123:48:22 |
如在表2中删除编号为6至10、23至25、28至32、36至37的位置点。表3是删除单一基站上的非1类通信类型的数据的结果,由图中可以明显显示出用户分别在图编号②、⑨、
⑨、⑨、⑨、②位置的停留情况。
步骤四:逗留点判断
按信号时间差判断逗留点:对每个用户,按时间顺序逐个处理有连续多次通信的位置点,计算每个位置点首次和末次信号时间差,当时间差大于逗留允许值(1小时),则判断该位置点为逗留点。
从表3预处理后的数据可对各个多通信点进行判断,②号点第一时间0:25:33和最后一个时间9:53:35之差大于1小时的允许值,说明用户在这里停留时间很长,可以确定是一个逗留点,所在小区为618号;⑨号点第一个时间11:27:32和最后时间13:48:55之差大于1小时的允许值,确定为逗留点;
号点第一个时间14:11:48和最后一个时间14:38:06之差小于1小时,是经过点,不是逗留点;⑨号点第一个时间14:40:46是和最后时间14:42:41之差小于1小时不是逗留点;⑨号点第一个时间11:27:32和最后时间13:48:55之差大于1小时的允许值,确定为逗留点;⑨号点第一个时间16:36:23和最后时间18:43:52之差大于2小时,确定为逗留点;⑨号点第一个时间21:56:18和最后时间22:21:33之差小于1小时,不是逗留点;②号点第一时间22:41:35和最后一个时间23:48:22之差大于1小时确定为逗留点。
判断后可知表3中②、⑨、②为逗留点。
对按时间顺序连续仅有一次通信的位置点,若其上传事件类型为1,则该点可判断为用户逗留点。
步骤五:交通小区间起讫点出行量及小区产生吸引量的计算
将计算得到的所有逗留点按照时间顺序排序,两个连续逗留点所属两小区间出行数量计1次。前一小区出行产生量记1次,后一小区出行吸引量记1次,最后将所有用户小区间出行数量、小区出行产生量、小区出行吸引量进行总计,得出以持有手机的出行者为样本的小区间及各小区总出行数据。
本实施例中示例用户逗留点排列顺序为②、⑨、②,出行顺序为②到⑨,⑨到②。根据所属交通小区为628小区到215小区,215小区到628小区(见图7)。为此,618小区到215小区出行量累加1,215小区到628小区出行量累加1。618小区产生量加1,215小区吸引量加1,215小区产生量加1。628小区吸引量加1。对所有用户都以此法计算,最后集计,则可得全部出行量。