构建和维护交通模型数据库是研发交通模型的重要基础性工作。交通网络数据构建工作量大、技术性强、维护周期长,一直以来是交通模型快速反馈规划方案的瓶颈。公共交通系统的数据库与道路交通网络通过特定的数据库结构相关联,因此道路网络的修改直接影响公交线路数据的同步更新维护,这就大大增加了维护的工作量和复杂性。在公交模型数据库的构建和维护工作中,交通模型师通常会遇到三个难以避免的问题:(1)城市交通管理部门或公交运营企业提供了公交线路(线层)和公交车站(点层)的GIS 数据,或者是互联网获取的数据,如何将其快速地转化为交通规划软件可用的格式。(2)交通模型包括现状模型和规划模型,构建现状公交模型数据库后,如何将依附于现状道路网络的公交线路应用于规划道路网络、使之与规划网络进行数据关联。(3)局部道路网络的规划方案修改后,必须同步修改公交线路以达到联动,这对工作人员的技术要求非常高。如何能够独立修改两个网络,并重新创建数据关联是需要攻克的难关。目前较为流行的交通规划软件包括TransCAD,VISUM,EMME, CUBE等。这些软件对公交线路的数据库结构描述具有一定差异。TransCAD和VISUM软件允许公交车站位于路段的任意位置,位于路网节点上是一种特例,这种数据库结构来源于GIS 中的动态分段技术。EMME和CUBE软件采用路网节点设置车站,即通过公共汽车走过的节点来描述线路的走向,车站只能放在道路网络的节点上。这些节点既包括真实的交叉口,也包括虚拟的节点。为了提高模型的精度,位于较长路段中间位置的车站需要打断,以适应这些软件只支持“车站位于路网节点上”的特点。公交模型数据库在TransCAD软件中采取一种特殊的数据格式——路线系统(Route System)来存储,它是构建公交(超级)网络,进行公交客流分配的基础数据库。本文介绍如何在TransCAD软件中快速创建公交模型数据库的几种方法。一、利用表格创建Route System该功能在TransCAD的早期版本就有。需要准备一个道路网络,一张表格就可。表格的字段主要包括:Route_Number(线路编号),Node_ID(节点ID,描述线路在路网上走过的节点序列),Stop_Flag(节点是否为站点标记),Stop_Name(站点名称,附加的信息)。对模型师来说,最主要的工作是准备好这个表格。一般有以下几个情况:
(1)你已经获得线路和站点的两个GIS图层,要在路网上新建RouteSystem。比较可惜的是线路图层用不上,只能使用站点图层的数据。可以事先为站点图层的添加属性,为站点所属的线路编号,使用TAG地理运算(参考TransCAD用户手册)获得站点最近的节点ID填充到Node_ID字段,因为都是站点,Stop_Flag的值均设置为1。表格准备好就可以创建RouteSystem了。这种方法建立的RouteSystem,站点都是在路网节点上的,和EMME和CUBE的方法类似,站点之间的线路走向采用最短路径,可用GIS标识公交网使用子路网提高精度。还有比较麻烦的事情是,一条线路的多个站点可能都会被放到同一个节点上,需要检查错误后修正。虽然TransCAD可以检查这种情况并删除重复的站点,但这个做法已经失真了。(2)你在老的路网上已经有一个老的RouteSystem,由于模型的大规模更新,例如局部区域的规划路网大量更新。在这种情况下,你仍旧可以采用Stop图层,按上面的方法创建表格,这时候老的节点编号Node_ID字段不要简单使用地理运算找最近的节点,而是使用Transit菜单下的TagStops to Node菜单。在新的路网,可以检查表格中的节点ID是否在路网丢失(可使用数据表链接查询是否有没有对应到的),对丢失节点ID的站点,重新用地理运算获得新路网最近的节点ID。然后再使用表格创建RouteSystem。当然,如果你有一定的GISDK编程基础,还可以将公交线路走过的那些非站点的节点输出来,放到表格中,Stop_Flag的值设置为0,这样就可以最大限度保证公交线路的走向,而不是站点之间的最短路径。二、利用TransCAD的GTFS数据导入功能GTFS数据是Google公司提出的公交数据通用格式,能方便第三方开发者基于此,开发服务大众的应用服务。TransCAD可以导入GTFS格式的公交数据,自动与路网进行匹配,生成RouteSystem。(1)你已经获得了某个城市的GTFS数据,并且坐标系统和你有的路网一致。这种情况下,你直接使用TransCAD的导入功能即可。导入界面还有一些高级的设置,关于界面的一些解释和使用方法,请参考用户手册。这种情况下,GTFS系统可以导入为RouteSystem并和当前路网产生关联,如果路网和公交线路的地理匹配程度较好,导入的效果还是不错的。不过没有一个工具去查看线路导入的效果如何。(2)你已经获得了某个城市的GTFS数据,但没有路网。这种情况下,TransCAD可以导入,并生成公交线路走过需要的基础路网,但是要用于模型还是要不少基础路网的编辑工作的,不展开描述。自动生成的基础路网,同一走向线路不会重复产生路段,站点处路网产生节点,双向路段生成两个GIS对象(并非TransCAD常规的一个路段对象管理方式),节点相同。(3)你已经获得了线路和站点的两个GIS图层,而不是GTFS数据,并且坐标系统和你的路网一致。这种情况下,你要做的事情就是把你的数据写成GTFS数据格式,你需要了解GTFS数据的具体情况,至于怎么编程GTFS数据,要看个人的编程或者数据操作能力各显神通了。完整的GTFS格式是一个zip格式的压缩包,里面包含13个与公交相关的txt逗号分割符文件以及很多字段,但由于实际能获取互联网公交数据很有限,且最少只要其中的6个文件就可以生成公交线网,把获得的公交数据列放置到相应的位置以符合GTFS的数据格式要求,生成其中的7个txt文件即可导入TransCAD。6个必须文件与1个可选文件说明如下:[1]agency.txt文件(公交公司文件,必须)示例:
agency_id,agency_name
1,上海松江公共交通有限公司
2,上海金山巴士公共交通有限公司此文件主要用到了公交线路属性里面的所属公交公司字段,需要将所有线路的所属公交公司去重,得到唯一的公司名,并赋予公司编号(agency_id)。[2]、calendar.txt文件(服务日期文件,必须)示例:
service_id,monday,tuesday,wednesday,thursday,friday,saturday,sunday,start_date,end_date
1,1,1,1,1,1,1,1,20180101,20991231
2, 1, 1, 1, 1,1, 0, 0,20180101,20991231
3, 0, 0, 0,0,0, 1,1,20180101,20991231这里设置服务日期的模式,每种模式只要一条记录。一般线路都是一周7天运营,因此第一种模式每天都赋值为1,部分线路区分工作日与双休日的,可以设置相应的模式,在对应运营天赋值1,没有运营天赋值为0。[3]routes.txt文件(线路文件,必须)示例:
route_id,agency_id,route_short_name,route_long_name,route_type
1,1,125路U,125路(外环路地铁站-新桥火车站),3
2,1,125路D,125路(新桥火车站-外环路地铁站),3每条分向线路给一个线路ID(route_id),公司ID(agency_id)对应公交公司文件的公司ID,短线路名(route_short_name)与长线路名(route_long_name)就用简化的分向线路名与分向线路名。线路类型(route_type)一般就写3,默认为公交。[4]shapes.txt文件(线路线形文件,可选,但推荐生成)示例:
shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence
1,31.121882,121.387341,1
1,31.122112,121.387421,2
1,31.122762,121.387341,3如果没有此文件,则TransCAD导入后不生成物理站点,且站点之间的线路走向一般按照最短路径生成。由于互联网公交数据一般会提供公交走向的形状点坐标,因此生成此文件可以使线路更符合实际的走向。这里给每一条分向线路赋一个线形ID(shape_id),按照线路形状点坐标顺序码(shape_pt_sequence)排序。[5]trips.txt文件(线路路段文件,必须)示例:
route_id,service_id,trip_id,trip_short_name,shape_id
1,1, 1,125路U,1
2,1, 2,125路D,2线路ID(route_id)、服务模式ID(service_id)、路段ID(trip_id)与线形ID(shape_id)为了方便都可以设置为相同的值。这三个值能让线路路段文件关联线路文件、服务日期文件以及线路线形文件。[6]stops.txt文件(线路站点文件,必须)示例:
stop_id,stop_name,stop_lat,stop_lon
1,外环路地铁站,31.125698,121.398591
2,莘庄地铁站北广场,31.119779,121.390202给每个线路站点设置站点ID(stop_id)。[7]stop_times.txt文件(站点服务时间文件,必须)示例:
trip_id,arrival_time,departure_time,stop_id,stop_sequence,
1,,,1,1
1,,,2,2这里用路段ID(trip_id)与站点ID(stop_id)和线路路段文件与线路站点文件关联。按照站点顺序码(stop_sequence)排序。如果有公交到达每站的时间(arrival_time)与离开每站的时间(departure_time)数据则可以写入。根据获得的公交数据详细程度,还可以参考GTFS的格式规则,补充更多的字段信息。三、利用TransCAD二次开发工具导入虽然TransCAD和VISUM软件都有导入GTFS数据等功能,但实践的操作中,精确度和使用方便还不是那么令人满意。为此,一款TransCAD二次开发工具经过6年的开发,已经非常成熟。1、输入数据(1)公交线路:为线层格式,包括线路名字段,是公交线路唯一的名字,需要区分上下行。(2)站点层:即公交站点图层,要求线路名字段和线路层中的线路名字段对应;站点序号字段:站点图层一条线路中站点的顺序号。(3)公交线路依附的道路网络:需要达到交通模型使用要求的拓扑属性。2、工作原理TransCAD软件的GISDK开发语言提供了创建公交线路系统的全套函数。根据上述输入数据,创建模型数据库的关键技术如下:(1)创建公交线路的缓冲区(Buffer),对道路网络中缓冲区所包含的路段建立子网集合,公交线路经过的路段优先在子网中查找,以约束线路走向。缓冲区越小,约束的精度越高。若路网坐标匹配程度较大,可以适当加大缓冲区,但一般不超过一个街区的宽度。(2)站点可位于路段任意位置是研究最大的难点,一些站点位于交叉口附近,加上位置误差和地图匹配问题,只从空间位置上难以判别站点属于哪一个路段。因此对一条线路的站点序列进行递归前向探索,以确定车站属于哪一个路段并判断公交线路在路段上的方向。 (3)在道路网中,需要对明显不可能的路段进行排除。例如公交站点设置的路段,一般不会是高架、隧道和桥梁,可以通过选择集来限制。比如对于形心连线,其他模型需要的虚拟连线,也包含在路网图层中,但实际上这些路段是不存在的,可以排除公交线路的通行。再如,轨道交通网络不允许地面公交通行,可将地面公交和轨道交通交路通过不同的路网集合分批创建。
软件的一些界面如下。3、扩展功能(1)灵活选择部分线路导入,提高导入精度。可以对线路先进行比较严格的条件(缓冲区参数设置)导入,而对无法导入的线路或者站点错误比较多的线路,进行单独选择后,放宽条件导入。另外,对于新开行的线路进行添加导入,而不需要完全重新创建。(2)线路更新和属性数据加载。线路更新主要用于数据的更新,例如公交线路的走向调整。程序可自动删除公交系统中重名的线路,并更新属性数据,自动进行关联加载。(3)导入数据的检验和修正。公交线路的导入成功率依赖于模型的路网完善程度。例如公交线路经过的地区没有路网,程序可以让线路自动绕行,但若设站的地方没有路网,站点生成只好自动放弃。程序可以自动给出各种错误的报表,以便模型师人工核实少量错误。生成的模型公交系统和原始公交线路的差别检验工作非常重要。附加模块可根据错误报表指定线路名称查询对比,也可逐条浏览。支持批量保存为位图,可用于公交调整线路的查找,便于模型长期维护。公交模型数据创建校验示例如下图。 (4)网站地图数据下载和GIS图层生成工具,地图坐标匹配矫正工具等。4、其他配套功能(1)路段公交站点组群工具:百度等互联网提供的公交站点数据,或其他公交站点数据,针对同一路段上的同一个物理站台处,公交站点不是同一坐标,会出现散点分布。为了适合交通模型使用,宜组群集中到一个点。该工具会根据组群站点的重心对一群站点进行移动聚合。组群的容限是组群范围的约定值。程序会避免同一线路的前后两个站点组群到一起。 (2)重复站点和路段打断处理:考虑到各种交通软件具体应用于公交分配时,需要将站点和节点进行关联。运行该程序可以查找同一条线路中相距过近的重复站点,以设置容限为查找依据,运行后把满足条件的站点置于集合中便于识别,勾选“删除重复站点”则会自动删除重复的站点。对站点距离路网节点大于“路口距离容限”的站点,运行后把满足条件的站点置于集合中便于识别,勾选“打断路段”后,会在满足条件的站点处对路段进行打断。全部操作完成后,会重新自动加载公交系统(Reload RouteSystem)。 (3)中断公交线路修复:对因路段打断而未修复的公交线路(包括路网的人工和自动编辑情况),实现自动修复连通。中断区段的连通所走过的道路,可以进行集合设置,避免公交线路走行形心连线等交通模型辅助线路段。 (4)导出为EMME和Cube软件格式(VISUM可导入):TransCAD软件的公交模型数据库是一般通用格式(站点可以在路段中间),导出为特殊格式自然比较容易实现了。5、应用案例上海市2400余条公交线路,近6万个站点可以在1小时左右成功创建。软件还提供了报错功能(例如站点所在位置的周边地区没有基础道路网络),错误率在2%以内,可根据错误报告利用检验工具,人工修正少量站点和线路。如果按照传统的人工绘制公交线路,即使是比较熟练的模型师,也至少需要100个工作日,该软件大大提高了公交模型数据库的创建效率,并保证了很高的精度。软件在北京、天津、广州、杭州、乌鲁木齐、嘉兴、绍兴、东莞等地也得到成功应用。 您有任何技术问题,请联系我们。邮箱:TransInfoTech@163.com
来源:TransCAD和TransModeler交通软件