摘要:通过分析常用交通规划软件的公交模型数据库特点,研究基于动态分段技术的公交模型数据库结构。分别设计和开发了公交模型数据库的自动创建以及在不同路网间采用GIS方法进行移植的软件工具。研究了公交线路自动创建和移植的功能、算法流程、软件开发,并应用于大型工程项目。所开发的工具可以提高公交模型数据库的创建和维护效率,为交通模型快速反馈多种交通规划方案提供了技术基础。
城市交通模型在20世纪80年代引入我国,经过30多年的发展,逐渐成为诊断交通现状症结、预判未来发展趋势、制定交通发展政策、评估交通与土地使用适应性等的重要技术手段。构建和维护交通模型数据库是研发城市交通模型的重要基础性工作。交通网络数据构建工作量大、技术性强、维护周期长,一直以来是交通模型快速反馈规划方案的瓶颈。交通网络数据主要包括具有拓扑关系的基础道路网、基础轨道交通网,各种交通模式的换乘连线、形心连线,公交线路(含轨道交通列车运行交路)和站点、站台等。公交系统的数据库与道路交通网络通过特定的数据库结构关联起来,道路网络的修改,直接影响到公交线路数据的同步更新维护,这就大大增加了维护的工作量和复杂性。通过研究在地理信息系统(Geographic Information System ,GIS)环境下,公交线路数据库的创建和维护技术,进行了相应的软件工程开发,从而大大提高了数据库创建和维护的效率,为交通模型快速反馈多种交通规划方案提供了技术基础。
在公共交通模型数据库的构建和维护工作中,交通模型师通常会遇到三个问题:
1)一些城市交通管理部门提供了公交线路(线层)和公交站点(点层)的GIS数据,如何将其快速地转化为交通规划软件可应用的格式的数据库十分关键。
2)交通模型包括现状模型和规划模型,构建好现状公交模型数据库后,如何将依附于现状道路网络的公交线路应用到规划道路网络,使之和规划网络进行数据关联是又一大难题。一直以来,国内外交通模型工作者也尝试了很多方法,采用现状—规划路网“一张图”管理方法(也称为Master网络)就是其中应用较广的一种。Master网络技术在一定程度上减少了公交模型数据库的维护工作量,但由于国内城市发展变化快,现状和规划路网往往存在较大差异,很多时候现状路网在规划方案中是不存在的,对数据关联造成影响。同时,Master网络也增加了现状路网和规划路网的拓扑节点,增加了路网维护的复杂程度。
3)局部道路网络的规划方案修改后,必须同步修改公交线路以达到联动,这对工作人员的技术要求是非常高的。如何能够独立修改两个网络,并重新创建数据关联是需要攻克的难关。
公交模型数据库的维护工作量十分巨大,例如上海交通模型有2400余条上下行线路、55000个站点,纽约交通模型则有4000余条线路、10万多个站点。在GIS技术快速发展的今天,特别是在交通领域的广泛应用,逐渐形成了交通地理信息系统(GIS-T)学科分支,使得解决上述三个问题具有可能性。
2公共交通模型数据库结构描述
2.1 常用交通规划软件的公交模型数据描述
目前国际上较为流行的交通规划软件包括TransCAD、VISUM、EMME、CUBE等。这些软件对公交线路的数据结构描述具有一定差异。TransCAD和VISUM软件允许公交站点位于路段的任意位置,位于路网节点上是一种特例,这种数据结构来源于GIS中的动态分段技术。例如对公路的事故管理就需要事先存储事故在公路路径上的所有分布情况。因此,动态分段技术可以记录路径上“事件”,而不修改路网数据本身。EMME和CUBE软件采用路网节点设置站点,即通过公共汽车走过的节点来描述线路的走向,站点只能放在道路网络的节点上。这些节点既包括真实的交叉口,也包括虚拟的节点,为了提高模型的精度,位于较长路段中间位置的站点需要打断,以适应软件只支持“站点位于路网节点上”的特点。
2.2 基于动态分段技术的公交模型数据库结构描述
基于动态分段技术的公交站点维护,不再局限于放到路网的交叉口上,而是放到路段的任意位置,使数据模型更加贴近真实道路环境。如图1所示的动态分段下公交站点的布置情况,公交路径段由两个路径片段组成,长度分别占各自所属路段的70%和40%。通过动态分段技术,可以更加精确地描述公交站点的位置和路径段长度等属性。为了兼顾EMME和CUBE等软件的使用,可以根据站点的位置在GIS环境下自动打断路段,对于十分靠近节点的站点,可以挪动到节点。
基于动态分段技术的公交模型数据库具有维护方便,建模精度高且更加通用的优势,是公交模型数据库构建的首选方式。基于此技术的TransCAD便能够较好地集成了GIS和交通模型功能,提供二次开发,优化了公交数据的维护,且开发相应的工具也较为容易。因此,在TransCAD软件平台上进行二次开发,来试图解决前面提到的三个主要问题。
首先,公交网络的最大特点就是和路网具有关联性,在GIS中称为路径系统。路径系统记录了公交线路走过的路段和节点顺序以及站点所在的位置。路径系统通过特殊的数据结构存储在计算机系统中,实现各种关联查询分析。公交模型数据库结构见表1。
表1公交网络数据结构
1)线路表:和公交线路图层关联,描述了公交线路的一些特性,其主键为LineID。
2)路径段表。:描述了公交线路中,前后两个站点间的各种属性,属于软件内部的数据结构,用户无需维护。其主键是TranLinkID,通过LineID字段和线路表关联。
3)路径片段表。:是路径段表的组成部分,表示的是路径段在每个路段上的组成部分,其主键是SectionID,。通过TranLinkID和路径段表关联,LinkID表示该片段属于路网上的哪个路段。
4)车站表:和公交站点图层关联,其主键为StopID,描述了站点所在的路段(LinkID关联),表示线路第几次经过该站点(PassCount)以及其他属性。
5)路段表和节点表:即道路网络拓扑关系描述,不再赘述。
此外,TransCAD软件还包括可选的数据类型——真实的公交物理站点。公交线路的站点一定位于公交物理站台上,同一个公交物理站台,可能包含了多条线路的站点,但是某条线路经过某个物理站台不允许上下客,则认为该线路这个站台没有站点。
3公共交通模型数据库自动创建技术研究
在数据收集阶段,公交线路站点数据有多种形式。如果收集到的只是栅格图的格式(如JPEG格式),则模型师只好看着图纸手工添加,或者对着路网写好数据表再由软件导入,这两种方法的速度差不多,工作量都很大。如果能够收集到GIS格式的矢量数据,就会包含线路图层和站点图层(如ArcGIS软件的SHP格式)。另外,也可以通过一些地图网站进行二次开发来获得公交线路的矢量格式数据,例如采用百度地图的API开发或是Google公司的GTFS数据,都可以获得公交线路的空间和属性数据,产生矢量图层。这时,公交模型数据库就可以通过技术研发自动创建。
3.1输入数据
需要输入的数据有以下三点:
1)公交线路:为线层格式,包括线路名字段,是公交线路唯一的名字,需要区分上下行。
2)站点层:即公交站点图层,要求线路名字段和线路层中的线路名字段对应;站点序号字段:站点图层一条线路中站点的顺序号。
3)公交线路依附的道路网络。
3.2工作原理
TransCAD软件的GISDK开发语言提供了创建公交线路系统的全套函数。根据上述输入数据,创建模型数据库的关键技术如下:
1)创建公交线路的缓冲区(Buffer),对道路网络中缓冲区所包含的路段建立子网集合,公交线路经过的路段优先在子网中查找,以约束线路走向。缓冲区越小,约束的精度越高。若路网坐标匹配程度较大,可以适当加大缓冲区,但一般不超过一个街区的宽度。
2)站点可位于路段任意位置是研究最大的难点,一些站点位于交叉口附近,加上位置误差和地图匹配问题,只从空间位置上难以判别站点属于哪一个路段。因此对一条线路的站点序列进行递归前向探索,以确定车站属于哪一个路段并判断公交线路在路段上的方向。如图2所示,站点图层中的站点3,在地图中更靠近路网图层中的经二路,但实际该站点位于纬三路上,光从站点3自身的地理位置无法确定其所属路段。如果缓冲区包含了纬三路而没有包括经二路,则可以从路段包含关系中排除经二路。但由于地图匹配偏差,有时候纬三路也可能不在缓冲区中,就只能递归前向探索站点4和站点5,才能确定。一般来说,向前探索2个站点就足够了。
图2 站点所属的路段递归分析技术示意
Fig.2 The recursive algorithm for stops' link location
3)在道路网中,需要对明显不可能的路段进行排除。例如公交站点设置的路段,一般不会是高架、隧道和桥梁,可以通过选择集来限制。比如对于形心连线,其他模型需要的虚拟连线,也包含在路网图层中,但实际上这些路段是不存在的,可以排除公交线路的通行。再如,轨道交通网络不允许地面公交通行,可将地面公交和轨道交通交路通过不同的路网集合分批创建。
3.3实际应用中的问题
1)灵活选择部分线路导入,提高导入精度。可以对线路先进行比较严格的条件(缓冲区参数设置)导入,而对无法导入的线路或者站点错误比较多的线路,进行单独选择后,放宽条件导入。另外,对于新开行的线路进行添加导入,而不需要完全重新创建。
2)线路更新和属性数据加载。线路更新主要用于数据的更新,例如公交线路的走向调整。程序可自动删除公交系统中重名的线路,并更新属性数据,自动进行关联加载。
3)导入数据的检验和修正。公交线路的导入成功率依赖于模型的路网完善程度。例如公交线路经过的地区没有路网,程序可以让线路自动绕行,但若设站的地方没有路网,站点生成只好自动放弃。程序可以自动给出各种错误的报表,以便模型师人工核实少量错误。生成的模型公交系统和原始公交线路的差别检验工作非常重要。附加模块可根据错误报表指定线路名称查询对比,也可逐条浏览。支持批量保存为位图,可用于公交调整线路的查找,便于模型长期维护。公交模型数据创建校验示例见图3。
图3 公交模型数据创建校验示例
3.4应用实例
基于上述工作原理和功能需求,笔者开发了相应的工具,并应用于具体案例。对上海市公共交通有关部门提供或有关地图网站API开发获得的矢量数据进行数据测试,结果表明上海市2400余条公交线路可以在1h左右成功创建(见图4)。软件还提供了报错功能(例如站点所在位置的周边地区没有基础道路网络),错误率在2%以内,可根据错误报告利用检验工具,人工修正少量站点和线路。如果按照传统的人工绘制公交线路,即使是比较熟练的模型师,也至少需要80个工作日。因此,软件开发大大提高了公交模型数据库的创建效率。
图4 公交模型数据创建用户界面和上海应用示例
4公共交通模型数据库维护技术研究
使用公交模型数据库创建工具,把公交模型数据再导出为软件工具可以输入的数据格式,便可以在新的路网上重新创建公交模型数据库,实现路网的独立编辑。但公交模型数据库包含了更精准的信息,可以开发更为专业化的工具来实现维护功能。例如上述创建工具无法判断公交线路是否通过了重叠的地面和高架道路,就像是汽车导航无法完全准确判断车辆在地面道路还是高架道路。而在公交模型数据库中,包含了这些路段类型的信息,对于已经建成的公交模型数据库,则可以利用这些信息,进一步提高和路网的匹配度。
4.1功能特点
模型师往往希望公交系统能从一个网络“移植”到另一个网络,并且不需要数据库字段的对应,只需要两个网络空间位置基本一致。例如可以将现状道路上的现状公交线路移到规划路网(见图5),道路网络的编辑脱离公交线路进行自由编辑,多方案路网的公交线路重新生成等,可以大大节省人工绘制工作。公交线路“搬迁”时应尽量保持原有线路的走向特征,并准确识别公交线路走行高架、地面、地下道路等重叠路段。同时,也可以灵活地选择转换线路集合,或是线路在新网络中可走行的子网集合等,便于选择不同类别的线路分批处理。
a 现状路网和公交线路 b 规划路网和公交线路
图5 公交模型数据在现状和规划路网上的“移植”
Fig.5 Transit modeling database convert between current and planning road network
对比图5(a)和(b),规划路网的道路形态有所变化,公交线路则根据新的路网,重新创建了一条和现状线路高度匹配的线路,实现了在现状和规划路网直接的移植。实际应用中还需要以下几个功能帮助“移植”:
1)对既有公交系统,可以创建集合,在“线路集合”界面中选择用户创建的集合,则只移动集合中的公交线路。例如,轨道交通运行交路和常规公交线路可以分批次地进行。
2)目标公交系统中,可以对路网的节点和路段创建集合,如果使用“排除节点集合”选项,则表示集合中的节点不优先作为线路锚固点,但线路仍旧可能在查找路径时通过集合中的节点。在高级选项设置中勾选“不允许线路通过排除点集合”选项,则和“排除节点集合”中的节点相连的所有路段都被禁止使用,即线路不能通过集合中的所有节点。
3)目标公交系统中,如果使用了“排除路段集合”选项,则表示这些路段公交线路不能通过。“排除路段集合”的应用更为普遍一些,例如转换常规公交线路的时候,可以将形心连线、轨道路段等明确公交线路不能通行的路段进行排除。
4.2工作原理和算法流程
移植工具的工作原理和创建公交模型数据工具大体相同,但包含了更为详细的参数设置:
1)线路最短路径缓冲带宽度(m):新路网的路段完全包含在线路缓冲区时,才作为路径选择的对象。移植的公交线路在新的路网中优先在线路缓冲区内的子网中查找路径。
2)锚固点缓冲带宽度(m):锚固点是指在新、老路网公交线路走过的节点;“锚固点缓冲带宽度”区域内的新路网节点作为新公交线路的锚固点。
3)邻近点缓冲带宽度(m):其一般大于“锚固点缓冲带宽度”,是指旧路网中公交线路通过的点无法找到锚固点时,用邻近的节点代替。具体查找方法是在旧路网锚固点缓冲区域内所查找到的路段(去除“排除集路段”,路段并非完全包含在缓冲区内,接触到的都算)所连节点的最近节点,并且和旧路网中的锚固点的距离小于邻近点缓冲区距离(即邻近点缓冲带宽度)。
4)绕行路段缓冲带宽度(m):其一般大于“线路最短路径缓冲带宽度”,在线路缓冲带内找不到路径时,才到更大的缓冲区间查找路径(仅为局部锚固点对间的绕行查找,并非整条线路扩大缓冲区域)。如果还是找不到路径,就放弃移植该线路。
5)局部段落最大距离差 (m):是指新路网中锚固点或邻近节点对之间的距离和旧公交线路对应点之间的长度差的绝对值。如果存在某个段落大于这个值,就放弃移植该线路。
6)局部段落长度最大比值:是指新路网中锚固点或邻近节点对之间的距离和旧公交线路对应点之间的长度相对比值。如果存在某个段落大于这个值,就放弃移植该线路。
7)新旧线路总长最小比值。如果新的线路比旧的线路短很多,则放弃移植该线路。
公交模型数据在不同路网上移植的工具用户界面见图6。
图6 公交模型数据在不同路网上移植的工具用户界面
Fig.6 User interface of transit modeling database convert between different road network
上述参数设置后进行第一次移植,如有失败的线路(一般只在路网改动很大的情况出现),可以加载新旧两个公交系统,并逐步将参数设置宽松一些,重新对失败的线路进行移植。
移植工具的计算主流程如下:
Step0 初始化
Step0.1 确定新路网路径查找的子网集合
Step0.2 线路的字段处理,对比字段并添加RouteSystem的额外字段
Step0.3 确定创建网络的成本字段(全局字段及分线路字段)
Step1 主循环(针对每条线路)
Step1.1 判断线路是否转换、是否需要更新
Step1.2 获取线路的最短路径变量(若根据线路指定的字段计算最短路径)
Step1.3 旧路网的线路信息获取
Step1.3.1 车站信息获取并按照里程表排序
Step1.3.2 线路经过的路段序列获取
Step1.4 在新路网的子网中寻找线路路径(按ThruNodes节点序列依次查找)
Step1.4.1 线路的路径查找,包括绕行路径查找
Step1.4.2 将路径的路段处理为公交线路所需的格式
Step1.5 添加线路
Step1.6 添加站点
Step1.6.1 添加线路的路段B-node里程、线路的Pass_Count、新旧网络的锚固点里程和锚固点间新旧线路的长度比例
Step1.6.2 建立站点序列
Step1.6.3 添加站点
Step2 站点属性数据通过并联表更新
上述步骤所创建的数据库的维护关键技术如下:
1)通过缓冲区的创建,进行线路走向约束,提高公交线铺画。
2)采用线路绕行技术,提高线路对不同路网的适应度。线路优先在缓冲区内查找路径,查找失败后则可以在绕行范围内查找,甚至在全网查找。
3)针对线路重复迂回的经过某些路段,建立了Pass_Count字段,从而清晰地描述了线路走向及经过路段的计数。
4)采取分段缓冲区的办法,对公交线路走过的路段类型进行匹配,解决了二维空间的重叠问题,提高公交线路在地面道路和高架、地下等重叠道路走行路径的识别率。
5)灵活地应用了选择结合和参数设置,可以提高工具的使用灵活度和使用效率。
4.3 公交模型数据库维护的高级功能
1)根据不同线路类型的最短路径字段设置。指线路查找路径的成本字段,全局一般选择为长度,也可以为其他字段或分线路指定字段(原公交系统中建立一个成本字段,则对应查找新路网中的相应字段名作为成本查找最短路径),例如轨道交通和地面道路的运行线路可以分开设置。
2)线路经过的路段类型对应。主要针对平面坐标上重叠的路段处理,例如高架道路和地面道路、地下道路等。有些公交线路既走地面又走高架,不能通过前面排除集合来区分重叠区域的路段。这种情况可在新旧路网中各设置一个路段类型字段,程序将原公交线路按照经过的道路类型分段绘制缓冲区,每个路段在新路网中查找相应的匹配类型。同时用户需要设置匹配缓冲带,缓冲带内的路段考虑其类型并优先查找路径,缓冲带外的路段将不考虑类型。
3)有时候部分线路移植效果不理想,可根据需要选择更新已经移植成功的线路。
公交模型数据在不同路网上移植的高级功能开发界面见图7。
图7 公交模型数据在不同路网上移植的高级功能开发
Fig.7 Advanced function for transit modeling database convert
4.4 公交模型数据库维护的工作效率
根据对上海、天津、广州等多个大城市公交网络数据移植分析,该移植工具工作效率较高,一般可以在1h左右移植2000多条公交线路。路网变化不大的情况,通常准确率在99%以上,路网变化较大时,则可以通过逐次放大移植参数来完成,一般移植成功率也在95%左右。通过该工具的应用,实现了公交模型数据和道路网络模型数据独立编辑,不仅大大减低了维护的复杂度,同时也提高了工作效率。
5 结语
全文介绍了在地理信息系统(GIS)环境下的公交线路数据库创建和维护技术。通过TransCAD软件的二次开发,实现了相关功能并可以应用于实际项目,较大程度地提高了公交模型数据库创建和维护的效率,为交通模型快速反馈多种交通规划方案提供了技术基础。由于TransCAD软件的公交数据结构具有通用性,可以开发VISUM、EMME和CUBE等软件的数据接口工具,实现数据共享,具有较为广泛的应用前景。
参考文献:
References:
[1]贺崇明,马小毅.城市交通模型技术与应用——城市交通模型研讨会[C].上海:同济大学出版社,2007.
[2]Caliper. TransCAD User's Guide[R]. USA Caliper Corporation,2013.
[3]刘勖,宣国富,陈方才.动态分段技术在公交查询系统中的应用[J].北京测绘,2009,(3):50-52.
Liu Xu ,Xuan Guofu ,Cheng Fangcai. The Application of Section Dynamicly Technique in the Public Traffic Query System[J]. Beijing Surveying and Mapping,2009,(3):50-52.
[4]肖娟,高光明,彭涛,尹超,林腾.基于动态分段技术的公交查询系统的设计与实现[J].城市勘测,2010,(2):58-61.
Xiao Juan,Gao Guangming,Peng Tao,Yin Chao,Lin Teng. Design and Realization of Public Transport Inquiry System Based on Dynamic Segmentation Technology[J]. Urban Geotechnical Investigation & Surveying,2010,(2):58-61.