如何TransCAD软件导入常用交通规划软件的网络数据?

交通网络的建立是交通模型开发的重要工作之一。道路网络、轨道交通网络、形心连线,轨道出入口步行边、换乘边等辅助性的路段,以及公交线网和站点等,构成了完整的交通模型网络。很多情况下,模型初始建立需要根据autocad图纸或shp等gis文件导入,并编辑拓扑和属性,绘制公交线路等复杂环节,工作量非常大。有些情况下,老的模型已经有一定的网络工作基础,可以进行导入使用。本文介绍transcad软件的网络存储特点,以及如何导入emme、cube和visum等常用交通规划软件的网络数据。
1 交通网络拓扑基本知识
交通网络是有向图,例如道路网,大多数路段双向成对出现,也有部分单向交通组织的路段(单行道、高快速路单向行驶的匝道等),以及交通建模需要将双向道路编辑为分离的两个方向的单向行驶路段,例如高速公路主线一般在建模中需要两个方向分别绘制分离(节点不在一起)的路段。
transcad的路网图层中自带了dir方向字段,表示路段(link)可以的行驶方向。dir的值为0时,表示路段可以双向通行;dir的值为1时,表示只有拓扑方向可以通行;dir的值为-1时,表示只有反拓扑方向可以通行。拓扑方向是指路段存储的起点到终点的方向,例如autocad中,从左到右绘制一个线段,从左到右就是拓扑方向。transcad可以设置路段显示拓扑方向(topology)箭头,也可以显示交通流可以通行的方向(direction of flow)箭头(双向可通行则不显示箭头)。
交通规划软件中,路段的存储模式可以分为两种:分散模式和集中模式。emme、cube和visum等软件均为分散模式存储维护。transcad两种模式兼有,它对路段表(包括gis图形对象)的处理按集中模式进行,也就是我们常见的map中显示的线要素,以及对应的路段数据表dataview。transcad在计算网络模型时则经过创建网络命令,将gis数据库编译成二进制.net文件,用分散模式数据库管理(创建网络.net文件的另外一个好处是,随时在方案管理中选择必要的路网子集合进入.net网络,减少计算判断的网络规模)。软件通过.net文件得到计算结果,然后将结果数据对应到gis图层的线要素,并采用ab/ba字段来表示一个路段两个方向上的数据(例如流量、饱和度)。交通地理信息系统gis-t的一个特殊之处,就是交通是分方向的,路段的双向属性,例如车道数、流量、车速等各种数据通常都是不一样的,需要分开存储。
例如linkid=1的路段,方向值为0,表示可以双向通行,编译为二进制.net文件后,产生了表2中新的linkid=1和linkid=3两个路段用于计算网络路径等。表1中linkid=3的路段为单向通行(dir=1表示拓扑方向通行),在表2中对应的路段为linkid=5。
分散模式的优势是在网络计算时容易实现,如进行最短路径算法时,在路段依起始节点编号排序后,可以直接进行计算。分散模式增加了数据冗余度和数据维护的难度,例如路段长度、路段起始节点编号等具有共性的数据。同时,也大大增加了绘图工作量(双向路段的形状点空间信息重复存储),导致软件绘制大型交通网络工作量加倍。集中模式可以减少数据冗余,适合gis的图形对象管理。很多transcad初学者觉得路网编辑好以后,不明白为何还要创建网络.net文件这个步骤,这是因为transcad使用集中模式管理数据,不能直接进行网络计算。
transcad综合应用了分散模式和集中模型管理的优势,是有其精心设计的,它既减少了数据冗余和绘图效率,也满足了网络计算的要求。emme、cube和visum等采用分散式管理的软件,导入单线的shp文件时,也可以根据dir方向字段,在软件中产生对向路段,以表示路段是双向通行的。gis数据导入这些交通规划软件后,软件的路网编辑模块为用户提供了方便之处,即在编辑路段形状时,总是成对的编辑双向路段的形状。这是必需的,试想如果让用户去重复编辑对向路段的形状,既双倍增加工作量,又无法完全编辑一致的形状。
日常工作中,也有不少用户喜欢在arcgis等gis软件中编辑好路网gis文件,再导入到cube和emme等软件中。但数据导入后恐怕是“只进不出”了,也许您会说:不是可以导出为shp文件吗?是的,可以导出为shp文件,但原先一个双向通行的gis路段,产生了重复形状的两条成对路段。他们再要在arcgis等gis软件中同步编辑,就非常困难了。visum导出,可以选择分方向(双向导出)和不分方向(单线导出),具有灵活性,不存在“只进不出”的问题。
最后,补充一下,visum、cube和emme软件的很多路径基础算法是基于节点的,而transcad则是综合路段和节点数据结构计算的。因此,transcad允许路网中存在起点和终点相同的两个平行路段存在(现实世界也有很多这种情况),但visum、cube和emme软件则不允许存在,一般可以打断其中一个路段。原因是基于节点的路径算法,起点和终点决定了唯一路段,同一个起终点不能有两个路段,否则无法区分了。为了使软件数据互通,transcad开发了自动打断平行路段工具。
2 特殊的公交网络数据
transcad的公交网络数据,存储在特殊的数据格式中,称为路线系统route system。transcad和visum软件允许公交站点位于路段的任意位置,位于路网节点上是一种特例,这种数据结构来源于gis中的动态分段技术。emme和cube软件采用路网节点设置站点,即通过公共汽车走过的节点来描述线路的走向,站点只能放在道路网络的节点上。这些节点既包括真实的交叉口,也包括虚拟的节点,为了提高模型的精度,位于较长路段中间位置的站点需要打断,以适应软件只支持“站点位于路网节点上”的特点。
综合交通网络在逻辑上分为不同交通方式的路段,如轨道交通路段,小汽车路段,公交网络和列车运行交路在按照路线系统route system存储。在物理上,轨道交通和道路网是彼此分离的,公交车、小汽车和货车可能使用的是同一对象路段,彼此相互影响。具有独立路权的brt或者地面有轨电车,则更复杂一些。一般来说,铁路、城市轨道交通等线路需要单独对路径建模,节点用于设置站点,并绘制站点和路网连接的辅助步行边,轨道枢纽站换乘边等。
路线系统route system采用gis的动态分段技术,建立公交路线(route)、路径段(section)、物理站台(physical stop)和线路站点(stop)表。铁路、轨道交通的列车运行交路也一样采用路线系统route system,只不过他们是走在铁路、轨道路段上。公交分配和路径分析,需要使用超级网络进行计算,transcad需要用户根据物理路网和route system建立超级网络文件.tnw文件。超级网络是通过计算机内部存储的,用户不需要关心起构建过程,只要维护好物理路网(道路路网和轨道线等)即可。
下面是emme软件手册中对公交模型超级网络构建的示意图。图2表示网络中有4条公交线路,线路1从节点a直接到节点b,ab为首末站,中间不停站。线路3则表示在x,y,b都停站。要进行公交路径分析和公交客流分配,需要将路上的公交线路建立虚拟的超级网络。图3则表示了该网络的组成:包括上车线,下车线,公交运行线等,实际公交线走过的道路被列入步行的网络,每个步行路段映射了一条公交线路的运行虚拟路段(现实世界中同一路段的步行时间ovt和公交车车行时间ivt的一一映射关系)。在上车虚拟路段上,往往可以设置等待时间等变量(也是软件后台做的事情)。
3 transcad导入交通规划软件的网络数据方法
transcad可以支持很多种交通规划软件的网络数据,包括导入minutp ascii网络文件、minutp二进制网络文件、tranplan ascii网络文件、tranplan 二进制网络文件、tp+和cube/voyager二进制网络文件、trips网络文件、qrsii网络文件、tmodel网络文件、saturn网络文件、直线网络(stick networks)、导入和导出emme网络文件等。可以说其数据接口是非常强大的,同时也得益于其数据结构的普适性。具体可以参考《transcad交通需求模型手册v8.0》相关内容。这里主要介绍常用的emme、cube和visum软件的网络数据导入方法。
3.1 emme网络数据导入和导出
(1)emme路网和公交数据.in的导入
emme路网存储在一个单独的ascii文件中,它包括节点和路段数据。emme公交网存储在两个文件中,一个定义节点和路段文件,另一个定义线路。路网和公交件都在emme“batchout”文件中使用“punch”命令创建。这些ascii文件需要有一个.in扩展名,这样transcad可以将它们识别为emme ascii文件。另外,用户不能在同一个文件夹中存储多于两个emme.in网络文件。
如果您的emme数据库包含了路段形状的ascii文件,导入器可以使用这些信息来定义路段的形状。路段形状文件列出了路段anode-bnode之间的所有坐标。下面是是一个例子:
路段形状文件也需要有一个.in文件,并放在和路网.in文件的同一个文件夹位置。
导入一个emme路网
(1)选择file-importplanning data-emme files来显示import emme files对话框。
(2)选择一个emme文件(带有一个.in扩展名),然后单击open。transcad显示importemme files对话框,在文件夹中列出了所有的.in文件,读取它们的标题,从标题中判断.in文件的类型。
(3)单击network单选按钮。
(4)在layer name和node layername编辑框中为线和节点图层定义名称。
(5)若想将x-y坐标转化成真实地理坐标,单击coordinates,然后在coordinatesystem对话框中导入转换设置。单击ok来返回到importnetwork file对话框。
(6)单击ok。transcad显示save as对话框。
(7)为新的地理文件定义名字,然后单击save。
transcad读取导入文件,建立地理文件,将其在一个新的地图窗口中心显示。
导入一个emme公交网络
(1)选择file-import planningdata-emme files来显示import emme files对话框。
(2)选择一个emme文件(带有一个.in扩展名),然后单击open。transcad显示import emmefiles对话框,在文件家中列出了所有的.in文件,读取它们的标题,从标题中判断.in文件的类型。确信道路和公交文件在同一个目录。
(3)单击route system单选按钮。
(4)在layer name、node layername、route system name和stops layer name编辑框中为新图层定义名称。
(5)若想将x-y坐标转化成真实地理坐标,单击coordinates,然后在coordinatesystem对话框中导入转换设置。单击ok来返回到importnetwork file对话框。
(6)单击ok。transcad显示save as对话框。
(7)为路网地理文件定义名字,然后单击save。transcad显示save networkas对话框。
(8)为transcad网络文件定义文件名字,然后单击save。transcad显示save route system as对话框。
(9)为公交系统定义一个文件名,单击save。
transcad读取导入文件,建立地理文件,将其在一个新的地图窗口中心显示。
实际上,导入公交即导入了路网,因此emme的路网和公交是可以同时导入完成的。
用户还可以将transcad线地理文件和公交系统导出到emme批处理节点、路段和线路文件中。由于emme批处理文件包含每个路段、节点和路线的标准属性字段,用户需要在transcad路段、节点和公交系统中有这些属性,而且用户在运行导出程序时还需要指出这些字段。
另外,节点批文件为每一个形心节点包含一个特殊的标志。如果用户想要将导出的节点文件包含制定的标志,首先创建一系列的形心节点,然后指出导出对话框中的选择设置。
关于导出为emme路网数据的内容,这里不再给出,可参考《transcad交通需求模型手册v8.0》。
3.2 cube网络数据导入
transcad支持导入tp+和cube/voyager路网文件。如果公交路段作为tp+导出的dabse选项,transcad也支持导入tp+公交网络。dbase文件可以在tp+公交网络生成器或者分配程序中产生。
如果cube/tp+网络附加了一个shape文件或者其他更加精确线形的地理文件,您可以使用这些文件在导入过程中来纠正网络线形。网络数据库每个路段需要有“from node id” 和“to node id” 字段。如果包含公交数据,相应的公交线路也会随道路线形调整。
导入 tp+或cube/voyager二进制网络
(1)选择file-importplanning data-import cube/tp+ binary networks显示import cube/tp+ networkfile对话框。
(2)选择一个cube/tp+二进制网络文件点击open。transcad显示importcube/tp+ binary network file对话框。
(3)在编辑框输入路网图层名字和节点名字。
(4)如果要导入公交网络,点击“add transit”并选择包含公交路段和支持路段的dbase文件。
(5)如果要调整线形,勾选conflate确认框,选择参照线图层以及from node和to node 字段并点击ok。
(6)如果网络的坐标系统不是经纬度,点击coordinates按钮设置坐标系统和单位。
(7)点击ok,输入标准地理文件,可选公交系统文件。
transcad读取导入文件,建立地理文件、网络和/或路线系统,然后将它们在一个新的地图中显示出来。
3.3 visum网络数据导入
transcad没有直接做导入visum数据的接口,不过通过visum数据的导出转换,也可以实现对visum数据的转换。
路网的导入(适用于三个软件的导入)
如果想导入路网数据,则可以通过visum、emme或cube导出的shp文件进行导入。步骤如下:
(1)使用visum的“文件-输出-shape文件。。.”导出shp文件。visum导出shp有两种模式,单线和双线。这里说的是双线模式(即导出时选择directed)。双线模式下单向通行的link对向也会生成一个link,需要先删除这些多余的link,这可能是软件输出设计不周全(对visum本身使用不影响)。可以通过typeno字段来选择为自定义的禁止通行link类型的值(例如为0)加以区分,并批量删除。或使用emme命令行导出shp文件,具体命令为:~《emme2shp.mac。得到的是路段和节点两个图层对应的两个shp文件。前面说过,导出的shp,双向可通行的路段,会产生重叠两根对向路段。cube也可以导出相应的shp文件供transcad导入。
(2)使用transcad的shp文件导入功能,同时导入路段和节点文件,保证了原有网络的各种拓扑结构和属性。只有transcad 6.0后期及以上的版本,具有同时导入路段和节点文件功能。节点同时导入必须选择节点shp文件的相应字段。针对visum/emme导出数据会产生重叠两根对向路段的特点,必须勾选match upreverse links(如果不是有重叠两根对向路段的其他软件数据情况,可以不勾选,例如transcad本身的数据导出为路段和节点两个shp文件,或visum的单线导出模式)。如下图:
需要说明的是,transcad导入visum网络时,link和connector也是需要分开执行,最后合并。
visum比较特殊的情况是,还可以按照单线模式导出(即双向通行的路段只导出一根线),这时他会生成新“r_”开头的对向属性字段。仍然可以通过typeno字段来选择为自定义的禁止通行link类型的值(例如为0)加以区分,路段是否双向通行。双向通行的typeno和r_typeno的值都不是0。下图中左边的路段反向r_typeno=0,表示禁止通行,导入transcad后,dir=0改为dir=1即可;右边的路段typeno=0,导入transcad后,dir=0改为dir=-1即可。这个通过选择集很容易批量操作。当然,上面导入方法不需要勾选match upreverse links。
公交线路的导入
visum可以导出公交数据为shp文件,或者mdb和ms sql数据库。如果要导入shp文件的公交数据到route system,可以参考transcad快速创建公交模型数据库的方法一文中的利用transcad二次开发工具导入。需要说明的是,理论上这是一种有损导入,但参数设置严格的情况下,几乎可以实现无损导入。另外,如果采用mdb和ms sql数据库做一些二次开发导入,则相对容易实现无损导入。顺便说一下,目前visum有一个导入transcad网络数据的插件,没有应用transcad本身的路网和公交网络的数据关系,仅仅是依靠空间关系导入,属于效果较差的有损导入。
4 结语
transcad是基于gis的交通规划软件,更是一个专业的gis-t软件,因此在数据的兼容性上有较大的优势。基于transcad的交通网络数据库,实际上可以很方便通过二次开发导出其他常用交通规划软件的网络数据。还有很多transcad维护公交数据的二次开发工具,例如cube文件的导入导出、线路写成特殊的表格形式等等,如果您遇到困难可以联系我们。另外一点不同的是,transcad把形心、形心连线当做网络中特殊的节点和路段,用户可以灵活方便地通过集合和查询去定义,但要求对软件操作较为熟练并熟悉原理。其他几个软件,对形心、形心连线采取单独的管理,用户容易理解,但灵活性不如transcad。例如矩阵,交通小区的扩容等情况,或是一张网络中可以transcad随时定义全市模型的形心,或是现状轨道网客流分配的形心,或是高速公路出入口流量分配的形心等。当然,如此灵活定义形心,离不开配套的矩阵的索引技术。关于矩阵索引,请参考深入理解transcad中的矩阵id索引转换。


微软将放弃对Windows Phone系统的支持
人工智能的未来将是为人类“增强智能”
汽车电子开发人员应对新硬件、新架构和新开发流程的方法
精准可靠的工具:螺丝扭力测试仪
工业物联网领域进步的七大趋势
如何TransCAD软件导入常用交通规划软件的网络数据?
彩电特殊关机亮点/彩斑的检修思路
iPhone7上市时间确定 国行iPhone7两款均为32GB起步
我的颜值担当小米6,就问你还有多久来?会和小米平板3一起么
制冷机组cop一般多少 制冷系统cop怎么计算
开关电源在专业功率放大器中的应用
《2020上汽通用汽车车联数据报告》正式发布
LG预计于2024年向三星供应90至110万块W-OLED电视面板
基于抄板精度问题
灯具的种类百科:你分得清哪些是可以调光的吗
TRUEC2技术的高性能LED射灯方案
下拉电阻的作用原理
FreeRTOS的事件标志组
关于EMC问题的测试
使用IP平台开发FPGA并进行应用设计