基于FME的面融合技术研究
西安测绘总站 向竹君
1 前言
由于我国基础系列比例尺地图基本都是按照图幅生产,因此当后期需要生产地理实体数据或者无缝拼接的电子地图数据时,就需要进行图幅数据接边,最终落实到具体主要有两部分工作:线连接和面融合。线连接相对比较简单,这里不进行讨论。面融合比较复杂,传统方法一般是以手动或者半自动进行,效率较低且质量无法保证。很多学者和技术人员都提出了自动化的解决方案,但是由于数据的差异,一般很难应用到工程实际中或者自动化程度低。而采用FME,能够快速的实现面融合自动化处理,并对结果进行检测,下面具体介绍。
2 算法
2.1 基本流程
面融合的基本思路比较简单,如果接边线两边的面属性一致且面边线与接边线重叠部分几何位置基本一致,那么基于一个阈值判断两个面的边线(弧度)是否能够重叠,如果重叠那么就消除中间的边线,对两个面进行融合。在理想情况下,基于FME,先采用Snapper转换器进行扑捉,然后采用Dissolver转换器进行融合,基本实现上述算法了。但是由于数据的千差万别,在具体工程实践中,基于上述步骤,很难满足实际要求,主要存在的问题如下:由于接边面之间的间隔大小是不同,在进行扑捉时,阈值设置过小,将导致扑捉不到,接边面没有融合如图 1(a)所示或者部分融合如图 1(b、c)所示;阈值设置过大,将导致误扑捉,采用Dissolver处理后有可能出现面丢失,如图 2所示,当进行大范围自动面融合时,同一处理过程中上述两种情况都将出现,最复杂情况下,同一个面同时存在上述两种情况。
a)没有融合,没有改变 (b)部分融合原始 (c)部分融合
图 1 阈值过小,融合不完全
(a)原始数据 (b)融合后数据
图 2 阈值过大,融合后部分面丢失
针对上述情况,通过分析可知,扑捉阈值是很难一次性设置成功的,而是需要多次迭代设置,且对于不同的面,阈值可能设置为多个不同的值。总体思路如下:设置4个扑捉阈值,阈值值从大到小依次为最大、较大、通用、较小,数据经过通用扑捉阈值进行融合处理,然后对结果进行检测,融合不完全的面下次采用较大阈值处理,融合丢失的面下次采用较小阈值处理,经过多次迭代处理,直至融合不完全的面与融合丢失面数量都为0,总流程设计如图 3所示,检测融合不完全的面流程如图4所示,检测融合丢失面流程如图5所示:
图 4 检测融合不完全的面流程
2.2 特殊处理
通过上述基本流程处理,能够完成大多数面的融合,但是解决不了如下特殊情况:面有多个部分需要融合,在进行融合时,扑捉阈值小时,出现部分面不能完全融合,扑捉阈值大时,出现部分面丢失,更极端的情况是同一扑捉阈值,面既有未完全融合部分,又有丢失部分。
针对上述问题,分为两种情况进行解决,每一种情况都需进行多步处理。两种情况第一步都是用一个较小扑捉阈值进行扑捉以及融合,根据融合效果决定下一步处理步骤。经过第一步融合后,如果未融合部分与原始数据一致,那么下一步就采用较大扑捉阈值再进行一次扑捉以及融合,如果未融合部分与原始数据不一致,即已经部分融合,此种情况采用较大扑捉阈值对原始数据进行一次扑捉以及融合,然后将融合后的数据与第一步融合的数据进行叠加融合,具体流程分别如图 6、图 7所示。
图 6 串联融合处理流程
图 7 并联融合处理流程
2.3 其它问题
1. Snapper转换器扑捉方式有三种,在面融合过程中,基于面融合特点以及尽量不改变面边线形状的要求,根据实际使用效果采用线段扑捉方式较好。
2. 如果使用SliverRemover转换器,注意面数据中的孔洞,如果孔洞为空白面,很有可能经过处理后孔洞会被消除,从而出现数据处理错误,另外,在处理过程中,SliverRemover有可能删除融合面,因此SliverRemover转换器需谨慎使用。
3. 灵活运用SpikeRemover转换器,在融合过程中有时能够取得意外满意效果。
3 模板
根据面融合流程,分为三个模板进行处理:面融合模板负责面的融合处理,如图 8所示,面融合缝隙检查模板负责检测和统计融合不完全的面,如图 9所示,面确定性检查模板负责检测融合丢失的面并统计特征码,如图 10所示。
图 8 面融合模板
模板说明:主要输入端为面数据,另外5个输入端分别表示需两次处理的面,以及扑捉阈值为最大、较大、较小的面特征参数,还有不需要进行SliverRemover转换器处理的面特征参数,输出端为融合完成的面和面边线,面边线用于面融合缝隙检查模板输入。
图 9 面融合缝隙检查模板
模板说明:输入端分别为面融合模板处理后的面边线、面接边线(一般为图幅分幅线),输出端为检测出来的融合不完全面未融合处的边线以及其特征码。
图 10 面确定性检查模板
模板说明:输入端分别是融合完成的面、以及融合之前的原始面,输出端为融合丢失面的特征码,以及误生成的面(一般不会产生)。
4 实验及结论
利用上述模板,采用国家1:5万框架数据中境界与政区面作为实验数据,一般经过三至四次迭代处理,就能达到要求,具体事例如下所示。
通过实验可以看出,本文中的面融合自动算法在效率和效果上都完全满足预期要求。
还需改进的地方:
融合后的面边线相比原始面边线在接边处总是会产生部分改变,本算法没有考虑检测上述变形。下一步利用FME中矢量转栅格转换器对原始数据和融合后数据进行栅格转换,再利用栅格计算转换器进行对比分析,获取数据变形程度。
文章转载自FME的163博客,直接复制过来后图片显示的不对,所以直接下载下来重新上传了。