实现OSM真实地图适配于微观交通仿真引擎的转换方法

文档序号:37795670发布日期:2024-04-30 17:05阅读:6来源:国知局
实现OSM真实地图适配于微观交通仿真引擎的转换方法

本发明涉及微观交通仿真,具体地说,涉及一种实现osm真实地图适配于微观交通仿真引擎的转换方法。


背景技术:

1、openstreetmap(以下简称osm)的目标是创造一个内容自由且能让所有人编辑的世界地图,并且让一般的移动设备有方便的导航方案。osm的地图可由用户以手持gps设备、航空摄影照片、卫星影像、政府开放资料、其他自由内容提供。只要用户对有关区域有所认识就可参与绘制。地图的向量数据以开放数据库许可方式许可。

2、osm使用的资料格式是地形数据结构,当中由四个核心的元素(也称为原始资料)。

3、(1)节点(node):存储经纬度,表示位置,但不存储节点在地图上的实际大小,比如说一个景点或者山峰,或一家商店或餐厅,或是做为路径的一部分。节点可依附于路径与关系。

4、(2)路径(way):有序排列的节点,以折线的形式呈现,也能循环回起始节点形成封闭路径,可以循环路径或以多边形区域的方式呈现。这类原始资料可用于呈为线性资料,例如街道、河流等,或一个多边形区域,例如农田、公园、停车场、建筑物、校园或者是湖泊、森林。路径必须有节点才能显示于地图上,可依附于关系,路径资料可计算出长度、或多边形的面积、周长。

5、(3)关系(relation):有排序的节点、路径和关系(三类原始资料在这里统称“成员”),在这里每个成员选择性拥有一个"角色"(字符串),以决定该成员于此关系中的性质。关系是用来表示各个原始资料(节点、路径和关系)的关系,例如道路的转弯限制,由不同路径所组成的边界,一条国道、省道或铁路路线,或者一个区域中中间空缺区域(例如被环形建筑物包围的中庭,或水体中的小岛)的多重多边形,这时"角色"字符串就能用来形容它们之间的关系。

6、(4)k=v标签(tag):键值对(key-value pairs,键值都是字符串),用来存储地图上物件的元数据(物件的类型,名字和物理特性),赋予osm资料其意义,而能表示现实世界中存在的某件事物,与有关其事物的信息。标签无法独立存在,它们必须依附在一个已存在的物件,也就是节点,路径或关系。地图中物件映射的关系(本体)和标签在osm的wiki上有比较详细的介绍,用法为键=值;key=value。一个原始资料称为一个物件,每个物件的同一个键,只能设置一个值。例如建筑物是building=yes,至于住宅区街道,则为highway=residential,这是osm中最频繁被使用的标签。

7、微观交通仿真平台用于交通仿真、流量预测、决策管理。微观交通仿真平台对路网的描述主要在路网绘制工具及仿真引擎各自的配置文件中体现。自研路网绘制工具通过读取配置文件中的每一位数据进行物理路网绘制。

8、配置文件中以r开始的一行数据表示这是一条道路的描述信息,如一行数据为r,2,6,1,2,2080,2016,0,2755,1823,0,4,4,10,10,共计有15位。第一位表示这是一条道路的数据,第二位表示这条道路的id,第三位表示这条道路左边的交叉口(cross)或边缘点(marginalpoint)的id,第四位表示这条道路右边的交叉口(cross)或边缘点(marginalpoint)的id,第五位表示这条道路baseline的点数总数,点数总数是根据道路的几何形状变化的,若形状比较复杂,则用于描述道路走向的坐标点会更多,第六至第八位与第九到第十一位表示baseline中每个点的精确坐标,第十二位表示正向车道的车道总数,第十三位表示反向车道的车道总数,第十四位表示每条车道的宽度,第十五位用作保留位。

9、使用c开头的数据表示这是一个交叉口的描述信息,如c,1,0,5,2,3,5,4,0,4,2745,1785,0,2820,1760,0,2843,1838,0,2767,1859,0,16的一行数据,共计23位。第一位表示这是一个交叉路口的数据,第二位表示这个交叉路口的id,第三位表示交叉路口的类型,其中0表示十字路口,1表示t形路口,2表示环形四路口、3表示五向路口,第四位表示路口逻辑连接车道数,第五至第八位分别表示交叉路口西、东、北、南方向上所连接的道路id,第九位通过布尔值表示交叉口是否为五向路口,第十位表示描述交叉路口形状的点数总数,第十一至第十三位、第十四至第十六位、第十七至十九位、第二十至二十二位为点数坐标,他们共同描述了交叉路口的形状,第二十三位表示交叉路口的半径。

10、在路网绘制工具中绘制好物理路网后,将此路网转换为仿真引擎所需配置文件。物理路网可被抽象为link、lane、cross、marginalpoint、baseline。link表示一条双向道路,lane表示一条车道,cross表示一个交叉路口,marginalpoint表示一个边缘点,baseline表示一条车道的走向。link通过path_id与一条baseline唯一对应,并使用link_start与link_end描述道路的起始与终止连接位置,连接位置是交叉路口或者边缘点,这与sumo描述edge走向的from和to类似,边缘点为终止位置的抽象表示。lane通过link_id对应所属道路,并通过left_turn、straight_turn、right_turn所置位识别车道走向。cross通过多个形状点位置计算出中心点坐标,并同时获取id以及type参数用于表示道路逻辑。

11、现如今许多人将osm应用于不同的领域,但是将osm地图数据应用于微观交通仿真的实例少之又少。微观交通仿真引擎现如今使用绘制地图进行交通仿真,绘制地图虽然能够接近真实路网的几何形态、物理拓扑,但始终与真实地图路网存在差异。几何形态的改变会导致仿真精度缺失、仿真结果不准确、仿真预测不匹配等问题,故无法在仿真结束后给出合理的仿真数据。


技术实现思路

1、本发明的内容是提供一种实现osm真实地图适配于微观交通仿真引擎的转换方法,其能够为微观交通仿真平台提供真实路网数据支持,旨在提高仿真引擎路网条件,提高仿真精度、提高仿真结果准确性、提高仿真真实性与实时性。

2、根据本发明的实现osm真实地图适配于微观交通仿真引擎的转换方法,其包括以下步骤:

3、步骤1:使用xml.dom.minidom中的parse方法获取到osm路网文件.osm,并获取此文档对象data;

4、步骤2:识别文档data中的node标签,将node标签以键值对key:node_id,value:node节点进行保存;

5、步骤3:获取所有的way标签;

6、步骤4:在包含所有way的集合中通过ref标签下的name参数区分道路,将name相同的道路存放在一起;

7、步骤5:进行道路合并操作,道路合并的目标是合并osm中用多个way表示的城市主干道,并在合并之后对区间的所有道路进行处理;

8、步骤6:计算出所有的cross_id,通过道路两两相交求出所有的交叉点所对应的cross,并以key:cross_id,value:相关道路集合的键值对进行保存;

9、步骤7:根据cross对道路进行osm分段操作;

10、步骤8:在osm分段过程结束后,对交叉路口的道路进行拟合,得到非线性方程组;

11、步骤9:通过gekko法、牛顿法以及弦割法对非线性方程组求解并进行分析和对比,得到正确的退距位置。

12、作为优选,步骤3中,tag标签中存在highway的way标签用来表示道路。

13、作为优选,步骤5中,道路合并操作包括城市主干道之间的合并操作和小路与城市主干道的合并操作。

14、作为优选,城市主干道之间的合并操作如下:

15、初始化三个字典dict1、dict2、dict3,设保存城市主干路所有路段的数组为s,从s中随机提取出第一个元素sij置于dict1,若第二个元素与dict1中的任一元素有重合点,则存入dict1,并通过各自端点合并成一条道路,否则存入dict2,第三个元素若与dict1或dict2任一元素有交,则存入对应dicti=1or2,否则存入dict3;在dict3为空同时dict2中没有独立元素且dict1中所有路段已合为一条道路时即完成了多路合并。

16、作为优选,小路与城市主干道的合并操作如下:

17、小路与城市主干道的交叉路口分为两种情况,其一是穿透型,其二是间断型;穿透型是指两条小路有交点,合并起来能穿过城市主干道;间断型指两条小路没有交点,无法穿过城市主干道;设主干道为wm1、wm2,穿透型小路为ws1、ws2,ws1,ws2终止于p1,p1是wm1、ws1、ws2的交点,p2是wm2、ws2的交点;间断型小路为ws3、ws4,p3是wm1、ws3的交点,p4是wm2、ws4的交点;在wm1与wm2中随机舍去一条,根据对称性不论舍弃哪条处理逻辑相同,需要对小路进行延长与缩短处理;

18、若舍去wm1,遍历交点集合,判断点是否在wm1上,为真则判断点count=2或count=3;若p1点是count=3且deleteway=1,则删除wm1后不能找到ws1与wm2的交叉路口位置,且ws2超出了终点wm2,此时需要将p2点坐标添加到ws1最临近点处,最临近点通过ws1所包含的p1点进行抉择,同时需要将ws2对应nd中p2与p1之间的数据舍去,其中nd为用于描述道路走向的点集合;若p2点是count=2且deleteway=0,p2和p4在逻辑上相同,此时需要考虑p2是不是ws2和ws4一端的终止点,p2不是ws2的终止点则会进行类似于p1的延长缩短处理,p4是ws4的终止点则不做处理;p3是ws3的终止点且在wm1上,则需要进行延长处理,ws3与ws4是没有逻辑上对应关系,此时需将wm2的所有基线点与p3进行欧几里得度量的处理,找出欧式距离最小的点pm,其中(xm,ym)为pm的坐标,将此点坐标添加到ws3,作为其终止点;距离处理如下所示:

19、

20、在以上道路合并构建过程中涉及到了点的经纬度转xy坐标的计算,此过程如下所示:

21、(1)将经纬度lon,lat以及海拔h转换为弧度:

22、

23、(2)完成转换后,根据长半轴a和短半轴b进行偏心率e1,e2的计算:

24、

25、(3)根据偏心率计算卯酉圈半径n,再分别将经纬度lon,lat转换为yx:

26、

27、作为优选,步骤7中,若道路为交叉路口,osm使用两个way标签描述,依据保存信息,以单个cross为基准,将其相关的两条way划分为仿真所需的四条link,并将这四条link与cross进行对应。

28、作为优选,步骤8中,具体为:

29、记交叉路口的四条边分别为∈1,∈2,∈3,∈4,依据仿真引擎内部逻辑,道路与交叉口交点位置必须位于∈1,∈2,∈3,∈4的中点处,即是正确连接点pcl1,pcl2,pcl3,pcl4位置;

30、处理笔直道路时,记交叉路口的半径为ri(i=0,1,2,3,...),其中下标与交叉路口类型相对应,道路与交叉路口的正确连接点pcl1,pcl2,pcl3,pcl4应位于以交叉路口中心点为圆心,ri(i=0,1,2,3,...)为半径的圆上;

31、若直线道路的基线baseline为(α21,α22,...,α2m)和(α31,α32,...,α3k),采用直线拟合曲线的方法求取正确连接点;选取baseline离交点最近的点αi(n-1)与中心点(xc,yc)相连,pcl2,pcl3由下式求得:

32、

33、处理弯曲道路时,将way的baseline进行曲线拟合,曲线拟合过程如下:

34、使用一维向量q构造范德蒙矩阵v,v有n+1列、m行,生成线性方程组如下所示:

35、

36、设a是实非奇异矩阵,存在正交矩阵q和上三角矩阵m使得a=qm,对v进行qm分解,则拟合多项式p(q)=p1qn+p2qn-1+...+pnq+pn+1由下式算得:

37、

38、得到拟合多项式p(q)后,正确连接点pcl1,pcl4由下式算得:

39、

40、本发明对交叉口相关道路进行退距操作,将osm真实路网地图转换成微观交通仿真引擎所需真实仿真路网,可将真实仿真路网进行可视化展示并能使用仿真引擎进行交通仿真,提高仿真精度、提高仿真结果准确性、提高仿真真实性与实时性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1