《城市公交IC卡·数据分析方法及应用》 陈学武、李海波、候贤耀著
《城市公交IC卡·数据分析方法及应用》基于IC&AVL数据的上车站点识别·笔记
算法基本思路:
此处算法的核心思想是:通过IC卡数据和AVL数据的时间匹配,获取IC卡记录对应的上车站点
算法所需要的数据主要是公交IC卡数据和AVL定位数据
以到离站时间数据为例
公交刷卡数据包括:乘客IC卡卡号、卡类型、刷卡日期、刷卡时间、所乘线路编号、所乘车辆编号等字段
进出站时间数据应包括车辆识别、线路识别、线路方向、站点名称、进站时间、出站时间等字段
假设从公交IC卡数据库中提取出某辆公交车的M条公交IC卡记录,从AVL数据中提取出对应公交车的N条进出站时间记录。
设第i条刷卡记录的刷卡时间位
t
i
t_i
ti,对应的上车站点为
S
i
S_i
Si,第j条进出站时间记录的进站时间为
t
j
i
n
t_j^{in}
tjin,出站时间为
t
j
o
u
t
t_j^{out}
tjout,对应的站点为
S
j
S_j
Sj,则
I
F
t
j
i
n
<
t
i
≤
t
j
o
u
t
S
i
=
S
j
E
L
S
E
j
=
j
+
1
IF \quad t_j^{in}<t_i\le t_j^{out}\\ S_i=S_j\\ ELSE\qquad\qquad\qquad\\ j = j+1
IFtjin<ti≤tjoutSi=SjELSEj=j+1
现实中,刷卡滞后是不可避免发生的,需要对以上规则做出一定的修改:
认为第j个公交站点进展时间与第j+1 个公站点的进站时间之间的所有IC卡刷卡记录对应的上车站点均为公交站点 S j S_j Sj
即:
I
F
t
j
i
n
<
t
i
≤
t
j
+
1
i
n
S
i
=
S
j
E
L
S
E
j
=
j
+
1
IF \quad t_j^{in}<t_i\le t_{j+1}^{in}\\ S_i=S_j\\ ELSE\qquad\qquad\qquad\\ j = j+1
IFtjin<ti≤tj+1inSi=SjELSEj=j+1
公交IC卡系统时间修正
现在很多城市采用的是离线式公交IC卡收费系统,存在IC卡终端时间基准漂移,导致IC卡时间数据与实际数据不符,可以通过AVL数据矫正
易知,刷卡时间会早于或晚于实际时间 ,现在需要设计一个合理的时差就可以对数据修正,
主要推导步骤
-
1、IC卡数据提取:
- 从公交IC卡原视数据ODB_IC中提取卡号、刷卡时间、车辆标识、线路标识等字段
-
2、AVL数据提取
- 从公交AVL原始数据ODB_AVL 中提取车辆标识、线路标识、线路方向、站点名称、进站时间、出站时间等字段
- 生成公交AVL分析数据库DB_AVL
-
3、数据清洗:
-
4、抽取线路中的车辆:
- 从公交IC卡分析数据库和公交AVL分析数据可以中提取出第m条公交线路LIne_m的第r辆公交车Bus_n的IC卡数据和AVL数据,分别记为DB_IC_mn和DB_AVL_mn,其所包含记录条数分别为I_mn和A_mn;
-
5、上车点识别:
- 比较DB_IC_mn中的第i条记录的公交IC卡刷卡时间t_i与DB_AVL_mn中第j条记录的进站时间 t j b t_{jb} tjb和出站时间 t j e t_{je} tje;
- if t j b t_{jb} tjb < t i t_i ti <= t j e t_{je} tje,DB_AVL_mn中第j条记录的对应的站点即为DB_IC_mn中的第i条记录对应的上车站点 ,存入结果数据库DB_OD,并转至6
-
6、判断IC卡中记录是否已经全部处理结束。
- if i>=I_mn
- 转至7
- else
- i++
- goto 5
-
7、判断线路中所有车辆是否已经全部处理结束
- if n>=B_m
- 转至8
- else
- n++
- goto 4
-
8、判断所有线路是否已经全部处理结束
- if m>=N
- END
- else
- m++
- goto 4