基于GIS的交通分配课件开发

2018-10-13 09:44左志王立晓孙小慧
青年时代 2018年27期
关键词:交通规划

左志?王立晓?孙小慧

摘 要:针对道路网络的交通分配,基于GIS平台和二次开发平台,开发了交通分配过程的透明化展示课件。从道路网络数据和交通小区OD数据准备,到整个交通分配程序的一般框架,详细介绍课件开发的整个过程。该课件有助于学生对于交通分配方法的深入理解,从数据层面上懂得交通分配的运行过程,有利于课堂教学效果的提升,也可为交通工程相关课程提供一定参考。

关键词:课件开发;交通规划;交通分配;GIS二次开发

一、背景

在《交通规划》课程的“四步法”之中,最关键也是最难理解和实现的就是最后一步方法,即交通量分配。该方法基于Wardrop第一和第二原理,在数学的解释上属于多维度非线性优化问题,几乎无法用人工方法计算得到最终结果,只能通过计算机实现[1],。课堂讲授过程中,虽然教师详细讲解,并用PPT等方式去展示,但学生对交通分配究竟如何实现,仍然处于一知半解的状态,导致很多学生在最终的交通分配方法应用上体会不深,不能够从最基础的层面上达到对方法的深刻理解。针对存在的问题,也有教师会采用交通规划软件,在课堂上对交通分配的过程进行演示,但由于商业软件自身的封闭性,其中路段上的交通量数据是如何分配,判断规则怎样设置,迭代计算如何进行,对学生来说,仍然是黑盒子。因此,为使学生达到对交通分配过程的深入了解,从最根本上理解道路网络中交通分配的运行规则,有必要从最基础的层面对此过程进行实现,以利于学生直接了解交通分配的计算机实现过程。

本文针对交通分配方法,基于GIS平台进行二次开发,设计并实现了交通分配的基础展示课件,课件有助于让学生从数据底层对交通分配过程实现深入了解,有助于《交通规划》课程交通分配方法的详细讲解,达到令学生理解并掌握该方法的教学效果。论文后续章节内容概括如下:第一部分简要介绍了交通分配方法,第二部分说明实现交通分配的数据准备,第三部分详细说明基于GIS平台二次开发的实现过程,最后是文章总结。

二、交通分配方法

通常,交通分配方法按照是否符合Wardrop用户平衡原理分为两种,即平衡分配方法和非平衡分配方法。非平衡分配方法相对而言较为简单,有全有全无分配、增量分配、多路径分配以及多路径-增量分配等方法。平衡分配方法则是依据用户平衡准则和网络费用最低准则的不同分为用户平衡(User Equilibrium, UE)和系统最优(System Optimization, SO)两种方法。因用户平衡能更为符合实际地描述网络的交通状态,故本文所要实现的交通分配模型也是用户平衡交通分配模型[2]。

1956年,Beckman提出了对应于用户平衡准则的如下路段無容量约束的交通分配问题(Traffic Assignment Problem, TAP)数学规划模型。具体形式如下:

其中,公式符号含义如下:

—路段a上的交通流量,δ为辅助变量,取值为0或1;

ta—路段a的交通阻抗;

ta(xa)—路段a以流量为自变量的阻抗函数;

fkrs—出发地为r目的地为s的OD间第k条路径上的流量;

qkrs—出发地为r目的地为s的OD间第k条路径上的交通量;

该数学规划模型提出20年后,到1975年,学者LeBlanc等人才开始将Frangk-Wolfe算法应用于模型的求解,最终形成了广泛应用的F-W解法,该解法的详细流程见邵春福的教材《交通规划原理》[3]。

三、数据准备

制作交通分配课件,需要准备的数据如下:

(1)道路网络图及相关属性数据

道路网络图及其相关属性是交通分配的基础,通常意义上的道路网络图在交通分配中是不可用的,必须将道路网络数据在GIS平台中进行一系列的处理[4],包括连通性检验、节点生成处理、网络拓扑处理、路段方向处理、道路相关属性输入等等。需要注意的是,交通小区形心连线也是一种特殊的路段,需要对其属性进行特殊处理,通常将其通行能力设置为无限大,而时间设置为非常小。本课件中路段文件命名为Link,后文用Link指代路段。

(2)交通小区及OD数据

交通小区数据最主要的是小区的编号,以及其它属性如人口、小区面积等等。此外小区间的OD一般以三列表的形式表示,第一列为起点小区,第二列为终点小区,第三列为小区之间的交通量。

四、GIS平台二次开发的实现

本课件基于Mapinfo软件平台,利用Mapbasic二次开发语言实现基于GIS的交通分配方法。首先在基础路网数据处理过程中,编制了对路网进行拓扑的程序。程序主要的作用是在路网基础上生成Link相交处的节点,同时对节点编号自动赋值,并依据节点编号对各个路段进行拓扑,使路网形成节点到节点的有向图。主程序如下:

sub main

call createpoint

call toponode

end sub

其中,createpoint子程序为在各Link的起终点生成节点,即Node,并自动编号,toponode子程序的功能是对Link进行拓扑,用起终点Node编号标识Link的方向,以及根据路段的单双向属性,生成反向辅助Link。

基础数据准备好之后,是在程序中读入路网数据及OD流量数据,收敛判断值。主程序如下,其中readod子程序为读取OD流量,readnetwork子程序为读取路网数据,路网数据主要以分方向的Link为单位,包括id、length、traveltime、freeflowtime、flow、capacity、direction等属性,而readcontrolparameter子程序则是程序的控制参数,包括步长搜索参数、收敛控制参数、最大迭代次数等。数据读取程序如下:

sub readdata

call readod

call readnetwork

call readcontrolparameter

end sub

其次是进行交通分配,分配程序最主要的过程是调用最短路径函数,其次是进行路段上的流量累加,路段出行时间的更新,以及下一步迭代方向和步长的搜寻,本程序主要使用黄金分割法寻找最优步长。程序主要框架内容如下:

sub trafficassignment

call initial

do while not (fconvergence< 0.001 or iterationNum> 9999)

call flowloading

call directionfinding

call stepfinding

call computeconvergence

loop

call dataoutput

end sub

其中,initial子程序主要为了分配网络初始化,以及一些参数的初始赋值;接下来是进行收敛判断;子程序flowloading的作用是在路网上加载OD流量,流量加载根据OD间的路径出行时间和上一次的计算结果判断,若为初次加载则是直接寻找基于自由流的时间最短路径加载;子程序directionfinding和stepfinding的功能是寻找下一次的迭代方向与步长,此步骤需要辅助流量向量以便于下一次网络流量的加载;computeconvergence则是计算收敛系数,以用来判断程序是否达到收敛标准;最后则是结果输出,结果包括迭代次数,收敛参数计算结果,每次迭代的Link流量以及出行時间等内容。

五、总结

本文介绍了基于GIS的交通分配的课件开发过程,包括从数据准备到程序开发的一些详细内容。该课件可以从底层数据层面对学生展示交通分配过程中的各种数据变化,如路段交通流、通行时间等,将商业软件中封闭的黑盒子变成白盒子。课件有利于学生对交通分配过程的深入理解,提升课堂教学效果,同时也可以为其它交通规划后续课程提供一定的参考。

参考文献:

[1]Sheffi, Y. Urban Transportation Networks: Equlibrium Analysis with Mathematical Programming [M]. Prentice-Hall, Inc., Englewood Cliffs,1982.

[2]陆化普.交通规划理论与方法[M].清华大学出版社,2006,第二版.

[3]邵春福.交通规划原理[M].中国铁道出版社,2006.

[4]罗云启,罗毅.数字化地理信息系统MapInfo应用大全[M].北京希望电子出版社,2001.

猜你喜欢
交通规划
浅析城市交通规划的可持续发展
城市道路与交通规划课程建设的几点思考
我国城市交通规划的行政法问题
交通规划课程考试改革探索与实践