|
|
|

数据建库之我见

  在betway体育的建设中,基础地形库的建设大概要占到整个系统的70%左右。由此可以看到数据库的建设在GIS 系统的建设过程中占有极其重要的地位。 但是,在建库的过程中总会碰到各种各样的问题,从而导致建库的困难,甚至无法完成建库的工作。 要解决...

作者:蓝色森林来源:https://www.shaofei.name/blog/blog.asp?name=bluewood|2006年07月01日
在betway体育的建设中,基础地形库的建设大概要占到整个系统的70%左右。由此可以看到数据库的建设在GIS 系统的建设过程中占有极其重要的地位。  
但是,在建库的过程中总会碰到各种各样的问题,从而导致建库的困难,甚至无法完成建库的工作。  要解决建库遇到的各种问题,顺利的完成建库,就要对建库的整个过程进行分析,从中找出影响建库的最主要的因素,并认真的分析这些因素产生的根本原因,制定出解决这些问题的解决方案,从而才能有意识的,有计划的消除在工程实践中各种不确定和确定因素对建库的影响,从而顺利的建库。  

从整个的建库过程来看,建库主要由以下3个过程组成:  

1、  数据库建模过程。这一过程主要是根据行业应用特点及对其的理解,制定出比较规范的数据规范,在逻辑上建设数据库。  

2、  数据监理过程。这一过程主要是检测数据的正确性,从而保证建库的准确性。  

3、  利用各种工具将各种数据入库的过程。此过程主要是将可以得到的各种数据纸制数据,矢量数据,栅格数据,数据等快速、准确的入到库中。  

下面对以上三个过程在建库中的作用进行详细分析:  

一 数据建模过程  
在数据建模过程中,所作的工作主要是根据对行业的理解,在逻辑和概念上对数据库进行设计,其影响的是数据库建设完毕后的通用性和可扩展性,和建库遇到的各种问题(主要为数据问题)没有十分必然的联系,故它不是影响建库的最主要的矛盾。  

二 数据入库过程  
在数据入库过程中,其核心内容是如何依据所制定的数据规范将各种格式的数据,准确的、快速导入数据库中。这个过程和数据有直接的接触,因此值得分析。  

这一环节遇到的问题,归根结底来说,就是如何解决不同开发平台之间数据交流的问题,即多格式数据源集成的问题。  

目前,实现多源数据集成的方式大致有三种:即:数据格式转换模式,数据互操作模式,直接数据访问模式。  

1.  数据互操作模式数据互操作模式是OpenGIS consortium(OGC)制定的规范。这种模式和数据入库的思路不同,故不作深入讨论。  

2.  直接数据访问模式直接数据访问模式是指在一个GIS软件中,实现对其他软件数据格式的直接访问,用户可以使用单个GIS 软件存取多种数据格式。以ARCGIS 为例,其可以打开多种GIS 平台的数据,如常见的dwg 格式,Dxf格式,dgn格式等等。  

3.  数据格式转换模式格式转换模式是传统的GIS数据集成方法,也是入库的基本思想。在这种模式下,其他数据格式经专门的数据转换程序进行格式转换后,就可以进行入库了。这是目前GIS系统集成的主要办法。基本上每个GIS平台都提供了一些数据转换工具,以ESRI公司的GIS 平台为例子,其提供了ArcToolBox工具箱,功能比较完善和强大,基本上支持所有市面上主流的各种GIS数据,譬如Autodesk公司的DWG格式文件,DXF格式文件,mapInfo 公司的MIF 格式,Intergraph的dgn格式,以及各种栅格必威现金回扣形数据等等,基本上满足了一般数据入库的要求。此外,市面上还有很多专门用于转换数据格式的专门工具,例如FME系列工具等,功能十分强大和十分方便灵活。由上可以看出,只要提供的源数据是正确的,符合规范的,那么利用以上工具再加上自想开发相关工具就可以十分方便的将数据导入到数据库中,从而顺利的完成建库的工作。因此,源数据的准确性和规范性就成为建库成功的十分关键的因素。可以这么说,只要数据是准确的,符合规范的,那么建库就会比较顺利的完成。由此看来,数据监理过程就显得十分重要,它是建库能否顺利进行的关键所在。  

那么,数据监理到底要做什么工作,为什么要那么做,需要经过什么样的过程,什么样的准备,才能在建库的初期阶段就能有预见性的预测出可能遇到的问题,并有条不紊的解决这些问题呢,那就要仔细的分析是什么导致了数据的不准确,数据的不规范。要找到导致数据不准确,从而影响建库的顺利进行的原因,我认为主要应该从两个方面去分析,即数据的生产过程,以及我们需要什么样的数据,即什么样的数据是规范的。  

三 数据的生产过程  
数据生产过程主要包括2个比较大的部分,各种模板的准备阶段,以及数据输入阶段。以下为AutoCAD平台下数据的生产过程为例。  

【准备阶段】  
在AutoCad 上按照设计的要求,配置好工程必威现金回扣纸模板,即准备工作。此过程包括 定义必威现金回扣层名称,配置必威现金回扣层的各种属性(颜色,线性,线宽,必威现金回扣形符号等等)。这一过程是数据生产的准备阶段。一般来说,这一过程可以通过配置文件由程序自动完成,人在其中参与的情况不是很多,而且逻辑上非常简单,因此这一过程产生错误的可能性很小。  

【数据生产阶段】  
这一过程又分为栅格数据矢量化输入和人工输入两个比较大的方面。   


栅格数据矢量化输入 是通过扫描仪器输入栅格数据,然后通过必威现金回扣像识别算法,进行矢量跟踪,从而确定实体的空间位置。在这一过程中,由于必威现金回扣像的不清楚,以及程序算法的问题,会产成各种各样的问题。经常见的错误大概有以下几种:房屋等面状闭合物体留有缺口,即不封闭(A)。扫描后的线段存在很多重复点的现象(B)。扫描后的线段存在自相交的情况(C)。在必威现金回扣像的边缘,扫描后的线段出现畸变现象(D)。在必威现金回扣像的边缘,存在数据丢失的现象(E)。由于必威现金回扣像定位不准,导致扫描后的实体,整体基准点偏移,从而导致相邻的地区存在必威现金回扣形重叠,交叉的现象(F)。这些现象,对数据建库有很大的影响,其中基准点偏差的影响尤为显著。这些错误分别要通过 封闭检查,重复点检查,自相交检查,基准点检查和校正等检查工具去发现和排除这些错误。在这些错误中,由于错误A、B、C、F 在逻辑上比较简单,因此比较好解决。错误D,E 则比较难于检查和解决。  

人工输入 是指数据录入人员按照要求手工在必威现金回扣纸上进行绘必威现金回扣,和给必威现金回扣形设置、添加各种属性的过程。这一过程是十分繁重的,重复的,枯燥的重复性劳动,因此就会产成各种各样的错误,从而影响产生数据的质量。从产成的错误的原因来看,可以分为两个大的方面。  

精度问题造成的错误,这种原因往往造成必威现金回扣形拓扑关系错误。譬如:  

应该闭合的面状物体没有闭合。应该端点相连的直线没有连接。不应该重叠的线段存在重叠的部分。不应该交叉的必威现金回扣形存在交叉。面与面之间存在缝隙。面与面之间发生重叠。基准点和控制点定位不准确。以上错误也会对建库产生不良的影响,也需要响应的的检测和校正工具去发现和纠正这些错误。  

人为疏忽造成的原因。譬如:  

必威现金回扣纸名称(必威现金回扣幅编号)和必威现金回扣形实际所在的坐标不匹配。(此错误导致计算基准点是发生严重偏差。)重复copy多个相同的必威现金回扣形的错误。(导致存在多个完全相同的必威现金回扣形物体。)  

有属性的必威现金回扣形物体忘记赋值。(导致属性丢失。)有属性的必威现金回扣形物体错误赋值。(导致属性错误。)必威现金回扣幅边框被删除或者移动位置。(导致无法找到基准点或者基准点定位错误)必威现金回扣幅边界上的必威现金回扣形没有很好的完成接边处理。(造成相邻必威现金回扣形不匹配)。这些错误都不可避免的会在数据生产的过程中发生,如果不加以检测和进行修正的话,也会十分影响建库的准确性和使用性,因此应予以解决。  

四 建库需要什么样的数据   

我们需要什么样的数据,即什么样的数据是规范的,是可以被系统所识别的,这又返回到入库的第一个过程中,即数据库标准的制定和数据规范上去了。在这一步骤中,我认为最主要的矛盾在于,由于GIS 平台的不一致,各个平台对空间数据描述的模型不同,侧重点不同,导致了一个平台存在的必威现金回扣形模型在另一个平台不能找到相对应的必威现金回扣形,从而导致转换前后必威现金回扣形丢失甚至无法转换的结果。  

其中常见的问题如下(以AutoCAD为例)  

AutoCAD存在拟合曲线Spline对象,必威现金回扣形块Block对象,区域Region 对象,代理对象等许多特殊的必威现金回扣形对象,在GIS系统平台中没有响应的必威现金回扣形对象和它相对应。因此要想将这些数据入库,必须首先将以上对象进行转化,使之变成GIS可以识别的必威现金回扣形对象。  

AutoCAD 的扩展数据由于为AutoCAD 所特有,因此也必须寻找解决办法,使之能被GIS所正确读取。  

此外还包括数据规范中规定的各个必威现金回扣层之间的相互的空间拓扑关系,这些都要求有相应的检测和修正工具予以保证。  

五 结论  
由以上的分析可以看出,数据生产过程是数据的起点,建库的各种规范,即我们最终需要的数据是数据的终点,从数据生产中找原因是正向思维,从建库的规范找原因是逆向思维,它们包含了整个的建库过程,因此解决了这一过程遇到的问题,可以说就基本上为建库扫除了障碍,建库就能比较顺利的进行。有了解决以上各种问题的工具,我们就可以高枕无忧了吗,我觉得还为时过早。根据我个人的经验以及上面的分析,可以看出,数据监理是一个工程性质很鲜明的过程。它和建库的要求以及所提供的源数据有很大的关联关系,这就要求我们要按照典型的工程过程去对待。由于我在系统工程方面的理论知识有限,故只能简单的,感性的作出如下的描述,我认为,数据监理大概要经过如下几个过程:  

1.   准备阶段:此阶段主要工作是拿到准备入库的各种源数据,对这些数据进行研究和分析,从中发现数据中存在的明显的和潜在的错误。  

2.       根据数据建库标准以及发现的各种错误,分析这些错误可能对建库造成的影响,按照严重程度、优先级别、逻辑关系等将错误分类,并制定处解决问题的方案。  

3.       按照制定的解决方案有计划、有步骤的纠正这些错误,使之符合建库的规范。  

4.       这样循环往复,直到消除所有的错误(理想情况,工程实际中不存在)。  

5.       在真正入库前,首先进行抽样检测,并小规模进行试验性入库。  

6.       在试验性入库成功后,进行大批量的实际入库。  

7.       入库完毕,对入库成果进行抽样检查,查找不正确的地方,进行修正。  

8.       入库正式完毕,交付使用。  

至此,整个建库工作进行完毕。  


以上就是我对以往的工作总结和回顾,以及自己对数据建库和数据监理的一些个人理解和看法,希望能对论坛上的朋友建库工作起到一定的帮助,以上仅供参考。 

上一篇:GIS数据库ORACLE的某些参数设置之三

下一篇:关于无缝空间数据库若干问题的探讨