作者:刘善磊
摘要
本文针对2020年度重要基础性地理信息更新工作,以地理国情监测数据为参考资料,基于语义匹配和几何匹配等关键技术,利用FME分别设计了具有识别“增加”、“删除”、“几何匹配属性不匹配”和“完全匹配”等4种匹配结果的点、线、面匹配分析模板。基于匹配结果构建了重要基础性地理信息与地理国情监测数据在空间上的映射关联和属性上的语义关联,进而实现了联动更新,解决了多源矢量空间数据采集标准和数据处理要求不同造成难以综合利用这一现状。应用结果表明:该方法能充分利用现势性更好的矢量空间数据,减少整体工作量、提高工作效率,是对新型基础测绘采集更新模式的一次有益探索。
1、背景
为增强基础地理信息数据的现势性,充分发挥地理信息资源在国民经济中的积极作用,加快基础地理信息更新频率,实现由全要素整体更新向要素级增量更新的转变。省自然资源厅下达了“年度基础地理信息更新(重要要素)”的任务。任务要求在省级基础测绘1:10 000DLG动态时空数据库基础上,收集现势性、准确性、 权威性、参考性强的各类资料,分要素整合提取增量信息,每半年更新1次,一年更新不少于2次。其中,利用现势性较好的地理国情监测等矢量空间数据数据,采用多源矢量匹配分析技术是实现年度重要地理信息数据更新的一条重要途径。
2、技术路线
基于FME的年度重要基础地理信息更新方法首先对两套不同来源的数据进行坐标投影和统一格式等预处理,然后在质量检查合格的基础上进行图层关联;在此基础上根据要素的几何类型进行语义和几何匹配,具体包括基于多特征组合的点要素匹配、基于Fréchet距离的线要素匹配、基于广义Voronoi图的面要素匹配;最后基于匹配结果并结合影像构建重要基础性地理信息与地理国情监测数据在空间上的映射关联和属性上的语义关联,进而实现联动更新。技术流程如图1所示。
图1 重要地理信息数据更新技术路线
3、具体FME实现流程
3.1点要素匹配
点要素匹配的模板如图2所示,主要分为以下4步:
1)为保证点要素数据质量,利用DuplicateFilter转换器去除重名的点要素,同时利用Tester转换器去除不符合命名规则要求的点要素;
2)针对其中一个点数据集中的每个要素,利用Bufferer转换器建立缓冲区,利用PointOnAreaOverlayer(如图3)转换器在另一个点数据集中搜索在缓冲区内的候选匹配要素;
3)通过Tester转换器将初始匹配结果分离出,接着通过PythonCaller(如图4)编写代码计算它们的语义相似度,将相似度值最大的候选匹配要素视为当前点的最佳匹配要素;
4)输出点要素的最终匹配结果,“完全匹配”和“几何匹配属性不匹配”通过PythonCaller(如图4)输出,“增加”和“删除”则通过AttributeCreator输出。
图2 点要素匹配模板
图3 PointOnAreaOverlayer转换器设置
图4 相似度计算部分代码
3.2线要素匹配
以线状道路为例,线要素匹配的模板如图5所示,主要分为以下5步:
1)利用Tester转换器(如图6)初步获得包含国、省、县、乡道四个等级的匹配候选集;
2)通过CenterPointReplacer转换器,将线转化为点,借鉴点要素匹配的方法,通过Bufferer、PointOnAreaOverlaye、FeatureMerger(如图7)等转换器获取最终的匹配候选集;
3)通过Intersector和LineCombiner两个转换器将路网构建成如图8所示的路段模型;
4)借助ChangeDetector转换器(如图9)实现弱Fréchet距离检测;
5)输出线要素的最终匹配结果,“完全匹配”和“几何匹配属性不匹配”通过PythonCaller(如图4)语义判断后输出,“增加”和“删除”则通过AttributeCreator输出。
图5 线要素匹配模板
图6 Tester转换器设置
图7 FeatureMerger转换器设置
图8 道路路段类型
图9 ChangeDetector转换器设置
3.3面要素匹配
面要素匹配的模板如图10所示,主要分为以下5步:
1)在通过DonutHoleExtractor转换器预处理存在环洞的面要素后,利用GeometryCoercer、Counter、VertexCounter、Chopper、VoronoiDiagrammer、等转换器构建广义Voronoi图,为避免出现如图11(c)的情况,一般需要通过Densifier转换器(如图12)增加顶点;
2)借鉴线要素匹配候选集获取的方法,通过CenterPointReplacer PointOnAreaOverlaye、Tester、FeatureMerger等转换器获取最终的面要素匹配候选集;
3)基于获取的匹配候选集通过ChangeDetector转换器实现面要素的初始匹配;
4)对于初始匹配未成功的面要素则通过HullAccumulator转换器(如图13)创建凸多边形,在此基础上再次通过ChangeDetector转换器实现组合匹配,并通过SpatialFilter转换器(如图14)获取凸多边形真正对应的面要素;
5)初始匹配和组合匹配成功的要素通过PythonCaller(如图4)进行语义判断后,输出“完全匹配”和“几何匹配属性不匹配”的结果,“增加”和“删除”则通过AttributeCreator输出。
图10 面要素匹配模板
图11广义Voronoi图的创建
图12 Densifier转换器设置
图13 HullAccumulator转换器设置
图14 SpatialFilter转换器设置
3.4关联构建与更新
分析点、线、面要素最终输出的匹配结果:针对“增加”和“删除”两种匹配结果,结合影像数据完成图形和属性的同步更新;针对“几何匹配属性不匹配”的情形,则保持重要基础地理信息数据的图形不变直接完成属性更新。在完成上述三种匹配类型更新的基础上加上“完全匹配”的数据,通过唯一标识字段构建重要基础性地理信息与地理国情监测数据在空间上的映射关联和属性上的语义关联,进而实现联动更新。
4、结语
现在,工作中只要进行数据分析和挖掘,我首先想到的就是FME。通过FME模板可以很方面的实现自己设计的算法,免去了各种繁琐代码的编写和调试,直接提高了工作效率。感谢安图的推广,使我在两年前接触到了这么强大的一个工具,给我的工作带来便利。