作者:闻达
单位:浙江省测绘科学技术研究院
摘 要:基于FME技术,根据天地图·浙江融合设计要求,并结合天地图日常运维工作,建立一套严格的质检规则,用于检查天地图数据是否符合标准。对数据进行逻辑一致性、属性、空间关系等方面的质检,摆脱了传统人工质检机制,实现程序自动化、规范化质检。本文通过针对天地图数据中的POI和电子地图,分别设计了质检程序,解决其在数据融合过程中的问题。最终实现天地图融合数据质检程序的设计,并应用于日常数据质检工作中,提高了数据质量,提升了天地图服务质量。
关键字:FME;天地图;数据质检
天地图是由国家、省、市(县)三级节点构成的国家地理信息公共服务平台。随着天地图应用的日益广泛与深入,采用“超链接”和“服务聚合”的方式已无法满足跨省(县)域、跨层级(国家、省、市)的地理实体与地名地址查询、专题信息挂接、综合统计分析等应用需求[1]。
随着浙江省天地图省、市(县)级节点数据融合工作的全面开展,天地图浙江的地理信息数据呈几何级增长,对于海量数据的快速更新成为浙江天地图发展的重要方向。为进一步提高天地图融合数据的更新效率,保证数据的一致性和现势性,走高效、集约的道路,使天地图更好地服务民生、社会,浙江省天地图本着统筹协调、联动更新、增量更新、快速服务的原则,于2017年开展了基础服务省级统一发布工作,由省级统一发布7-20级标准基础服务,由市县采集大比例尺数据进行省市融合、联动更新,进一步提升天地图服务水平和能力。
省市融合作为天地图·浙江数据更新的重要手段,为提升数据的精度、现势性和准确性起到了巨大的作用。但是,由于市(县)每年提交的融合成果数据量大、涉及范围广、提交时间集中,因此,需要耗费作业人员大量的时间和精力进行数据质量检查,以保证融合后省级库体的整体数据质量。现通过对天地图·浙江数据质检规则梳理,设计一套针对POI和电子地图的质检程序,对各市(县)融合提交的数据进行质检,保证数据的质量和精度,提高天地图数据的质检正确性,和质检的效率,为天地图·浙江提供更优质的数据服务。
天地图·浙江的融合数据由矢量电子地图、兴趣点POI、地名地址和影像组成。其中,电子地图和POI作为天地图最重要的数据,复杂程度也最高,在天地图·浙江应用中承担着显示、检索等作用。因此,在质检程序设计时,主要实现针对电子地图和POI的质检。
天地图融合的数据是从不同数据源中选取表达准确、现势性好、精度高、内容全的要素进行合并,并对合并后的结果进行几何拓扑、空间关系与逻辑一致性处理,使更新或融合后的地理信息数据在现势性、准确性、丰富性等方面达到最优[2]。
为了满足融合数据精度要求、几何表达精细度要求、现势性要求、属性取值要求、空间关系与逻辑一致性要求等,梳理了POI和电子地图的具体的质检规则,如下表1、表2所示。
表1 POI质检规则
质量元素 |
质量子元素 |
检查项 |
具体要求 |
空间参考系 |
大地基准 |
坐标系统 |
CGCS2000 |
逻辑一致性 |
格式一致性 |
数据格式 |
为**.gdb格式 |
数据文件 |
数据文件无缺失、多余、数据无法读出等问题 |
||
数据完整性 |
数据一致性 |
要素遗漏 |
检查要素遗漏的个数及位置偏差 |
属性精度 |
属性正确性 |
属性值 |
检查属性值中不能含有异常字符 |
检查分类代码的正确性 |
|||
检查名称、简称正确性 |
|||
检查显示比例、符号化字段的正确性 |
|||
检查更新时间、更新类型的正确性 |
|||
检查类型正确性 |
|||
检查电话格式正确性 |
|||
显示比例 |
检查比例尺赋值正确性,图面负载能相互不压盖,各级别平滑过渡 |
||
全半角转换检查 |
确认名称、地址中全半角转换是否处理 |
||
逻辑一致性 |
概念一致性 |
属性项 |
字段中至少含有名称、简称、分类代码、显示比例、符号化字段、更新参考数据源、更新时间、更新类型且属性值不能为空 |
拓扑一致性 |
各图层相互关系 |
是否存在POI不合理落水中、落道路上、落轨道上中的情况 |
表2 电子地图质检规则
适用范围 |
质量元素 |
质量子元素 |
检查项 |
具体要求 |
所有图层 |
空间参考系 |
大地基准 |
坐标系统 |
CGCS2000 |
表征质量 |
地理表达 |
要素关系 |
数据整体拓扑检查 |
|
逻辑一致性 |
概念一致性 |
属性项 |
字段中至少含有唯一码、分类代码、显示比例、更新参考数据源、更新时间、更新状态、显示字段且属性值不能为空格和NULL |
|
属性精度 |
属性正确性 |
属性值 |
各图层FCODE、FSCALE等属性赋值正确 |
|
表征质量 |
地理表达 |
要素关系 |
各图层之间压盖关系是否正确 |
|
数据完整性 |
数据一致性 |
要素遗漏 |
检查要素遗漏的个数 |
|
路网线 |
属性精度 |
属性正确性 |
属性必填项检查 |
道路名称采用全角符号 |
各级别显示时,需保证公路和城市道路,路网的连通性;不允许存在孤立道路;匝道处理检查,总体采用就低原则;公路与公路共线检查,公路与城市道路共线检查。 |
||||
水系面 |
表征质量 |
几何表达 |
连通性 |
水系(面、线)及水系面与水系线间不允许断开,保持连通性 |
水系线 |
表征质量 |
几何表达 |
几何形状 |
有名称的水系采集水系注记线,水系注记线不超出与之对应的水系面; |
地理表达 |
要素关系 |
河流遇输水渡槽、溢洪道等可见附属设施应贯通;流遇涵洞需根据图面合理性选择贯通。 |
||
属性精度 |
属性正确性 |
属性必填项 |
水系注记线各字段属性与对应水系面的字段属性值须保持一致;单线水系数据与对应水系面判重检查 |
|
辅助层 |
表征质量 |
几何表达 |
几何形状 |
检查辅助层是否从道路层截取,形状且属性与截取道路要完全一致 |
铁路线 |
表征质量 |
几何表达 |
几何形状 |
检查铁路的连续性 |
居民地面 |
表征质量 |
地理表达 |
要素关系 |
检查露天体育场有无绘出跑道且与绿地面关系是否正确 |
境界线 |
表征质量 |
几何表达 |
几何形状 |
检查境界线形状是否正确 |
政区面 |
表征质量 |
几何表达 |
几何形状 |
检查政区面形状是否正确 |
地理表达 |
要素关系 |
检查政区面与政区面关系是否正确 |
||
居民地点 |
属性精度 |
属性正确性 |
属性项 |
检查同名行政村是否赋值正确;居委会、村委会填写是否统一 |
融合后的POI和电子地图数据,在经过程序质检后,会针对每一个质检项,生成一个质检报告,质检报告中描述了错误数据的项目编码,详细的错误信息以及对应的质检项。作业人员根据质检报告,通过编码可定位到原始数据,进行数据整改。最终通过质检后,融合到省级节点中。质检流程如下图1所示。
图1 质检流程
FME(Feature Manipulate Engineering)是一个支持多元数据的提取、转换、加载、处理的强大工具,它是完整的空间ETL 解决方案。用户也可以根据自身的实际需求建立具有不同功能和应用的GIS 数据处理、转换的平台,从而大大提高在GIS数据处理过程中的工作效率,深度发掘空间地理信息数据的应用[3]。
根据POI和电子地图质检规则,基于FME技术,在FME Workbench中构建质检模板,通过FME转换器制定各项规则的转换流程,同时结合ArcGIS的ArcPy模块包,对数据的属性以及空间关系等做系统性检查,最后将完成的质检模板,发布到FME Server,利用FME Server将各项质检规则进行整合。最终,用户可根据需要自由组合质检模板,对数据进行质检。
POI数据以天地图·浙江POI为本底,市县POI为主要参考数据源。参考数据源的格式、坐标、属性以及空间位置关系等有一定的差异,需要对参考数据进行标准化处理。融合后的POI要素要处理好与相关地物的位置关系,保证与道路、水系、道路等要素的相关位置正确,属性信息填写正确,并保证数据的现势性。
POI质检程序,统一、集中对融合后的POI做检查,梳理其可能存在的基础信息错误,空间关系错误以及属性信息错误,并对错误数据进行定位及提供相关的错误描述。
POI的基础质检规则,包括空间参考、逻辑一致性、数据完整性。空间参考主要包括坐标系统和高程系统,现只检查坐标系统,应采用2000国家大地坐标系;逻辑一致性包括数据格式和数据文件的正确性,数据文件应保证无缺失、多余、数据无法读出等问题;数据完整性则需要统计具体要素的个数以及位置的偏差。
(1)空间参考
在质检过程中,通过FME的CoordinateSystemExtractor转换器获取POI的坐标信息并判断其是否符合要求,具体质检过程如下图1所示,并在输出过程中建立质检项字段,将不符合要求的数据按照项目编码进行输出,如下图2所示。
图1 坐标系检查
图2 创建质检项
(2)逻辑一致性
POI的逻辑一致性指的是其存储格式应该为GDB,且GDB文件中不包含数据集,有且仅有唯一的POI要素类,如下图3所示。利用Pythoncallor转换器中,编写Python代码,通过调用ArcGIS的arcpy模块编写其逻辑一致性规则,如下图4所示。
图3 逻辑一致性检查
图4 逻辑一致性检查规则
(3)数据完整性
POI的数据完整性,指的是融合数据与原始数据进行比对,统计数据量和空间位置是否一致,如下图5所示。在Pythoncallor中编写统计数据量和空间分析的功能来实现,如下图6所示。
图5 数据完整性检查
图6 检查空间位置是否一致
属性质检规则主要是针对属性字段值的质检,包括POI的名称、分类代码、简称、比例等的正确性检查。其中较为重要的有以下几类:
(1)分类代码和符号化字段检查
POI的分类代码不为空且不能超出天地图的分类代码范围,将分类代码表集成在Pythoncallor中做检查,且不能有异常符(空格、回车键),如下图7所示。符号化字段的检查,分为普通符号化字段和特殊符号化字段检查,如下图8所示。其中,与分类代码唯一对应的为普通符号化字段,如下图9所示,不能唯一对应的则为特殊符号化字段,需要再检查符号化字段与名称字段的对应关系,是否符合名称字段的关键字要求,如下图10所示。
图7 分类代码检查
图8 符号化字段检查
图9 部分普通符号化字段与分类代码对应关系
图10 特殊符号化字段处理
(2)显示比例检查
POI的显示比例根据分类代码的权重,与分类代码一一对应(如图12),且比例尺应该在7~21级之间,检查其是否超限以及是否有误,如下图11所示。
图11 显示比例检查
图12 部分分类代码对应的比例尺级别
(3)异常字符和空字段检查
POI的异常字符检查主要针对名称和简称,且两者不能同时为空,如下图13所示。异常字符包括“?”,“.”和空格,简称可以包含空格。分类代码、显示比例、符号化字段、更新参考数据源、更新时间、更新类型等字段属性值必须有值,不能为空。
图13 名称和简称异常字符检查
(4)全半角符号检查
POI的全半角符号检查针对名称和地址,检查全半角转换是否处理,如下图14所示,Pythoncallor中的代码如下图15所示。
图14 全半角符号检查
图15 全半角符号处理
POI的空间关系规则主要涉及到图面负载以及不规则落线面。
(1)图面负载检查
图面负载,指的是对数据符号化显示的过程中,要素过于密集而产生的压盖现象,因此,需要联合检查POI和电子地图中的居民地点(RES_PT)。按照距离权重,在每一比例尺级别下,查找每个点对应的最近点的距离是否小于该级别下的临界距离,保证图面负载正常,各级别平滑过渡,如下图16所示。
图16 图面负载检查
(2)不规则落线面检查
POI不规则落线、面指的是POI不能落在水系面,道路线和轨道线上。水系面中除了岛屿、滩涂,道路线和轨道线除了公交站、地铁站等,在一定容差范围内,不允许点落在水系面,道路线和轨道线上。通过FME的空间分析工具PointOnArea,查找不规则落线、面的POI,如下图17所示。
图17 不规则落线面检查
电子地图数据包括水系、植被、交通、居民地、境界等等,同样以省级节点数据为主,参考市、县级节点更新源数据对各要素类图层的属性和空间信息进行融合补充。
融合后的电子地图数据要处理各要素类图层本身以及图层之间的拓扑关系,属性信息填写正确,并保证数据的现势性。
电子地图的基础质检规则,主要针对全要素类数据,包括空间坐标系、整体拓扑检查、逻辑一致性和数据完整性。其中,空间坐标系检查、逻辑一致性检查和数据完整性检查与POI的检查同理。
整体拓扑检查,包含了复合线面检查、自相交线面检查、线首尾相连检查、独立层线面重叠检查四个部分,是对电子地图所有的线要素和面要素做统一检查。
(1)复合线面检查
复合线面指的是,未经过打散处理的线要素和面要素。利用FME的Deaggregator转换器,判断要素是否打散处理,最终通过筛选,将未打散的数据输出,如下图18所示。
图18 复合线面检查
(2)自相交线面检查
拓扑检查的另一个重要的检查项是自相交检查,在电子地图中,不应该存在自相交的要素。通过FME检查拓扑的转换器GeometryValidator,并设置自相交选项(如图20),判断数据是否存在自相交,如下图19所示。
图19 自相交线面检查
图20 自相交选项设置
(3)线首尾相连检查
在电子地图中,线要素不允许存在首尾相连的情况。利用FME的CoordinateExtractor转换器,捕捉到线首尾两点的坐标值,通过检查两点坐标值是否完全一致来判断线的首尾是否相连,如下图21所示。
图21 线首尾相连检查
(4)独立层线面重叠检查
独立层线面重叠指的是,在单独的线要素类图层或面要素类图层中,要素存在重叠现象。通过pythoncallor转换器直接调用arcpy的arcpy.Intersect_analysis()函数(如图23),来判断要素之间是否重叠相交,如下图22所示。
图22 独立层线面重叠检查
图23 独立层线面重叠检查实现
电子地图的属性质检,是针对于电子地图的每一个要素类图层的属性进行检查,每一个要素类图层都有其独特的属性信息。除了对分类代码、显示比例、全半角符号等这些通用的,与POI属性项一致的检查外,还包括了道路路线编码、道路属性必填项、水系注记线属性等。
(1)道路路线编码检查
道路的路线编码,是由特定的英文大写和数字组成(如国道:G25),描述了道路的类型,在Pythoncallor中对检查规则进行定义(如图25)。
图24 道路路线编码检查
图25 独立层线面重叠检查实现
(2)道路属性必填项检查
道路属性必填项包括三个方面,分别是公路与城市道路共线、公路与公路共线以及匝道处理。
公路与公路共线时,属性总体采用从高到低原则,FCODE、FNAME及ROADCODE填写较高等级道路代码、名称和路线编码,DISPLAY填写较高等级公路代码。FCODE2、FNAME2及ROADCODE2填写次高等级道路代码、名称和路线编码,以此类推。利用Tester和TestFilter转换器对各属性值进行比较和分类,并结合自定义转换器建立分类代码和道路编码的权重关系,最终判断公路与公路共线时的各项属性值填写问题,如下图26所示。
图26 公路与公路共线检查
公路与城市道路共线,FCODE及FNAME填写城市道路代码及名称,FCODE2、FNAME2及ROADCODE2填写公路代码、名称和路线编码。DISPLAY按实际填写,保证路网连通性,县道及以上填写公路代码,县道以下填写城市道路代码,如下图27所示。
图27 公路与城市道路共线检查
匝道处理,总体采用就低原则:即DISPLAY填写与匝道相连接的较低等级的DISPLAY。检查与匝道首或尾相连的较低等级道路DISPLAY。若其中一端连接匝道,DISPLAY参照匝道DISPLAY,若两端无匝道,则做50米缓冲,参照缓冲内的匝道DISPLAY,如下图28所示。
图28 匝道检查
(3)水系注记线属性检查
水系注记线各字段属性与对应水系面的字段属性值必须保持一致,其比例尺应该大于或等于水系面的比例尺,利用SpatialFilter工具判断水系注记线与水系面的空间位置关系,并对名称属性进行分组检查,如图29所示。
图29 水系注记线属性检查
电子地图由于其数据本身的复杂性,在空间关系规则建立时,涉及到很多方面,包括道路的连通性和孤立性,道路与桥梁的关系,水系附属设施的贯通,辅助层道路一致性,以及各线和面要素图层之间不合理的压盖关系等。在整体的拓扑检查后,对分要素类图层的拓扑检查至关重要。
(1)道路连通性和孤立性检查
道路的孤立指的是单条道路未与其他的道路有相交,而连通性检查,是在此基础上,检查每一个比例尺级别上道路的孤立性,通过设置缓冲范围并检查空间关系,最终将孤立道路筛选出,如图30所示。
图30 道路连通性检查
(2)桥梁与水系和道路关系检查
通常情况下,道路与水系面压盖时需要有桥梁,且桥梁不能落水。因此,需要检查桥梁和水系面的空间关系,以及判断是否与道路线重叠。筛选出桥梁线,并获取桥头桥尾点坐标,通过PointOnArea功能检查桥梁端点是否落在水系面内;对道路做缓冲,设置容差,检查桥梁是否在道路面内,如下图31所示。
图31 桥梁与水系道路的关系检查
(3)图层相互关系检查
图层相互关系指的是各类型数据的线面层与其他类型数据的线面层之间的拓扑关系,比如道路线与水系线和水系面的拓扑关系,植被面与居民地面之间的拓扑关系等,图层相互关系正确是电子地图正常显示的基础。现以建筑面与水系线和水系面的拓扑检查为例,来说明一般线面重叠、面面重叠的情况。
在检查线与面的关系时,通过FME的LineOnArea转换器,并设置容差来检查线与面的压盖关系。在检查面与面的关系时,使用AreaOnArea转换器,先除去面要素自身的重叠,再通过面面叠加,设置容差来检查面与面的压盖关系,如下图32所示。
图32 建筑面与水系线水系面压盖检查
(4)水系附属设施贯通检查
水系附属设施包括输水渡槽、溢洪道等,这类附属设施应该与水系线或水系面合理贯通。在筛选出水系附属设施以后,对水系线和面建缓冲区设置容差,与附属设施做线面相交。最后筛选出未相交的即未贯通的水系附属设施,如下图33所示。
图33 水系附属设施贯通检查
(5)辅助层的道路一致性检查
按照要求,辅助层(ASST_LN)道路必须从道路数据中截取,形状和属性与截取的道路完全一致。建立辅助层缓冲面,通过SpatialFilter工具做相交判断,如下图34所示。并对部分属性(FCODE、FSCALE、DISPLAY)分组,判断其是否一致(图35)。
图34 辅助层道路一致性检查
图35 属性分组
在所有的电子地图和POI的质检模板设计完成以后,将其上传至FME Server上,根据质检需求利用FME Integration对各个功能模板进行组合、配置,创建相应的质检方案,最终实现数据质检。
目前,质检程序已经在2019年度的天地图·浙江融合工作中全面应用,对各个参与省、市(县)融合的市(县)数据进行了质检,并反馈质检报告供他们进行数据整改,最终将整改完的数据融合到天地图·浙江省库数据中。
在天地图·浙江数据融合工作中,通过灵活运用FME的数据处理、分析转换器,并结合Python的二次开发,实现了对天地图·浙江的POI和矢量电子地图数据属性以及空间关系上的质检, 节约了时间成本和人工成本,提高了检查效率,满足了成果精度要求,为提升数据质量奠定了基础,为天地图融合的有序推进提供了保障[4]。
[1]天地图分布式数据中心建设与数据融合示范[S],国家测绘地理信息局
[2]邱新忠,朱俊.天地图省市数据融合若干关键技术研究及应用—以“天地图·浙江”为例[J].测绘与空间地理信息,2018,41(1):179-181.
[3]任俊儒.FME在GIS数据处理中的应用[J].测绘与空间地理信息,2018,41(11):129-134
[4]侯超.基于FME的天地图融合数据质量检查方法研究[J].江西测绘,2017,02:2-4