基于规则的组件式数据监理系统设计

2010-04-18 10:35:44石吉宝张俊邓芳
城市勘测 2010年2期
关键词:值域定义要素

石吉宝,张俊,邓芳

(成都市勘察测绘研究院,四川成都 610081)

基于规则的组件式数据监理系统设计

石吉宝∗,张俊,邓芳

(成都市勘察测绘研究院,四川成都 610081)

从分析数据错误入手,详尽阐述了基于AutoCAD平台的组件式数据监理系统设计方法,数据规则设计原则,最后,举例说明了程序的实现过程以及程序执行的效果。

规则;组件;拓扑错误;AutoCAD

1 引 言

数据是GIS的灵魂,一个好的GIS系统必须要有好的数据质量作为支撑。GIS数据的生产过程包括数据采集、数据处理和数据入库等几个部分。数据质量完全取决于每个生产环节的质量控制。一直以来人们对数据质量的控制都非常重视,但是随着技术不断发展进步,传统的人工检查已经远远不能满足需要了。计算机程序检查的方式顺势而生,并且展现出了不可比拟的优势。但是很多质量检查程序都是针对具体的数据而编写的,依据一定的数据规则设计一套数据监理软件十分必要。

2 数据分析

目前我国绝大部分数据生产单位使用的都是AutoCAD软件,而且几乎所有的GIS软件也都接受Auto-CAD数据格式的数据,所以本数据监理软件系统都是基于AutoCAD平台。

2.1 CAD数据描述

在CAD的数据模型中,点、线、面等几何要素以二进制形式保存于文件中,相关的注记、颜色、线形等属性也与几何数据放在一起。CAD的数据模型是一种开放式的数据模型,该模型具有强大的绘图功能和矢量图形处理的能力,广泛应用于工业设计、机械设计、建筑设计、城市规划之中。

CAD的数据组织是按照如下形式进行的,文件→图层→图元。由于每个数据生产人员的水平和责任心都不一样,CAD的开放式数据模型再加上这样的组织方式不可避免会造成各种不同的错误。而这些错误将会对我们后期的数据处理和入库带来巨大的麻烦。

2.2 数据错误类型分析

按照数据错误的类型来分,错误大致可以分为属性错误、逻辑错误和拓扑错误三类。

属性错误:属性错误是指图元的相关属性没有按照数据规则中规定赋予而产生的错误。这种错误多因数据生产人员工作疏忽或数据生产软件设计不完善造成的,这种错误在传统的数据检查中很难发现。

逻辑错误:逻辑错误是指图元本身存在逻辑上或者图元的存在与现实逻辑不符的错误,这种错误与属性错误可能会有重叠,即同一错误既是逻辑错误又是属性错误。这种错误在传统的数据检查方法中基本是不能发现的,但是这种错误确往往会对数据入库环节造成致命的后果。

拓扑错误:顾名思义拓扑错误是指图元与图元直接存在的错误。这种错误在传统的数据检查中,对于很明显的错误可以发现但是对那些不明显的错误,却毫无办法。

3 系统设计

3.1 系统设计

系统设计必须坚持开放性原则、可扩展性原则和易用性原则等。要做到这些原则,系统设计时完全按照.net的组件设计模式进行,保证系统上的松耦合性从而达到系统可以任意扩展。系统设计主要包含了基础类包、数据错误类包、错误检查类包、用户界面类包。这些组件都是尽量减少联系、保持独立为软件维护打下很好的基础。

(1)基础类包

基础类包中包括数据检查辅助类、数据检查输出场景类和实体包装类。

数据检查辅助类:提供辅助计算功能,如获取实体的要素代码、计算面积、距离等。

数据检查输出场景类:主要提供数据检查错误的保存操作。系统提供了一Access数据库记录数据检查错误的数据输出场景类——AcessDataCheckContext (提供检查错误保存到Access数据库的操作)。类对象如图1所示。

图1 数据检查错误输出类关系示意图

实体包装类:提供对CAD中的点、线实体包装,使其采用统一的接口实现对点、线实体的操作处理。系统中提供了pointAdaptor和PolylineAdaptor,类对象关系如图2所示。

图2 实体包装类对象示意图

(2)数据错误类包

系统中定义了设计的所有错误类型,而且部分可以修改的错误还定义了错误修改方法,系统中定义的所有错误类都派生于抽象类ErrorObject,在抽象类中定义了错误对象的一些方法,所有错误类型都继承这些方法。

(3)错误检查类包

系统设计了针对每种数据错误类型的检查方法。这些针对每种错误类型的数据检查类都派生于Data-Check这个基类。每一个检查类都相互独立。

(4)用户界面类包

提供数据检查参数配置、检查类型选择、错误浏览、检查进度浏览等几个用户界面。

3.2 规则设计

规则:所谓规则是指利用数据库定义了每个要素在数据表现上的原则要求,是程序设计的基础。

本系统中主要定义了3大类规则,分别是要素特性规则、要素拓扑规则和要素值域规则。

(1)要素特性规则

要素规则中定义了所有要素在CAD的文件中所有特性,包括编码、颜色、图层等。具体的要素规则表数据结构见表1。

要素规则表数据结构 表1

(2)要素拓扑规则

在进行要素的拓扑规则定义时,考虑到基本所有要素都需要进行拓扑规则检查,所以将那些不需要进行拓扑规则检查的要素记录在规则表中。这样可以有效增大数据库的检索速度,提高检查效率。在拓扑定义中定义了重复对象、微短线、微小面、线面相交、面面相交、面裂缝等拓扑规则。拓扑检查例外表如图3所示。

图3 拓扑检查例外表示意图

(3)要素值域规则

要素的值域规则指的是所有要素的属性字段的值域范围,定义这些规则可以保证要素的属性正确性。要素的值域规则定义了单一值域规则和范围值域规则。值域规则中定义了值域类型表、值域表、单一值值域表、范围值值域表和适用代码表,从这些表名不难看出值域类型表是指定义了单一值和范围值两种类型的表,而值域表定义了所有有值域的要素的属性字段名称和该字段的值域类型,单一值值域表定义了所有单一值的取值,范围值值域表中定义了所有范围指的取值范围,适用代码表中定义的与所有值域编号相对应的要素编码。单一值值域表和范围值值域表如图4所示。

图4 单一值与范围值值域表图

3.3 系统实现

系统是采用Visual studio C#2008+Object ARX在AutoCAD 2006平台下进行二次开发。系统总体运行流程示意图如图5所示。

图5 系统总体运行流程示意图

系统首先指定一个检查规则,由用户选择需要检查的类型。系统在设计时充分考虑了使用的方便性,可以由用户选择检查所有类型错误、检查某种类型错误或者多文件批量处理等方式。检查到要素错误按类型写入错误数据库,并且提供了浏览错误并定位到要素和自动修改要素错误的功能。最后可以输出数据质量报告。

下面就多边形相交检查给出具体实现代码,效果如图6所示。

图6 多边形相交检查示例

4 结 语

该软件经过测试证明,可以有效地进行CAD图形数据的属性检查和拓扑检查。错误检查率能达到92%以上,错误检查正确率保证在98%以上,该软件可以高效高质量地进行数据检查工作。本软件将进一步优化拓扑检查算法,来提高程序运行效率,在GIS数据建库的数据监理中发挥更大作用。

[1]张彦彦,周卫,郝思宝.基于AutoCAD二次开发的矢量地形数据检查.现代测绘,第29卷第6期,2006.11

[2]石吉宝等.基于规则的组件式数据监理系统的详细设计. 2008.4

Design of Data Supervision System of Components Based on Regular

Shi JiBao,Zhang Jun,Deng Fang
(Chengdu Institute Of Survey and Investigation,Chengdu 610081,China)

This paper analyzes the data error,and introduces in detail the method of design of data supervision system based on regular and the design principle of data regular.Finally,it illustrates the implementation process and effects of program.

Regular;Components;Topology error;AutoCAD

1672-8262(2010)02-38-03

P208

B

2009—09—18

石吉宝(1977—),男,工程师,主要从事GIS方向的应用与研究工作。

猜你喜欢
值域定义要素
函数的值域与最值
掌握这6点要素,让肥水更高效
当代水产(2020年4期)2020-06-16 03:23:30
多角度求解函数值域
值域求解——一个“少”字了得
破解函数值域的十招
观赏植物的色彩要素在家居设计中的应用
现代园艺(2017年22期)2018-01-19 05:07:22
论美术中“七大要素”的辩证关系
也谈做人的要素
山东青年(2016年2期)2016-02-28 14:25:36
成功的定义
山东青年(2016年1期)2016-02-28 14:25:25
修辞学的重大定义
当代修辞学(2014年3期)2014-01-21 02:30:44