陈建伟,陈继山
(1.苏州盛景信息科技股份有限公司,江苏 苏州 215006;2.苏州市规划编制信息中心,江苏 苏州 215006)
空间数据的质量是多种因素共同影响的结果,高质量的空间数据是地理信息系统成功应用的基础之一。随着地理信息系统应用的日益广泛,如何保障空间数据质量也愈受重视。空间数据加工的多元性导致数据质量参差不齐,新技术的不断发展也使得空间数据的规模不断扩大。采用传统的人机结合或集中式数据检查已不能满足时代发展的需要,基于数据规则的检查正逢其时。
如何集成空间数据的质量检查规则并将其动态集成至现有的GIS 服务中,完成用户特定的任务目标成为研究的热点。OGC 和ISO/TC211 提出了服务链的基本概念,其中的流程管理链就是利用工作流技术进行GIS 服务聚合操作。空间数据质量检查中使用工作流技术,具有实时性、高效性,提升空间数据的服务品质,提高数据检查的速度和可及性,使得传统集中汇总式的业务流程向分布式并行处理方式的改变成为可能。
空间数据的质量检查就是依据数据标准,采用一定的方法,直接或间接地对数据做出评价。空间数据质量检查可采用“规则-检查项-方案-质量检查-评价”的体系结构(如图1)。提炼规则是工作的第一步。规则是空间数据的内在联系及准则,是质量检查的依据,检查项则是规则的具体实现。检查方案是多个检查项的集合,体现了用户对空间数据的要求。用户选择方案对空间数据进行质量检查并做出评价。
传统的空间数据的质量检查侧重于几何表达。但实际应用中,要素几何特性与要素间的逻辑联系是并重的,甚至要素间的逻辑联系超越了几何特性。比如,控制性详细规划指标应符合总体规划,土地利用规划红线不能交叉,高架铁路与地面道路只能虚相交而不能实相交等。从提交成果方面而言,地理信息数据一般以图形、属性文件、关联文档等来表达。于是,空间数据质量检查规则由可以分成几何规则和属性规则,前者表现为空间拓扑,后者为属性合法性验证。通过规则解析,将空间数据几何规则与属性规则的组合起来,解析为可执行的空间数据规则。空间数据质量检查可使用产生式规则。产生式规则的基本形式为:
P 是产生式(即规则)的前提,也称为前件,它给出产生式可否使用的先决条件,由逻辑组合来构成。Q 是结论或操作,也称为产生式的后件,它指出当P满足时,应该推出的结论或执行的动作。
例如,对土地利用规划红线,相互间检查规则如下:
IF Geometry1 intersect Geometry2 THEN OUTPUT_Geo
产生式系统中满足前提条件的规则被激活后,不一定被立即执行,能否执行将取决于冲突消解策略。在土地利用规划红线质量检查中,如果没有过滤到相交的红线,交操作检查要素输出将被停止。
图1 空间数据质量检查逻辑图
从内容方面看,空间数据包括空间位置、属性特征、时域特征及元数据。从生产方面看,空间数据的生产具有影响因素多、因素模糊性强和一定的主观性的特点。制定完善的规则是质量检查的关键。空间数据的错误一般可分为几何错误、语法错误、语义错误和逻辑错误。
空间要素的几何错误包括打拆线错误、线或面自相交、面裂隙、微小面、微短线等,这类错误常根据要素的坐标点串间的关系进行计算判断。空间要素的语法错误是一类比较明显的错误。比如,建筑的层高、地块的容积率、地下管线的埋设年代等总是有一定的范围,要素类的编码长度总是固定值。而空间要素的语义错误则比较难发现,此类错误与要素填写的属性值与空间属性是关联的。比如,管线连接的附属物为三通时,其连接的管段不可能超过三条。对逻辑错误的判断,则需要知识和经验的归纳。比如,在同一个空间范围,不能同时存在2 幢不同的建筑,给水管线不可能与污水管线相连通等。为此,质量检查规则可以按以下几类进行划分:
1)引用完整性规则。定义要素属性值与外部引用表关键字之间的关系,它不允许属性值引用不存在的关键值。
2)数值规则。它包含两部分:一部分是与要素的空间位置相关联。比如地籍数据中的地下室标高应该为负值。一部分是填写规范。比如属性值的字符长度、空值的填写方式等。
3)审核规则。要素间以及不同要素间在空间分布(相连、包含、相邻、相交等)是有一定规则的。比如对地下管线,已存在或设计的管线需要进行最小水平间距、最小垂直间距、最小覆土深度等分析,审核是否符合国家管线设计标准。
4)复合规则。当多类空间数据进行整体检查时,需要检查多个要素类之间的关系,常使用复合规则。比如检查修建性详规红线数据,首先要检查是否满足总规各项指标;其次要检查专项规划数据,其是否与专项规划不相符合;再次要检查管线数据,检查其是否与国家或省级管线线位有冲突;最后还要检查红线与绿线、紫线、灰线的关系是否满足要求,复合规则常是多种规则的结合。
工作流技术可以实现业务过程建模、业务过程优化及过程管理与集成,从而实现业务过程的自动化。与普通数据的检查相比,空间数据检查具有计算密集和数据密集的特点。数据越多元,规则越多,流程会越复杂。数据质量检查中的任何异常和错误都可以造成服务流程的失败,从而造成计算的中断和资源的浪费。
传统空间数据质量检查一般会采用集中式处理系统(如图2),一个任务失败常会导致整个检查方案的失败,甚至会危及系统的正常运行。整体而言,空间数据的质量检查策略相对稳定,因此基于工作流的空间数据检查采用分布式体系,可以将任务分散化。各个任务对应于不同的规则实现不同的目标,并通过过程定义进行固定。过程定义完成后即可发布出来,实现检查规则的实例化。最后用户确定顺序,形成一条按次序可执行的服务链并提供使用。由于各任务是独立的,单个任务发生异常并不会影响另一任务的执行,从而保证一次检查均能将所有任务按顺序执行一次,系统的容错和稳定性得到很大的提高。
空间数据具有多元性,目前广泛应用的空间数据格式有DWG、Shape、ArcSDE、Oracle Spatial、SDB等,使用工作流技术,可以将应用逻辑和过程逻辑相分离,解决不同数据格式互操作的问题,实现验证加载数据与数据分析的互不干扰。
图2 检查规则及服务实现图
工作流的优势是对流程的控制,工作流本身不能操作空间数据。质量检查是以数据为中心的数据密集型应用,检查逻辑直接决定了工作流的形式(如图3)。空间数据质量检查中使用工作流,主要侧重于不同格式数据的读取、数据分发、数据存储、版本管理等方面,以解决传统的集中式处理带来的性能瓶颈和复杂性,其中的过程模型是核心。
考虑到空间数据的特点,可将复杂的质量检查分成多个简单的事务,各个事务相互独立,按流水线的方式执行,只有上一事务完成后才开始执行下一事务。
图3 一个简单流程处理图
要提高空间数据质量检查系统的稳定性,首先要做好业务逻辑与应用逻辑的分离,发挥单个检查事务松耦合特性,单个事务即可视为一个独立的微工作流(如图4)。微工作流是一种轻量级的工作流,数据质量检查中使用微工作流,可以高效代替或替换现在模块,实现即插即用。
由于空间数据检查的多样性,使用微工作流可以很好地实现检查项的独立,增加服务的可及性及复用性,大幅降低系统的复杂度。
图4 工作流与微工作流
地下管线数据是城市基础地理信息数据的重要组成部分,在苏州市地下管线数据质量检查中应用了基于规则及工作流的检查方法。苏州市地下管线数据分成两种形式:mdb 格式和dwg 格式。mdb 格式对应管线的属性数据,dwg 格式是管线的图形数据,均为1∶500 的分幅数据,且图形数据与属性数据一一对应。接管理要求,地下管线数据按月提交。对提交的数据,第三方需要及时进行质量检查,检查结果返回给探测单位。检查合格后的数据更新至SDE 管线数据库。据此将地下管线质量检查规则分成22 个检查子项,如表1 所示。
表1 地下管线检查项子项
检查子项确定后,将其发布成REST 服务,用户自行选择发布的服务组合形成方案供调用。具体使用过程如图5 所示。
1)用户通过浏览器完成地下管线数据(DWG 图形数据、MDB 属性数据)上传。
2)用户选择发布的检查服务,确定流程,形成聚合方案。
3)待检数据空间化,并连接已有数据库。
4)根据确定的方案进行数据质量检查。检查结果以DWG 图、Access 报表、Excel 统计表形式反馈给探测单位。
整个过程使用的服务有数据上传下载服务、检查规则服务、任务调度服务等。
图5 服务聚合方案
从使用方面看,基于规则及工作流的空间数据质量检查赋予用户自助服务的权利。从软件角度看,简化了代码维护,用户只需更新或增加相应的服务即可实现功能的变化,提高了系统的应变能力。工作流的应用使用户的操作流程一目了然。自2015 年以来,苏州市地形图、地下管线、规划图等的质量检查均采用以上方法,取得了很好的效果,产生了良好的经济效益和社会效益。