一种矢量地图的快速纠偏方法及系统与流程

文档序号:12666336阅读:648来源:国知局
一种矢量地图的快速纠偏方法及系统与流程

本发明涉及一种纠偏方法,特别是一种应用于矢量地图的快速纠偏方法;本发明还提供了一种用于实现上述方法的纠偏系统。



背景技术:

随着GIS在各行业不断推广应用,基于特定行业应用的GIS平台不断涌现。作为行业应用基础的矢量电子地图数据的质量直接影响上层行业应用人员的感受。特别在电力等行业,电网等专题数据往往基于矢量电子地图数据进行标绘,矢量电子地图的空间精度、地物细致程度往往影响专题数据的空间精度。与此同时,多数矢量电子地图生产厂家在生产过程中没有严格建立统一的控制网,导致生产出的矢量电子地图空间精度不高,具体表现在不同年份同一位置数据不套和,同一年份相邻区域不同厂家生产的数据存在错位,同一地区内部不同区域的地物偏移方向不一致等情况。随着地图数据的不断更新,基于旧版矢量电子地图数据标绘的专题数据往往与新版地图数据不套和,影响行业GIS系统运行。

为此,行业应用时往往需要将新生产的矢量电子地图与旧版数据或标准数据进行套和处理,即矢量电子地图纠偏处理。现有矢量电子地图纠偏处理主要基于GIS软件的人工半自动处理,其主要处理方法包括以下步骤:

①数据分块:常规的GIS软件对于数据纠偏有一定的数据量限制,超过数据上限将无法得到纠偏结果。

②各区块内部新旧矢量电子地图数据同名点选取:选取同名点作为纠偏算法的输入条件。

③基于纠偏算法的数据纠正:常规GIS软件提供相似变换、仿射变换、多项式变换、投影变换以及橡皮筋变换等五种纠偏算法。

④基于人工目视判别的数据修正:由于上述纠偏算法的局限性,纠偏结果往往不理想,多数情况下需要人工进行后续的修正。

⑤数据合并:将①中分块纠正后的数据进行合并。

⑥数据接边及拓扑检查与修正:由于数据分块纠正,在边缘处部分地物会发生错位,需要进行接边处理和拓扑修正。

然而,现有的地图纠偏处理方法存在以下的技术缺陷:

现有行业矢量电子地图纠偏过程中,主要存在如下技术问题:

1、无法同时处理大范围矢量数据,降低工作效率。大范围数据处理需要进行分块处理,并在后续还应进行数据合并、接边拓扑修正等工作,步骤复杂,需要大量人工干预,降低工作效率。

2、现有纠偏算法适用性不强,纠偏效果不理想。如前所述,对于数据纠偏的软件而言,主要采取五种纠偏算法,即相似变换、仿射变换、多项式变换、投影变换以及橡皮筋变换。其中,对于相似变换而言,由于只需提供2个控制点,因此只能进行平移、缩放的纠正,而不能进行旋转、扭曲纠正。

对于仿射变换及多项式变换而言,可以进行数据平移、缩放、旋转、扭曲等纠正,但纠偏过程属于整体纠偏,当数据偏移方向、大小有所不同时,难以达到理想效果。

对于投影变换而言,由于要求数据存在严格的物理模型,往往是矢量电子地图所无法到达的。

对于橡皮筋变换而言,该纠偏方法往往涉及局部变形的微调,大范围使用时往往出现数据变形等情况。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供了一种可快速进行数据纠偏的地图纠偏方法及系统。

本发明通过以下的方案实现:一种矢量地图的快速纠偏方法,包括以下步骤:

步骤1:提取误差连线及纠偏区域,所述误差连线为同一地物在待纠偏数据与参照数据之间的连线;

步骤2:误差连线空间聚类;

步骤3:构建误差同质区域;

步骤4:基于误差同质区域的矢量电子地图纠偏。

相比于现有技术,本发明通过基于同质区进行矢量地图的纠偏,可以实现可快速进行数据纠偏,相较主流GIS软件有着纠偏区域大、速度快、效果理想等优点。基于空间误差同质区的矢量电子地图纠偏可以有效地解决由于缺乏统一控制基准、差异化的生产流程等因素造成大范围矢量电子地图在空间偏移方向、偏移量不一致的情况,通过误差连线空间聚类形成的误差同质区,可以有效地分离空间误差方向不一致的数据,保证数据纠偏的精度。同时,该纠偏算法无需进行数据分块,因此可以有效地保持数据的拓扑关系。

作为本发明的进一步改进,所述步骤2中包括以下步骤:

步骤21:提取误差连线起点,生成起点ESRI SHP文件;

步骤22:提取误差连线起点以及终点坐标;

步骤23:利用起点、终点坐标计算误差连线与正东方向顺时针夹角θ;

步骤24:使用k-means进行聚类分析,类聚属性为误差连线与正东方向顺时针夹角θ,作为相应聚类结果以聚类结果字段的形式保存在起点ESRI SHP文件中。

具体的,在本步骤中,从误差连线入手,一方面可以提取误差连线的误差角度分析数据的偏移情况,从而通过误差角度空间聚类形成误差同质区域,分而治之地进行纠偏;另一方面,误差连线还可以作为后续纠偏所使用的纠偏控制点,不用二次进行控制点的选取,提高工作效率。

作为本发明的进一步改进,所述步骤3中具体包括以下步骤:

步骤31:生成初始同质区域,通过矢量电子地图外边界与道路中心线将待纠偏数据分割为多个街区;

步骤32:确定同质区类别,分别遍历待纠偏的各个街区,统计每个街区内部误差聚类结果的类别众数作为该街区的聚类类别,并统计该区域内的聚类点个数;

步骤33:同质区的化简与合并,先遍历各同质区域的聚类类别,将相邻且聚类类别一致的同质区进行合并,再重新统计合并后的同质区域内的聚类结果类别众数以及聚类点个数;

步骤34:小区域合并,将区域内聚类点个数小于4个,面积小于1平方千米的同质区域合并至相邻的面积最小的同质区中。

作为本发明的进一步改进,所述步骤4中具体包括:

步骤41:生成误差连线空间索引;

步骤42:生成各同质区三角网;

步骤43:数据纠偏。

作为本发明的进一步改进,所述步骤41中,当误差连线小于128个时,提取误差连线起点,在纠偏范围内构建两层空间四叉树索引;当误差连线大于128且小于2048个时,提取误差连线起点,在纠偏范围内构建三层空间四叉树索引;当误差连线大于2048个时,提取误差连线起点,在纠偏范围内构建四层空间四叉树索引。通过加入空间四叉树索引、KDTree等优化策略,算法的性能大大提升,可以进行大批量的矢量电子地图纠偏,无需数据分块、拼接,算法速度较主流GIS平台有很大提升。

作为本发明的进一步改进,所述步骤42中,具体为:分别遍历各误差同质区,提取同质区内部的误差连线,以误差连线起点为离散点分别构建各同质区的Delaunay三角网。在同一同质区内部,通过构建Delaunay三角网进行区域内部的剖分,对于待纠偏数据,只需提取所在三角面片的顶点以及相邻三角面片中最近三个点进行空间内插即可得到纠偏后数据,一方面可以充分利用误差连线,保证纠偏的细致程度,另一方面通过6个点的空间内插可以有效的提高算法抗噪能力,防止地物出现变形。

作为本发明的进一步改进,所述步骤43中,具体包括以下步骤:

步骤431:读取待纠偏数据D,获取该纠偏要素的坐标点集F1、F2……Fn

步骤432:依次读取坐标点集,判断当前待纠偏点Fm是否为要素第一个点F1,如果是则转到步骤433;如果不是第一个点,则利用射线法判断该点Fm是否在上一个Fm-1所在的三角面片中,如果不在则转到步骤433,如果在则转到步骤436;

步骤433:寻找该纠偏点Fm所在四叉树空间索引的叶子节点以及所在同质区,并提取相应叶子节点中所包含的该同质区的三角网顶点,即对应叶子节点所包含的该同质区的误差连线起点;

步骤434:遍历所有提取的三角网顶点,寻找Fm所在的三角面片,如果找不到转向步骤435,若找到则转到步骤436;

步骤435:若Fm没有落在任意一个三角面片内,则寻找距离最近的三角面片替代;

步骤436:提取三角面片的顶点p1、p2、p3以及这三个顶点所对应的全部三角面片顶点q1、q2……qn,其中q1、q2……qn中不包含p1、p2、p3

步骤437:在q1、q2……qn中寻找距离Fm距离最近的三个点r1、r2、r3

步骤438:计算p1、p2、p3、r1、r2、r3六个点误差连线起点、终点在x、y方向上的距离dx=X终点-X起点、dy=Y终点-Y起点,即dxp1…dxr3,dyp1…dyr3

步骤439:计算Fm在x、y方向上的增量dxFm、dyFm

步骤440:计算点Fm纠偏后点的坐标,公式为

步骤441:判断Fm是否为最后一个点,若是则转向步骤442,若不是获取纠偏要素的下一个点Fm+1,转向步骤432;

步骤442:输出纠偏后的要素D′,判断是否为最后一个待纠偏数据,若是则结束,若不是则转向步骤431。

本发明还提供了一种矢量地图的快速纠偏系统,其包括:

提取模块,用于提取误差连线及纠偏区域;所述误差连线为同一地物在待纠偏数据与参照数据之间的连线;

空间聚类模块,用于进行误差连线的空间聚类;

构建模块,用于构建误差同质区域;

纠偏模块,用于基于误差同质区域的矢量电子地图的纠偏。

作为本发明的进一步改进,所述空间聚类模块包括:

起点生成模块,用于提取误差连线起点,生成起点ESRI SHP文件;

坐标提取模块,用于提取误差连线起点以及终点坐标;

夹角计算模块,用于利用起点、终点坐标计算误差连线与正东方向顺时针夹角θ;

聚类分析模块,用于进行聚类分析,类聚属性为误差连线与正东方向顺时针夹角θ,作为相应聚类结果以聚类结果字段的形式保存在起点ESRI SHP文件中。

作为本发明的进一步改进,所述构建模块中包括:

初始同质区域生成模块,用于生成初始同质区域,通过矢量电子地图外边界与道路中心线将待纠偏数据分割为多个街区;

统计模块,用于确定同质区类别,分别遍历待纠偏的各个街区,统计每个街区内部误差聚类结果的类别众数作为该街区的聚类类别,并统计该区域内的聚类点个数;

简化合并模块,用于对同质区进行化简与合并,先遍历各同质区域的聚类类别,将相邻且聚类类别一致的同质区进行合并,再重新统计合并后的同质区域内的聚类结果类别众数以及聚类点个数;

小区域合并模块,用于对小区域进行合并,将区域内聚类点个数小于4个,面积小于1平方千米的同质区域合并至相邻的面积最小的同质区中。

作为本发明的进一步改进,所述纠偏模块中包括:

索引生成模块,用于生成误差连线空间索引;

三角网生成模块,用于生成各同质区三角网;

数据纠偏模块,用于进行数据纠偏。

作为本发明的进一步改进,所述索引生成模块中,当误差连线小于128个时,提取误差连线起点,在纠偏范围内构建两层空间四叉树索引;当误差连线大于128且小于2048个时,提取误差连线起点,在纠偏范围内构建三层空间四叉树索引;当误差连线大于2048个时,提取误差连线起点,在纠偏范围内构建四层空间四叉树索引。

作为本发明的进一步改进,所述三角网生成模块分别遍历各误差同质区,提取同质区内部的误差连线,以误差连线起点为离散点分别构建各同质区的Delaunay三角网。

作为本发明的进一步改进,所述数据纠偏模块包括:纠偏数据读取模块、坐标点集读取模块、三角网顶点提取模块、三角面片寻找模块、替代模块、三角面片顶点提取模块、距离寻找模块、距离计算模块、增量计算模块、坐标计算模块、判断模块和输出模块;

所述纠偏数据读取模块,用于读取待纠偏数据D,获取该纠偏要素的坐标点集F1、F2……Fn

所述坐标点集读取模块:依次读取坐标点集,判断当前待纠偏点Fm是否为要素第一个点F1,如果是则发送至所述三角网顶点提取模块;如果不是第一个点,则利用射线法判断该点Fm是否在上一个Fm-1所在的三角面片中,如果不在则发送至所述三角网顶点提取模块,如果在则发送至所述三角面片顶点提取模块;

所述三角网顶点提取模块,用于寻找该纠偏点Fm所在四叉树空间索引的叶子节点以及所在同质区,并提取相应叶子节点中所包含的该同质区的三角网顶点,即对应叶子节点所包含的该同质区的误差连线起点;

所述三角面片寻找模块,用于遍历所有提取的三角网顶点,寻找Fm所在的三角面片,如果找不到则发送至所述替代模块,若找到则发送至所述三角面片顶点提取模块;

所述替代模块,用于当Fm没有落在任意一个三角面片内,则寻找距离最近的三角面片替代;

所述三角面片顶点提取模块,用于提取三角面片的顶点p1、p2、p3以及这三个顶点所对应的全部三角面片顶点q1、q2……qn,其中q1、q2……qn中不包含p1、p2、p3

所述距离寻找模块,用于在q1、q2……qn中寻找距离Fm距离最近的三个点r1、r2、r3

所述距离计算模块,用于计算p1、p2、p3、r1、r2、r3六个点误差连线起点、终点在x、y方向上的距离dx=X终点-X起点、dy=Y终点-Y起点,即dxp1…dxr3,dyp1…dyr3

所述增量计算模块,用于计算Fm在x、y方向上的增量dxFm、dyFm

所述坐标计算模块,用于计算点Fm纠偏后点的坐标,公式为

所述判断模块,用于判断Fm是否为最后一个点,若是则发送至所述输出模块,若不是获取纠偏要素的下一个点Fm+1,发送至所述坐标点集读取模块;

所述输出模块,用于输出纠偏后的要素D′,判断是否为最后一个待纠偏数据,若是则结束,若不是则发送至所述纠偏数据读取模块。

综上所述,本发明具体以下的有益效果:

1.从误差连线入手,一方面可以提取误差连线的误差角度分析数据的偏移情况,从而通过误差角度空间聚类形成误差同质区域,分而治之地进行纠偏;另一方面,误差连线还可以作为后续纠偏所使用的纠偏控制点,不用二次进行控制点的选取,提高工作效率。

2.基于空间误差同质区的矢量电子地图纠偏可以有效地解决由于缺乏统一控制基准、差异化的生产流程等因素造成大范围矢量电子地图在空间偏移方向、偏移量不一致的情况,通过误差连线空间聚类形成的误差同质区,可以有效地分离空间误差方向不一致的数据,保证数据纠偏的精度。同时,该纠偏算法无需进行数据分块,因此可以有效地保持数据的拓扑关系。

3.在同一同质区内部,通过构建Delaunay三角网进行区域内部的剖分,对于待纠偏数据,只需提取所在三角面片的顶点以及相邻三角面片中最近三个点进行空间内插即可得到纠偏后数据,一方面可以充分利用误差连线,保证纠偏的细致程度,另一方面通过6个点的空间内插可以有效的提高算法抗噪能力,防止地物出现变形。

4.通过加入空间四叉树索引、KDTree等优化策略,算法的性能大大提升,可以进行大批量的矢量电子地图纠偏,无需数据分块、拼接,算法速度较主流GIS平台有很大提升。

为了更好地理解和实施,下面结合附图详细说明本发明。

附图说明

图1是本发明的矢量地图的快速纠偏方法的步骤流程图。

图2是步骤S2的具体流程图。

图3是步骤S3的步骤流程图。

图4是步骤S4的步骤流程图。

图5是本发明的矢量地图的快速纠偏系统的连接框图。

图6是数据纠偏模块的连接框图。

图7是本实例中房屋向东北方向偏移的矢量影像套和示意图图。

图8是本实施例的房屋向东南方向偏移的矢量影像套和示意图。

图9是本实施例的道路为分界线,左侧与右侧数据的偏移量、偏移方向均不一致的矢量数据示意图。

图10是本实施例的误差连线的空间分布图。

图11是本实施例的初始同质区的示意图。

图12是本实施例的构建初始同质区的模型图。

图13是本实施例中确定同质区类别的模型图。

图14是本实施例的化简合并后的同质区的示意图。

图15是本实施例的化简合并后的同质区的模型图。

图16是本实施例合并小区域后的同质区的示意图。

图17是本实施例合并小区域后的同质区的模型图。

图18是本发明的基于同质区的分区纠偏结果与数据统一纠偏结果的对比示意图。

具体实施方式

本发明为了解决现有技术在进行地图纠偏时效率低、处理数据量小等缺点,提供了一种可以快速进行地图纠偏的方法和系统。以下结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

在本具体实施例中,为简化描述,以下新生产的矢量电子地图数据统称为待纠偏数据,旧版数据或标准数据统称为参照数据,纠偏后的数据统称为已纠偏数据。

请参阅图1,其为本发明的矢量地图的快速纠偏方法的步骤流程图。

本发明通过以下的方案实现:一种矢量地图的快速纠偏方法,包括以下步骤:

步骤S1:提取误差连线及纠偏区域,所述误差连线为同一地物在待纠偏数据与参照数据之间的连线。

在本步骤中,为保证新生产的矢量电子地图与旧版数据或标准数据的空间套和一致性,需要进行新版矢量电子地图数据与旧版数据或标准数据空间误差连线的提取。误差连线即为同一地物在待纠偏数据与参照数据之间的连线,其提取标准为:①误差连线的起点和终点分别对应待纠偏数据以及参照数据的同名点,误差连线的起点终点顺序不得更改;②误差连线应均匀分布于纠偏区域内部,对于地物特别密集处,可适当加密;③不要选择易于变化的地物点,比如林地的边界,田埂,江河中沙州的拐角;④如果选择房屋上的角点,应考虑其投影差。

同时某些区域的待纠偏数据已和标准数据套和,因此需要人工划出需要纠偏的区域,在后续纠偏流程中,只有该区域内部的数据将被纠偏。

步骤S2:误差连线空间聚类。

由于存在不同年份同一位置数据不套和,同一年份相邻区域不同厂家生产的数据存在错位,同一地区内部不同区域的地物偏移方向不一致等情况,若采取同一纠偏参数,统一纠偏的方式,往往不能得到很好的纠偏效果。为此,需要将误差方向近似且空间上聚集分布的数据归为一类,一起纠偏。具体的,请同时参阅图2,其为本步骤S2的具体流程图。所述步骤S2中具体包括以下步骤:

步骤S21:提取误差连线起点,生成起点ESRI SHP文件;

步骤S22:提取误差连线起点以及终点坐标;

步骤S23:利用起点、终点坐标计算误差连线与正东方向顺时针夹角θ;

步骤S24:使用k-means进行聚类分析,类聚属性为误差连线与正东方向顺时针夹角θ,作为相应聚类结果以聚类结果字段的形式保存在起点ESRI SHP文件中。

其中,在本实施例中采用误差连线与正东方向顺时针夹角θ作为聚类属性。而作为本实施例的其他变形方式,可以其他参数,比如可以采用误差连线与其他方向的夹角等变形方式。

步骤S3:构建误差同质区域。

在本步骤中,通过基于误差连线夹角的空间聚类后,可直观展示出待纠偏数据空间偏移情况,基于此,可构建误差同质区域,同一误差区域内的地物由于偏移角度的相似性,可采用同一组纠偏参数。

其中,请同时参阅图3,其为本步骤S3的步骤流程图。在本步骤中,构建误差同质区域步骤可分:

步骤S31:生成初始同质区域,通过矢量电子地图外边界与道路中心线将待纠偏数据分割为多个街区。

由于待纠偏数据为矢量电子地图,因此各要素地物均被路网分割成各个街区,通过矢量电子地图外边界与道路中心线可将待纠偏数据分割为多个细小的街区。

步骤S32:确定同质区类别,分别遍历待纠偏的各个街区,统计每个街区内部误差聚类结果的类别众数作为该街区的聚类类别,并统计该区域内的聚类点个数。

步骤S33:同质区的化简与合并,先遍历各同质区域的聚类类别,将相邻且聚类类别一致的同质区进行合并,再重新统计合并后的同质区域内的聚类结果类别众数以及聚类点个数。

步骤S34:小区域合并,将区域内聚类点个数小于4个,面积小于1平方千米的同质区域合并至相邻的面积最小的同质区中。

步骤S4:基于误差同质区域的矢量电子地图纠偏。

根据误差连线的偏移方向进行空间聚类所形成的误差同质区域可以定义为各区域内的误差偏移方向最相似,区域间的误差偏移方向不相似。基于此,针对同一误差同质区域,可使用其中所有的误差连线作为输入进行地物纠偏。由于涉及海量电子地图纠偏,地物总量巨大,因此在算法优化时,引入四叉树和KD-Tree等空间索引技术,加快算法运行速度。

请同时参阅图4,其为本步骤S4的步骤流程图。所述步骤S4中具体包括:

步骤S41:生成误差连线空间索引。

具体的,在相同的纠偏范围内,随着误差连线的增加,纠偏算法的复杂程度也大大增加,为提高纠偏速度,算法基于误差连线应均匀分布在纠偏区域内的原则,构建误差连线的空间四叉树索引,加快后续三角面片的搜索命中率。

由于误差连线空间索引四叉树的层数与误差连线的初始个数对于后续三角面片的搜索命中率有密切关系,通过反复试验发现,当误差连线小于128个时,应提取误差连线起点,在纠偏范围内构建两层空间四叉树索引;当误差连线大于128且小于2048个时,应提取误差连线起点,在纠偏范围内构建三层空间四叉树索引;当误差连线大于2048个时,应提取误差连线起点,在纠偏范围内构建四层空间四叉树索引。

步骤S42:生成各同质区三角网。

在各同质区内部的误差连线应最为相似,地物可以一起纠偏。因此可以分别遍历各误差同质区,提取同质区内部的误差连线,以误差连线起点为离散点分别构建各同质区的Delaunay三角网,作为后续数据纠偏提取纠偏控制点的参考。

步骤S43:数据纠偏。

其中,所述步骤43中,具体包括以下步骤:

步骤S431:读取待纠偏数据D,获取该纠偏要素的坐标点集F1、F2……Fn

步骤S432:依次读取坐标点集,判断当前待纠偏点Fm是否为要素第一个点F1,如果是则转到步骤S433;如果不是第一个点,则利用射线法判断该点Fm是否在上一个Fm-1所在的三角面片中,如果不在则转到步骤S433,如果在则转到步骤S436;

步骤S433:寻找该纠偏点Fm所在四叉树空间索引的叶子节点以及所在同质区,并提取相应叶子节点中所包含的该同质区的三角网顶点,即对应叶子节点所包含的该同质区的误差连线起点;

步骤S434:遍历所有提取的三角网顶点,寻找Fm所在的三角面片,如果找不到转向步骤S435,若找到则转到步骤S436;

步骤S435:若Fm没有落在任意一个三角面片内,则寻找距离最近的三角面片替代;

步骤S436:提取三角面片的顶点p1、p2、p3以及这三个顶点所对应的全部三角面片顶点q1、q2……qn,其中q1、q2……qn中不包含p1、p2、p3

步骤S437:在q1、q2……qn中寻找距离Fm距离最近的三个点r1、r2、r3

步骤S438:计算p1、p2、p3、r1、r2、r3六个点误差连线起点、终点在x、y方向上的距离dx=X终点-X起点、dy=Y终点-Y起点,即dxp1…dxr3,dyp1…dyr3

步骤S439:计算Fm在x、y方向上的增量dxFm、dyFm。作为优选实施方式,本发明采用反距离加权算法进行增量计算。

步骤S440:计算点Fm纠偏后点的坐标,公式为

步骤S441:判断Fm是否为最后一个点,若是则转向步骤S442,若不是获取纠偏要素的下一个点Fm+1,转向步骤S432;

步骤S442:输出纠偏后的要素D′,判断是否为最后一个待纠偏数据,若是则结束,若不是则转向步骤S431。

另外,请同时参阅图5,其为本发明的矢量地图的快速纠偏方法的模块框图。本发明还提供了一种矢量地图的快速纠偏系统,其包括:提取模块1、空间聚类模块2、构建模块3和纠偏模块4。

所述提取模块1,用于提取误差连线及纠偏区域;所述误差连线为同一地物在待纠偏数据与参照数据之间的连线。

所述空间聚类模块2,用于进行误差连线的空间聚类。

所述构建模块3,用于构建误差同质区域。

所述纠偏模块4,用于基于误差同质区域的矢量电子地图的纠偏。

具体的,所述空间聚类模块2包括:起点生成模块21、坐标提取模块22、夹角计算模块23和聚类分析模块24。

所述起点生成模块21,用于提取误差连线起点,生成起点ESRI SHP文件;

所述坐标提取模块22,用于提取误差连线起点以及终点坐标;

所述夹角计算模块23,用于利用起点、终点坐标计算误差连线与正东方向顺时针夹角θ;

所述聚类分析模块24,用于进行聚类分析,类聚属性为误差连线与正东方向顺时针夹角θ,作为相应聚类结果以聚类结果字段的形式保存在起点ESRI SHP文件中。

所述构建模块3中包括:初始同质区域生成模块31、统计模块32、简化合并模块33和小区域合并模块34。

所述初始同质区域生成模块31,用于生成初始同质区域,通过矢量电子地图外边界与道路中心线将待纠偏数据分割为多个街区;

所述统计模块32,用于确定同质区类别,分别遍历待纠偏的各个街区,统计每个街区内部误差聚类结果的类别众数作为该街区的聚类类别,并统计该区域内的聚类点个数;

所述简化合并模块33,用于对同质区进行化简与合并,先遍历各同质区域的聚类类别,将相邻且聚类类别一致的同质区进行合并,再重新统计合并后的同质区域内的聚类结果类别众数以及聚类点个数;

所述小区域合并模块34,用于对小区域进行合并,将区域内聚类点个数小于4个,面积小于1平方千米的同质区域合并至相邻的面积最小的同质区中。

进一步,所述纠偏模块4中包括:索引生成模块41、三角网生成模块42、数据纠偏模块43。

所述索引生成模块41,用于生成误差连线空间索引。具体的,所述索引生成模块中,当误差连线小于128个时,提取误差连线起点,在纠偏范围内构建两层空间四叉树索引;当误差连线大于128且小于2048个时,提取误差连线起点,在纠偏范围内构建三层空间四叉树索引;当误差连线大于2048个时,提取误差连线起点,在纠偏范围内构建四层空间四叉树索引。

所述三角网生成模块42,用于生成各同质区三角网。具体的,所述三角网生成模块分别遍历各误差同质区,提取同质区内部的误差连线,以误差连线起点为离散点分别构建各同质区的Delaunay三角网。

所述数据纠偏模块43,用于进行数据纠偏。具体的,请同时参阅图6,其为数据纠偏模块的连接框图。所述数据纠偏模块43包括:纠偏数据读取模块431、坐标点集读取模块432、三角网顶点提取模块433、三角面片寻找模块434、替代模块435、三角面片顶点提取模块436、距离寻找模块437、距离计算模块438、增量计算模块439、坐标计算模块440、判断模块441和输出模块442。

所述纠偏数据读取模块431,用于读取待纠偏数据D,获取该纠偏要素的坐标点集F1、F2……Fn

所述坐标点集读取模块432:依次读取坐标点集,判断当前待纠偏点Fm是否为要素第一个点F1,如果是则发送至所述三角网顶点提取模块433;如果不是第一个点,则利用射线法判断该点Fm是否在上一个Fm-1所在的三角面片中,如果不在则发送至所述三角网顶点提取模块433,如果在则发送至所述三角面片顶点提取模块436。

所述三角网顶点提取模块433,用于寻找该纠偏点Fm所在四叉树空间索引的叶子节点以及所在同质区,并提取相应叶子节点中所包含的该同质区的三角网顶点,即对应叶子节点所包含的该同质区的误差连线起点。

所述三角面片寻找模块434,用于遍历所有提取的三角网顶点,寻找Fm所在的三角面片,如果找不到则发送至所述替代模块,若找到则发送至所述三角面片顶点提取模块;

所述替代模块435,用于当Fm没有落在任意一个三角面片内,则寻找距离最近的三角面片替代。

所述三角面片顶点提取模块436,用于提取三角面片的顶点p1、p2、p3以及这三个顶点所对应的全部三角面片顶点q1、q2……qn,其中q1、q2……qn中不包含p1、p2、p3

所述距离寻找模块437,用于在q1、q2……qn中寻找距离Fm距离最近的三个点r1、r2、r3

所述距离计算模块438,用于计算p1、p2、p3、r1、r2、r3六个点误差连线起点、终点在x、y方向上的距离dx=X终点-X起点、dy=Y终点-Y起点,即dxp1…dxr3,dyp1…dyr3

所述增量计算模块439,用于计算Fm在x、y方向上的增量dxFm、dyFm

所述坐标计算模块440,用于计算点Fm纠偏后点的坐标,公式为

所述判断模块441,用于判断Fm是否为最后一个点,若是则发送至所述输出模块442,若不是获取纠偏要素的下一个点Fm+1,发送至所述坐标点集读取模块432。

所述输出模块442,用于输出纠偏后的要素D′,判断是否为最后一个待纠偏数据,若是则结束,若不是则发送至所述纠偏数据读取模块431。

接下来,以一个具体的实例,介绍本发明的矢量地图的纠偏方法。

首先,对原数据介绍

请参阅图7-图9,其分别为本实例中房屋向东北方向偏移的影像图、房屋向东南方向偏移的影像图、道路为分界线的房屋影像图。

本实例中,待纠偏所使用的数据为广东某地市的矢量电子地图数据,数据采购时间跨度为2010年-2015年,采购数据均为1:2000比例尺,覆盖范围2512平方千米。其中居民地图层共有159.4万要素,命名为BUI.shp,存储格式为ESRI的Shapefile。

参照数据为当地0.5米遥感影像数据,该数据已通过正射纠正,影像平面中误差经实地验证≤1.5米,可以当作真值数据。

从附图3中可以看出,当待纠偏的电子地图数据在偏移量、偏移方向等方面均存在差异较大的差异,若一起纠偏则纠偏效果不理想。

接着,进行数据纠偏。

(1)提取误差连线及纠偏区域

由于电子地图偏移方向、偏移量变化较大,通过对比遥感影像与矢量电子地图,以空间均匀分布为原则,利用Arcmap软件共绘制13806条误差连线并命名数据存储图层为“误差连线.shp”,纠偏区域为部分区域并命名存储数据图层为“纠偏区域.shp”,存储格式为ESRIShapefile格式,空间分布情况请参阅图10。

(2)误差连线空间聚类

基于GDAL开源库进行程序开发,利用GDAL提供的OSGeo.OGR.Ogr.GetDriverByName("ESRI shapefile")函数读取“误差连线.shp”,遍历各误差连线,利用GDAL提供的geometry.GetX(i)、geometry.GetY(i)函数提取误差连线起始点x,y坐标值(X、Y)、(X、Y),并根据公式

计算误差角度,并通过GDAL创建起点图层,命名为“误差起点.shp”,通过提供的OSGeo.OGR.Feature类中的SetField方法将夹角值记录在误差起点图层的“误差角度”字段中。

利用ArcGIS的Grouping Analysis命令进行k-means聚类,参数Spatial Constraints选择NO_SPATIAL_CONSTRAINT,参数Analysis Fields选择误差角度,参数Number of Groups选择6,参数Unique ID Field选择FID,其余按照默认选项,聚类后的结果将以“SS_Group”字段形式存放。

(3)构建误差同质区域

①请同时参阅图11和12,其分别为本实施例的初始同质区的示意图和模型图。

生成初始同质区域,该部分在ArcMap软件中利用ModleBuilder建模实现,使用Feature To Line、Merge、Feature To Polygon三个命令。在本实施例中,初始的同质区共有29631个。当执行上述命令后,在可视化界面中会显示如图12所示的模型图,其表示的流程为:

行政区划面要素,经过Feature To Line的转换,即行政区划面到线的转换,得到行政区划线要素。

然后,道路中心线要素和行政区划线要素,经过Merge(即合并)后,得到道路、行政区合并线图层。

最后,再经过Feature To Polygon(即线转面),输出初始同质区域。

②请参阅图13,其确定同质区类别的模型图。在确定同质区类别,该部分在ArcMap软件中利用ModleBuilder建模实现,使用Tabulate Intersection、Summary Statistics、Join Field、Table Select、Add Field、Calculate Filed等命令。

③请同时参阅图14和15,其分别为本实施例的化简合并后的同质区的示意图和模型图。

同质区的化简与合并,该部分在ArcMap软件中利用ModleBuilder建模实现,使用Dissolve、Multipart to Singlepart命令,实现同质区的化简合并,经过化简合并后,共有1838个同质区。

然后,再利用上一步的模型进行化简合并后同质区类别SS_Group、点数PNT_Count的统计和更新。

④请同时参阅图16和17,其为本实施例合并小区域后的同质区的示意图和模型图。

小区域合并,该部分在ArcMap软件中利用ModleBuilder建模实现,使用Make FeatureLayer、Select Layer By Attribute、Eliminate等命令,实现小区域合并,经过合并后共有71个同质区。

该模型需要运行两次,第一次为合并区域内聚类点个数小于4个的同质区,Expression为PNT_Count<4,第二次为合并面积小于1平方千米的同质区域,Expression为Area<1000000。

(4)基于误差同质区域的矢量电子地图纠偏

①生成误差连线空间索引。而其中,为了实现这个功能,在本实施例可以使用GDAL+C#编程实现,当然也可以使用其他方式实现。

②生产各同质区三角网。同理,为了实现这个功能,本部分使用GDAL+C#编程实现。

③数据纠偏。具体的纠偏流程,可以参考附图4中的流程步骤,本部分故不赘述。而其中,为了实现附图4中的流程步骤,可以采用GDAL+C#编程实现。

以下针对本发明的数据纠偏结果与现有技术中纠偏结果进行对比评价

一、时间效率评价

本发明的该算法通过构建空间四叉树索引的空间搜索优化技术,可以显著提高纠偏算法效率,下表为不同纠偏途径算法纠偏时间效率对比表。

不同纠偏途径时间效率对比表

上表均为同一电脑进行的数据纠偏实验,可以看出ArcMap的Spatial Adjustment模块不支持大量控制点参与的数据纠偏;在ArcMap 10.3以后的版本中,增加了Rubbersheet的Toolbox命令,利用该命令可以在后台进行数据的整体纠偏,耗时104分钟;利用FME软件RubberSheeter函数进行整体纠偏需要159分钟;而基于空间误差同质区的居民地分同质区纠偏,不仅可以克服整体纠偏在偏移方向不同时效果不佳的情况,还能够大大提高纠偏速度。

二、纠偏结果评价

请同时参阅图18,其为本发明的基于同质区的分区纠偏结果与数据统一纠偏结果的对比示意图。可以看出,在同样的纠偏控制点情况下,基于同质区的分区纠偏在不同误差同质区域边界处可以有效地避免由于原始数据偏移方向不同所带来的整体纠偏地物纠偏效果不理想的情况。

相比于现有技术,本发明具备以下有益效果:

1、从误差连线入手,一方面可以提取误差连线的误差角度分析数据的偏移情况,从而通过误差角度空间聚类形成误差同质区域,分而治之地进行纠偏;另一方面,误差连线还可以作为后续纠偏所使用的纠偏控制点,不用二次进行控制点的选取,提高工作效率。

2.基于空间误差同质区的矢量电子地图纠偏可以有效地解决由于缺乏统一控制基准、差异化的生产流程等因素造成大范围矢量电子地图在空间偏移方向、偏移量不一致的情况,通过误差连线空间聚类形成的误差同质区,可以有效地分离空间误差方向不一致的数据,保证数据纠偏的精度。同时,该纠偏算法无需进行数据分块,因此可以有效地保持数据的拓扑关系。

3、在同一同质区内部,通过构建Delaunay三角网进行区域内部的剖分,对于待纠偏数据,只需提取所在三角面片的顶点以及相邻三角面片中最近三个点进行空间内插即可得到纠偏后数据,一方面可以充分利用误差连线,保证纠偏的细致程度,另一方面通过6个点的空间内插可以有效的提高算法抗噪能力,防止地物出现变形。

4、通过加入空间四叉树索引等优化策略,算法的性能大大提升,可以进行大批量的矢量电子地图纠偏,无需数据分块、拼接,算法速度较主流GIS平台有很大提升。

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

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