一种基于众源路网数据的多因子路网匹配方法及系统与流程

文档序号:17466072发布日期:2019-04-20 05:31阅读:340来源:国知局
一种基于众源路网数据的多因子路网匹配方法及系统与流程

本发明涉及到众源数据应用领域,更具体地,是一种基于多因子路网匹配实现众源道路网匹配的方法。



背景技术:

近些年来,vgi(volunteeredgeographicinformation,志愿者地理信息)数据蓬勃发展,越来越多的自愿者在各vgi平台上上传带有丰富信息的地理空间数据。众源数据覆盖程度广、更新频率高、获取方便快捷,每条数据不仅拥有几何信息,还拥有较为丰富的属性信息。特别是众源路网数据,数据量大,实时性强。osm(openstreetmap)作为最成功的vgi平台,可供任意用户上传、编辑、更新、下载数据。从2017年4月份到2018年4月份,osm数据由42亿多条上涨到49亿条,其中全球道路数据早已超过1亿条。

越来越多的研究者、机构和组织期望对丰富的众源路网数据进行研究和广泛的应用,包括对其质量进行评价、路网的变化检测、多源路网数据的融合等方面。以上研究和应用的基础都与众源路网数据的匹配相关。

通过匹配众源路网数据与参考路网数据,可以确定每对匹配道路的距离误差、方向误差等,进而推算出众源道路网相对于参考路网的差距,即众源路网数据的几何质量。如果参考路网数据有准确、丰富的属性信息,还可以进一步度量众源路网数据的属性信息的完整度和正确率。利用同一地区、不同时期的众源路网数据的匹配,能够对道路进行更新检测,从而挖掘出新的道路,也可辅助路网数据的丰富。对同一地区、不同源的路网数据进行匹配,可以比较二者道路间的差异,即相对其它道路而言,不同源数据缺少的道路;众源路网数据与参考路网数据匹配,还可计算众源路网数据的完整性。对不同源的路网数据进行匹配,挖掘出不同源缺少的道路数据,就可互相弥补、综合,然后进行拓扑纠正等处理,还能辅助实现多源道路网数据的融合。

众源路网数据质量各异,单从一个方面衡量道路的匹配对象,并不一定能够找到正确的结果,往往需要从多个方面进行综合判断。研究道路匹配指标和各匹配指标的科学提取方式,才能保障道路匹配的正确与否。本发明结合道路之间的距离、方向差和缓冲区重叠度等多匹配指标,计算出道路间的匹配程度,能够提高道路的匹配正确率。另外设计和开发众源路网数据匹配系统,能够可视化匹配道路和显示计算出的各匹配对匹配因子、匹配度,可为路网数据质量评价、融合等提供技术支持。



技术实现要素:

针对上述问题,本发明提出一种基于多因子路网匹配算法实现众源道路网匹配的技术方案。

本发明的技术方案提供一种基于众源路网数据的多因子路网匹配方法,包括如下步骤,

步骤一,初始化,包括两种参与匹配的路网数据的导入、匹配因子阈值的设置和路网数据的预处理;

步骤二,正匹配,包括循环遍历目标数据中的每条道路,获取匹配的参考道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为目标道路的匹配对象;

步骤三,反匹配,包括循环遍历参考数据中的每条道路,获取匹配的目标道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为参考道路的匹配对象;

步骤四,对步骤二和步骤三中的匹配结果进行去重操作,去除掉重复的道路匹配对,输出最终所有匹配对的匹配信息。

而且,步骤二中单条道路匹配的实现如下,

(1)首先用maxmatchval表示当前的最大匹配度,初始值为double类型值的最小值db_min;

(2)遍历参考道路,判断目标道路与参考道路的外扩外接矩形embr是否相交,如果相交,则认为是目标道路的候选参考道路;

(3)计算目标道路与候选参考道路的sm_hd距离,并得到匹配段;如果计算出的sm_hd距离大于等于sm_hd距离阈值distol,则继续判断下一条候选参考道路;反之,执行下一步;其中,sm_hd表示中值豪斯多夫距离;

(4)计算目标道路与候选参考道路各自匹配段的方向角差值angle,如果angle大于等于相应方向角差值阈值angtol,则继续判断下一条候选参考道路;反之,执行下一步;

(5)以sm_hd距离为缓冲半径,建立目标道路与候选参考道路各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

(6)计算当前候选匹配对的匹配度matchval,如果匹配度小于匹配度阈值matchtol或小于等于当前的最大匹配度maxmatchval,则继续匹配下一条候选参考道路,反之将matchval赋值给maxmatchval;

(7)匹配完所有参考道路后,比较maxmatchval与matchtol的大小。如果maxmatchval小于matchtol,说明没有与该目标道路匹配的参考道路,则继续匹配下一条目标道路;反之,将匹配对的匹配信息记录下来并输出。

而且,步骤三中单条道路匹配的实现如下,

(1)首先用maxmatchval表示当前的最大匹配度,初始值为double类型值的最小值db_min;

(2)遍历目标道路,判断参考道路与目标道路的外扩外接矩形embr是否相交,如果相交,则认为是参考道路的候选目标道路;

(3)计算参考道路与候选目标道路的sm_hd距离,并得到匹配段;如果计算出的sm_hd距离大于等于sm_hd距离阈值distol,则继续判断下一条候选目标道路;反之,执行下一步;其中,sm_hd表示中值豪斯多夫距离;

(4)计算参考道路与候选目标道路各自匹配段的方向角差值angle,如果angle大于等于相应方向角差值阈值angtol,则继续判断下一条候选目标道路;反之,执行下一步;

(5)以sm_hd距离为缓冲半径,建立参考道路与候选目标道路各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

(6)计算当前候选匹配对的匹配度matchval,如果匹配度小于匹配度阈值matchtol或小于等于当前的最大匹配度maxmatchval,则继续匹配下一条候选目标道路,反之将matchval赋值给maxmatchval;

(7)匹配完所有目标道路后,比较maxmatchval与matchtol的大小。如果maxmatchval小于matchtol,说明没有与该参考道路匹配的目标道路,则继续匹配下一条参考道路;反之,将匹配对的匹配信息记录下来并输出。

而且,所述路网数据的预处理,包括空间参考系的统一、每条道路外扩外接矩形embr的计算以及道路结点的增加。

而且,匹配度计算,是用于衡量一对道路是否匹配的指标,匹配度的计算公式为其中,mpct[i]表示第i个匹配对的匹配度,smhd[i]表示第i个匹配对间的中值豪斯多夫距离,angle[i]表示第i个匹配对间的夹角,ipct[i]表示匹配对缓冲区重叠度,ω1、ω2、ω3分别为sm_hd距离、匹配对道路夹角和匹配对缓冲区重叠度的预设权值,且ω1+ω2+ω3=1。

本发明还相应提供一种基于众源路网数据的多因子路网匹配系统,包括如下模块,

初始化模块,用于两种参与匹配的路网数据的导入、匹配因子阈值的设置和路网数据的预处理;

正匹配模块,用于循环遍历目标数据中的每条道路,获取匹配的参考道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为目标道路的匹配对象;

反匹配模块,用于循环遍历参考数据中的每条道路,获取匹配的目标道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为参考道路的匹配对象;

去重模块,用于对正匹配模块和反匹配模块中的匹配结果进行去重操作,去除掉重复的道路匹配对,输出最终所有匹配对的匹配信息。

而且,正匹配模块中单条道路匹配的实现如下,

(1)首先用maxmatchval表示当前的最大匹配度,初始值为double类型值的最小值db_min;

(2)遍历参考道路,判断目标道路与参考道路的外扩外接矩形embr是否相交,如果相交,则认为是目标道路的候选参考道路;

(3)计算目标道路与候选参考道路的sm_hd距离,并得到匹配段;如果计算出的sm_hd距离大于等于sm_hd距离阈值distol,则继续判断下一条候选参考道路;反之,执行下一步;其中,sm_hd表示中值豪斯多夫距离;

(4)计算目标道路与候选参考道路各自匹配段的方向角差值angle,如果angle大于等于相应方向角差值阈值angtol,则继续判断下一条候选参考道路;反之,执行下一步;

(5)以sm_hd距离为缓冲半径,建立目标道路与候选参考道路各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

(6)计算当前候选匹配对的匹配度matchval,如果匹配度小于匹配度阈值matchtol或小于等于当前的最大匹配度maxmatchval,则继续匹配下一条候选参考道路,反之将matchval赋值给maxmatchval;

(7)匹配完所有参考道路后,比较maxmatchval与matchtol的大小。如果maxmatchval小于matchtol,说明没有与该目标道路匹配的参考道路,则继续匹配下一条目标道路;反之,将匹配对的匹配信息记录下来并输出。

而且,反匹配模块中单条道路匹配的实现如下,

(1)首先用maxmatchval表示当前的最大匹配度,初始值为double类型值的最小值db_min;

(2)遍历目标道路,判断参考道路与目标道路的外扩外接矩形embr是否相交,如果相交,则认为是参考道路的候选目标道路;

(3)计算参考道路与候选目标道路的sm_hd距离,并得到匹配段;如果计算出的sm_hd距离大于等于sm_hd距离阈值distol,则继续判断下一条候选目标道路;反之,执行下一步;其中,sm_hd表示中值豪斯多夫距离;

(4)计算参考道路与候选目标道路各自匹配段的方向角差值angle,如果angle大于等于相应方向角差值阈值angtol,则继续判断下一条候选目标道路;反之,执行下一步;

(5)以sm_hd距离为缓冲半径,建立参考道路与候选目标道路各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

(6)计算当前候选匹配对的匹配度matchval,如果匹配度小于匹配度阈值matchtol或小于等于当前的最大匹配度maxmatchval,则继续匹配下一条候选目标道路,反之将matchval赋值给maxmatchval;

(7)匹配完所有目标道路后,比较maxmatchval与matchtol的大小。如果maxmatchval小于matchtol,说明没有与该参考道路匹配的目标道路,则继续匹配下一条参考道路;反之,将匹配对的匹配信息记录下来并输出。

而且,所述路网数据的预处理,包括空间参考系的统一、每条道路外扩外接矩形embr的计算以及道路结点的增加。

而且,匹配度计算,是用于衡量一对道路是否匹配的指标,匹配度的计算公式为其中,mpct[i]表示第i个匹配对的匹配度,smhd[i]表示第i个匹配对间的中值豪斯多夫距离,angle[i]表示第i个匹配对间的夹角,ipct[i]表示匹配对缓冲区重叠度,ω1、ω2、ω3分别为sm_hd距离、匹配对道路夹角和匹配对缓冲区重叠度的预设权值,且ω1+ω2+ω3=1。

本发明提出了基于众源道路数据的多因子路网匹配技术方案,匹配数量完整,匹配速度快,且有助于路网数据质量评价、路网数据融合等。最重要的是,本发明为了提高道路匹配的正确率,利用多因子综合判断道路是否匹配,并且用较为合理的计算方式来度量各匹配因子。路网匹配后,能辅助实现多源道路网数据的融合、路网数据属性信息的丰富和道路网的变化检测等,因此,研究道路网匹配算法,提高其匹配的正确率与完整性,具有重要意义。

附图说明

图1是本发明实施例多源路网数据匹配的总体流程。

图2是本发明实施例单条道路匹配的详细流程图。

图3是本发明实施例embr计算示意图。

图4是本发明实施例sm_hd计算示意图。

图5是本发明实施例道路凸多边形计算流程图。

图6是本发明实施例凸多边形计算示例图。

图7是本发明实施例mabr计算示例图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施案例,并参照附图,对本发明进一步详细说明。

本发明考虑了其它路网匹配方法中匹配指标的单一性和匹配因子计算方式的不合理处,利用完善后的smhd距离因子、方向角差值因子和重叠度因子,综合提取两条道路的匹配度,并具体地计算出两条匹配道路的匹配段。该发明对于多源道路网数据的融合、路网数据质量评价、路网数据属性信息的丰富和道路网的变化检测等具有重要意义。

参见图1,考虑到矢量道路的距离偏移、方向偏移等,本发明提出了一种利用多因子综合计算多源道路数据是否匹配的方法。本发明实施例使用openstreetmap(osm)路网数据作为目标数据,美国地质调查局(usgs)路网数据作为参考数据,有效地揭示了多因子路网匹配的合理性。

本发明实施例提供的一种基于多源路网数据的多因子匹配方法,如图1所示。其中,设目标道路数据有n条道路,参考道路数据有m条道路,i表示当前参与匹配的目标道路的标号,tar_i是第i条目标道路,i++表示继续取下一条目标道路参与匹配,i<n表示目标道路还没有匹配完,因此会继续匹配下去,具体匹配步骤如下:

步骤一,初始化,包括两种参与匹配的路网数据的导入、匹配因子阈值的设置和路网数据的预处理。其中,参与匹配的路网数据分为目标数据与参考数据;匹配因子阈值包括sm_hd距离阈值distol和匹配对方向角差值阈值angtol,以及匹配度阈值matchtol,具体实施时,可预先根据需要设置各阈值的取值,其中sm_hd表示中值豪斯多夫距离,匹配对方向角差值阈值也即匹配段夹角阈值;路网数据的预处理操作,根据需要,可包括空间参考系的统一、每条道路外扩外接矩形(embr)的计算、道路结点的增加等操作。

步骤二,正匹配,循环遍历目标数据中的每条道路,获取与之匹配的参考道路。如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的参考道路作为目标道路的匹配对象;同时,将每个道路匹配对的匹配结果信息记录下来;

其中,单条道路匹配流程如下:

(1)首先用maxmatchval表示当前的最大匹配度,初始值为double类型值的最小值db_min;实施例中,定义matchval是目标道路与候选参考道路之间的匹配度,而maxmatchval是目标道路与所有候选参考道路之间的匹配度的最大值,即目标道路和最终匹配的参考道路之间的匹配度;

(2)遍历参考道路,判断目标道路与参考道路的embr是否相交,如果相交,则将其作为目标道路的匹配候选道路;

(3)计算目标道路与候选参考道路的sm_hd距离,并得到二者匹配段;如果计算出的sm_hd距离大于等于sm_hd距离阈值distol,则继续判断下一条候选参考道路;反之,执行下一步;

(4)计算目标道路与候选参考道路各自匹配段的方向角差值,即angle,如果angle大于等于方向角差值阈值angtol,则继续判断下一条候选参考道路;反之,执行下一步;

(5)以sm_hd为缓冲半径,建立目标道路与候选参考道路各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

(6)计算当前候选匹配对的匹配度matchval,如果匹配度小于阈值matchtol或小于等于maxmatchval,则继续匹配下一条候选参考道路,反之将matchval赋值给maxmatchval;

(7)匹配完所有参考道路后,比较maxmatchval与matchtol的大小。如果maxmatchval小于matchtol,说明没有与该目标道路匹配的参考道路,则继续匹配下一条目标道路;反之,将匹配对的匹配信息记录下来并输出。

为便于实施参考起见,提供更具体的流程如下:

如图2所示,其中,k表示当前参与匹配的参考道路的标号,即re_k表示第k条参考道路;k++表示继续匹配下一条参考道路;k<m表示参考道路还没有遍历完,可继续匹配下一条参考道路。执行以下步骤,

步骤2.1,输入当前匹配的目标道路tar_i以及参考路网数据,所述参考路网数据中包含m条参考道路;

步骤2.2,令变量k=0,maxmatchval=db_min;

步骤2.3,计算当前匹配的目标道路tar_i以及当前参与匹配的参考道路re_k的中值豪斯多夫距离sm_hd值,并得到二者匹配段;

步骤2.4,判断当前匹配的目标道路tar_i以及当前参与匹配的参考道路re_k的外扩外接矩形embr是否相交,如果相交,则将re_k作为目标道路的匹配候选道路,进入步骤2.5,否则返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配;

步骤2.5,根据步骤2.3所得sm_hd进行判断,如果计算出的sm_hd距离小于相应阈值distol,进入步骤2.6,否则返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配;

步骤2.6,计算当前匹配的目标道路tar_i以及匹配候选道路re_k各自匹配段的方向角差值angle,如果angle小于angtol,进入步骤2.7,否则返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配;

步骤2.7,计算当前匹配的目标道路tar_i以及匹配候选道路re_k的重叠度,所述重叠度的计算方式为,以sm_hd为半径,建立当前匹配的目标道路tar_i以及匹配候选道路re_k各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

步骤2.8,计算当前候选匹配对(即当前匹配的目标道路tar_i以及匹配候选道路re_k)的匹配度matchval,判断匹配度matchval是否大于等于相应阈值matchtol,是则进入步骤2.9,否则则返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配;

步骤2.9,判断匹配度matchval是否大于当前的最大匹配度maxmatchval,是则令matchval=maxmatchval,即将matchval赋值给当前的最大匹配度maxmatchval,然后返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配;否则直接返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配;

步骤2.10,k++,即更新k=k+1,然后判断是否k小于m,若是则返回步骤2.3,基于下一条当前参与匹配的参考道路re_k继续进行匹配,若否则进入步骤2.11;

步骤2.11,判断当前的最大匹配度maxmatchval是否小于相应阈值matchtol,说明没有与该目标道路匹配的参考道路,则继续匹配下一条目标道路;反之,将匹配对的匹配信息记录下来并输出。

步骤三,反匹配,完成步骤二后,循环遍历参考数据中的每条道路,获取与之匹配的目标道路,进行道路反匹配,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的目标道路作为参考道路的匹配对象。即计算出与每条参考道路匹配的目标道路,同时记录下匹配对的匹配结果;每条参考道路匹配过程同步骤二中目标道路匹配过程。

基本实现如下:

(1)首先用maxmatchval表示当前的最大匹配度,初始值为double类型值的最小值db_min;

(2)遍历目标道路,判断参考道路与目标道路的外扩外接矩形embr是否相交,如果相交,则认为是参考道路的候选目标道路;

(3)计算参考道路与候选目标道路的sm_hd距离,并得到匹配段;如果计算出的sm_hd距离大于等于sm_hd距离阈值distol,则继续判断下一条候选目标道路;反之,执行下一步;其中,sm_hd表示中值豪斯多夫距离;

(4)计算参考道路与候选目标道路各自匹配段的方向角差值angle,如果angle大于等于相应方向角差值阈值angtol,则继续判断下一条候选目标道路;反之,执行下一步;

(5)以sm_hd距离为缓冲半径,建立参考道路与候选目标道路各自匹配段的缓冲区,用缓冲区交集面积与并集面积的比值作为二者重叠度;

(6)计算当前候选匹配对的匹配度matchval,如果匹配度小于匹配度阈值matchtol或小于等于当前的最大匹配度maxmatchval,则继续匹配下一条候选目标道路,反之将matchval赋值给maxmatchval;

(7)匹配完所有目标道路后,比较maxmatchval与matchtol的大小。如果maxmatchval小于matchtol,说明没有与该参考道路匹配的目标道路,则继续匹配下一条参考道路;反之,将匹配对的匹配信息记录下来并输出。

步骤四,对步骤二和步骤三中的匹配结果进行去重操作,即去除掉重复的道路匹配对,最后输出所有匹配对的匹配信息。其中,开展步骤三中道路反匹配操作的原因是:可能存在一条目标道路同时与多条参考道路匹配的情况,此时如果只进行正匹配,就会导致仅一条参考道路与目标道路匹配上,这就使得最终匹配结果存在漏匹配的情况。反匹配的目的就是为了避免漏匹配,尽可能地实现路网完整匹配。

具体实施时,流程可设置为:

步骤1,输入目标路网数据以及参考路网数据,所述目标路网数据中包含n条目标道路,所述参考路网数据中包含m条参考道路;进行目标路网数据以及参考路网数据的数据预处理;

具体实施时,可假设有数据集a和数据集b,先以数据集a为目标路网数据,以数据集b为参考路网数据,同时设置路网匹配因子阈值,包括sm_hd距离阈值distol和匹配对方向角差值阈值angtol,以及匹配度阈值matchtol,进行正匹配。

步骤2,进行正匹配,实现如下,

1)令变量i=0,表示开始正匹配第一条目标道路;

2)针对当前匹配的目标道路tar_i,获取与之匹配的参考道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为目标道路的匹配对象,并记录该道路匹配对的匹配结果信息,然后进入步骤3),否则直接进入步骤3);

3),i++,即令i=i+1,然后判断是否i小于n,若是则返回步骤2),针对下一条当前匹配的目标道路tar_i继续进行匹配,若否则进入步骤3。

步骤3,进行反匹配;

此时,可视为以数据集b为目标路网数据,以数据集a为参考路网数据,再次执行步骤2。可以简化流程实现。

步骤4,去除步骤2和步骤3所得结果中的重复匹配对,输出最终的匹配结果。

为便于实施参考起见,介绍实施例的预处理方法和各匹配因子计算方式:

外扩外接矩形embr计算,是为了提高路网匹配的效率。如图3所示,首先根据道路结点的坐标值(x,y)计算出所有坐标中的最大最小x和y坐标,即xmin、xmax、ymin、ymax,再以a(xmin,ymin)、b(xmin,ymax)、c(xmax,ymax)、d(xmax,ymin)四个点为结点得到道路(road)的外接矩形mbr。然后让mbr的每条边都往外扩1/2的距离阈值distol,即以a1(xmin-distol/2,ymin-distol/2)、b1(xmin-distol/2,ymax+distol/2)、c1(xmax+distol/2,ymax+distol/2)、d1(xmax+distol/2,ymin-distol/2)四个点为结点得到道路的外扩外接矩形embr。如果两条道路的embr不相交,则在阈值distol范围内,两者肯定不是同名道路。如此剔除后,可大大提高匹配效率,避免不必要的计算。

中值豪斯多夫距离sm_hd计算,sm_hd计算公式如下:

length(road1)<length(road2)

其中,road1为较短道路,road2为较长道路,p1是road1的结点,p2是road2的结点,length(road1)表示road1的长度,length(road2)表示road2的长度,表示road2中的所有节点p2与road1中节点p1的最短距离,表示取数列的中值。sm_hd(road1,road2)表示:当road1长度小于road2时,从road2的结点里找出与road1中各结点最近的点,即匹配点,并计算二者间距,再根据过滤规则选择是否保留匹配点对间距,取所有过滤后的匹配点对间距组成的数列的中值。filter表示过滤规则:当一条道路的多个结点同时与另一道路的首结点或尾节点匹配时,如图4中两条道路上分别有结点a1、a2、a3、a4和b1、b2、b3、b4、b5,a1和a2同时与b1结点匹配,只保留最近的匹配点对,即a2与b1。这样计算出的sm_hd距离更能反映两条道路的距离。

道路结点增加,是为了提高路网匹配的精度,在计算sm_hd距离之前,将按照预设的间隔距离,在原始道路上增加若干结点,使距离的计算结果更精确。道路结点增加后,计算sm_hd时,道路结点匹配对的匹配度更高,计算出的sm_hd也会更合理。

匹配段方向差计算,是用于衡量两条道路的方向偏移,计算方式为:用两条参与匹配道路匹配段的最小外接矩形(mabr)的长边方向角之差的绝对值作为匹配对的角度差度量指标,其中,mabr是描述多边形或线状物体常用的形态参数。计算方向角差值的关键在于道路匹配段的凸多边形和mabr的计算。凸多边形计算前需要根据“角度最小、距离最大”原则对道路结点进行排序,从而得到道路对应的多边形,具体做法是先找出所有y坐标值最小的结点,再从中选择x坐标值最小的结点作为多边形起始点;然后计算其它结点与起始点连线与水平线的夹角和距离,先根据夹角由小到大以次将其它结点排在起始点后方,如果存在夹角相同的情况,就剔除距离小的结点,只保留其中距离最大的结点。

参见图5凸多边形计算流程图和图6的示意图,为便于实施参考起见,设道路坐标组array(一个道路结点的x、y坐标在array里用相邻数值记录)为依据上述排序原则计算出的道路多边形坐标组;ncount表示道路结点数;ncount<4表示当前道路只有两个或三个结点,也就无需计算凸多边形;p0表示凸多边形计算的起点,也就是道路结点中y最小的结点;bhasconcave是bool类型的变量,用来标识array数组中是否有凹点;i表示道路中当前参与计算的结点序号;p0-pi+1表示第0个和第i+1个道路结点连成的线段;pi-pi+2表示第i个和第i+2个道路结点连成的线段;bhasconcave=true表示当前计算的第i个结点为凹点;i++表示继续计算下一个结点;i+3<ncount表示道路结点未遍历完,需继续遍历下一个结点。具体的流程如下:

(1)输入道路坐标组array,按照角度最小、距离最大原则对array重排序,判断道路结点数ncount是否少于4,是的话,无需计算凸多边形,结束流程,否则执行下一步;

(2)选择凸多边形结点中y最小的结点,如果最小y值对应多个结点,则选道路坐标组array中x值最小的结点作为起点p0;

(3)先假设bool变量bhasconcave=false,即假设当前计算的结点不为凹点;当前计算的结点序号为i,初始化i=1;

(4)判断线段p0-pi+1与pi-pi+2是否有交点,有则进入步骤(6),继续遍历下一个结点,没有则执行下一步骤(5);

(5)此时段p0-pi+1与pi-pi+2没有交点,判断pi+1结点是凹点,并从array数组中去掉pi+1结点对应的坐标值,同时将bhasconcave改为true,进入步骤(6),继续遍历下一个结点;

(6)i++,令i=i+1;判断是否i+3小于<ncount,若是则返回步骤(4)继续遍历下一个结点,若否则说明所有节点遍历完成,进入步骤(7);

(7)所有节点遍历完后,判断bhasconcave是否等于true,如果是的话,说明当前计算轮次中有节点为凹点,则返回步骤(3),基于当前的道路坐标组array重新执行步骤(3)-(5);如果bhasconcave=false,则返回array数组,该数组保留下的有序坐标点连接起来就是凸多边形。

如图6所示,道路坐标组array中有道路结点p1,p2,p3,p4,p5,p6,p7,依据图5的算法流程,原始点中p3、p6为凹点,在剔除并对道路结点重新编号之后得到路网l的凸多边形p={p1,p2,p3,p4,p5}。在获取了凸多边形之后,即可计算最小外接矩形mabr。

如图7所示,为便于实施参考起见,以凸多边形p为例说明mabr的计算,假设凸多边形p有结点p1,p2,p3,p4,p5,mabr的计算流程为:

(1)先任意确定一条起始边,假设是p3p4,以p3、p4为垂点做p3p4的垂线l3、l4;

(2)先判断l3是否穿过多边形,如果否,则保留;如果是,则沿着p4p3方向平移l3,直至与最远端的p2点相交位置,此时获得新的垂线l2;同理判断l4,此时沿着p3p4方向获取新的垂线l5;

(3)计算经过凸多边形上其他点(p1、p2、p5)而与p3p4平行的线与凸多边形是否相交,发现经过p1的l1是满足的;

(4)此时由l1、l2、l5、p3p4所在直线组成的矩形,即abcd,就是该凸多边形的外接矩形rec1;

(5)同理,重复以上步骤,依次计算不同边p2p3、p1p2、p5p1、p4p5对应的外接矩形rec2、rec3、rec4、rec5;

(6)计算rec1、rec2、rec3、rec4、rec5的面积,取其中面积最小的矩形作为该凸多边形的最小外接矩形。

匹配度计算,是用于衡量一对道路是否匹配的指标,匹配度的计算公式为其中,mpct[i]表示第i个匹配对的匹配度,smhd[i]表示第i个匹配对间的中值豪斯多夫距离,angle[i]表示第i个匹配对间的夹角,ipct[i]表示匹配对缓冲区重叠度,ω1、ω2、ω3分别为sm_hd距离、匹配对道路夹角和匹配对缓冲区重叠度的权值,且ω1+ω2+ω3=1,具体实施时可以预先设置取值,实施例中优选设置ω1=0.25,ω2=0.15,ω3=0.60。

本发明实施例提供的一种利用多因子进行道路网匹配的方法,具体流程实现可视为包括以下步骤:

步骤1,待匹配路网数据及参考路网数据的采集,主要通过在线下载或购买的方式。获取完数据后,可能还需要对数据的格式进行转换,例如openstreetmap数据原始格式是xml格式或二进制pbf格式。实施例中支持通用的矢量数据格式,即esri的shapefile(.shp)或filegeodatabase(.gdb)两种矢量数据格式,这两种数据格式是当前使用最为广泛和通用的矢量数据格式。本实施例的待匹配路网数据来自openstreetmap官网,下载地址为(https://www.openstreetmap.org/),下载后,利用osmtranslator工具进行分类及格式转换,分类转换得到osm路网数据。参考路网数据来自美国地质调查局usgs,下载链接为https://viewer.nationalmap.gov/basic/#productsearch。试验区选取美国纽约雪城。

步骤2,路网数据空间参考系统一。osm数据与usgs数据的空间参考是不一样的,因此需要做空间参考的统一,这里都转换为wgs84大地坐标系,因为统一为平面坐标系的话,会因为投影变换导致投影误差的产生。

步骤3,路网数据等间距外扩外接矩形计算。使用gdal/ogr读取每条道路的坐标信息,计算出道路的外接矩形,即经度和纬度方向的最大最小坐标值包围的外接矩形,再根据设定的smhd距离阈值,等距外扩该外接矩形。该步骤是为了加快后面的匹配速度。因为道路外扩外接矩形不相交的时候,两条道路的smhd距离必然是超过距离阈值的,减少了其它匹配指标的计算。

步骤4,路网数据结点增加操作。本发明实施例选用豪斯多夫距离度量两条道路之间的距离,为了使计算的距离更为合理,在每条路的每一段每间隔5米增加一个节点,使得道路节点更多,匹配时查找到的匹配节点更为合理准确。

步骤5,正匹配之距离计算。以每条osm道路为基准,寻找与其外扩外接矩形相交的usgs道路,并计算出每条usgs道路与osm道路的匹配点对及其间距,将匹配点对间距集的中值作为两条道路的间距,如果间距超过了距离阈值,则认为两条道路不可能是同名道路,反之,进行下一步。即正匹配时,以osm道路为目标道路,以usgs道路为参考道路。

步骤6,正匹配之匹配段计算。步骤5中计算出smhd距离的同时,可以得到两条道路首尾节点的匹配点,将首尾匹配点及首尾中间的匹配点点对组合起来,就是两条道路的匹配段。

步骤7,正匹配之角度计算。对步骤5中每两条道路匹配段的节点按照“角度最小、距离最大”原则进行规则排序,然后计算出道路匹配段的凸包。凸包计算完成后,计算出两条道路匹配段的最小面积外接矩形。根据最小面积外接矩形的长度差异,确定长边并计算出长边的方向角作为道路匹配段的方向角,然后比较两条道路匹配段的方向角差值阈值,如果超过阈值范围,则判定两条道路是不匹配的,反之进行下一步。

步骤8,正匹配之重叠度计算。根据步骤5中计算出的道路间距,对两条道路匹配段进行缓冲区分析,分别得到两条道路匹配段的缓冲区,然后计算出两个缓冲区的交集及交集的面积,再计算出两个缓冲区的并集及并集的面积,用交集面积除上并集面积,作为两条道路的重叠度。

步骤9,正匹配之匹配度计算。综合步骤5到步骤8中的匹配指标,利用匹配度计算公式,计算出每对匹配道路的匹配度,比较道路匹配度与匹配度阈值的大小,如果超过了匹配度阈值,则认为两条道路是不匹配的,反之两条道路可认为是可能匹配的。

步骤10,正匹配之匹配道路判定。循环遍历计算完每条usgs道路与osm道路的匹配度后,选取匹配度最大的作为osm道路的匹配道路。

步骤11,记录匹配信息。osm道路匹配完成后,将每个道路匹配对的匹配指标记录下来,以用于后续道路完整性等计算。

步骤12,反匹配。正匹配完成后,以usgs道路为基准,重复步骤5到步骤11,得到每条usgs道路的匹配对象,当某匹配对已经在正匹配中出现时,不记录该匹配对信息,避免匹配对的重复记录。即反匹配时,以osm道路为参考道路,以usgs道路为目标道路。

步骤13,匹配结果的可视化。利用本发明中的道路匹配系统,可以定位每对匹配道路。选中每对匹配道路,系统会展示出道路匹配对的匹配信息,包括道路间距、道路夹角、道路重叠度和道路完整度等信息。选中道路每个匹配指标,可以查看到各匹配指标的统计信息,包括平均值、标准差等。另外还可以计算两种数据源的道路匹配完整性,即参与匹配的osm道路匹配段总长度与usgs道路匹配段的总长度比值。通过该比值可以衡量出待匹配道路osm道路的完整性。根据匹配道路间距、夹角等指标的标准差,可以定量出osm道路相对usgs道路的偏移程度和误差,为osm道路几何质量评价提供定量的判断结果。

具体实施时,可采用软件技术实现流程的运行,也可以采用软件技术实现模块化系统。本发明实施例还相应提供一种基于众源路网数据的多因子路网匹配系统,包括如下模块,

初始化模块,用于两种参与匹配的路网数据的导入、匹配因子阈值的设置和路网数据的预处理;

正匹配模块,用于循环遍历目标数据中的每条道路,获取匹配的参考道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为目标道路的匹配对象;

反匹配模块,用于循环遍历参考数据中的每条道路,获取匹配的目标道路,如果寻找到满足阈值条件的候选匹配道路,从中选取匹配度最高的道路作为参考道路的匹配对象;

去重模块,用于对正匹配模块和反匹配模块中的匹配结果进行去重操作,去除掉重复的道路匹配对,输出最终所得所有匹配对的匹配信息。

各模块具体实现参见相应步骤,本发明不予赘述。

具体实施时,根据用户使用习惯,也可以分功能模型设置实现系统,包括如下模块:

矢量数据操作模块,用于矢量路网数据的导入、阅读、缩放、漫游、查询、可视化等,方便用户直观地操作、阅读、分析、查询路网数据;

路网匹配模块,基于多因子路网匹配算法找到同名道路匹配对,并记录同名道路匹配对的匹配结果;

结果输出模块,用于匹配结果的可视化,以图表等形式显示匹配结果;系统单侧列表逐行记录并显示所有匹配对的匹配结果,通过鼠标单击选中某条匹配对结果,系统即可自动定位到并显示该匹配对中的目标道路与参考道路,同时显示两条道路的匹配段。

路网匹配模块实现如下:

界面输入道路匹配因子的阈值;

对所有目标道路与参考道路进行空间参考统一、计算embr和增加结点等预处理操作;具体地,对于非wgs84坐标系的道路,将其结点坐标转换为wgs84的坐标,反之,无需转换;按照一定的间隔距离,对所有目标道路与参考道路增加若干结点;

执行路网正匹配与反匹配操作。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其它的任何未违背本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化均应为等效的置换方式,都包含在本发明的保护范围之内。

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