刘 涛,彭清山,方 鹏,张 淼
(1.武汉市勘测设计研究院,湖北武汉430022;2.武汉大学资源与环境科学学院,湖北武汉430079)
城市空间数据库建库软件的设计与研究
刘 涛1,2,彭清山1,方 鹏1,张 淼1
(1.武汉市勘测设计研究院,湖北武汉430022;2.武汉大学资源与环境科学学院,湖北武汉430079)
对城市地理信息系统中空间数据的获取、预处理、转换、编码、监理、入库及更新等流程进行探讨,并对当前城市空间数据库建设中存在的一些问题进行分析,提出相应的解决方法。结合矢量数据编辑软件AutoCAD和GIS应用软件ArcGIS,探索一条可行的基于DLG数据的空间数据库建库技术路线。
城市地理信息系统;空间数据库;空间数据引擎;数据监理
城市地理信息系统(Urban geographic information system,UGIS)是GIS应用于城市系统而产生的服务于城市规划、管理、建设的一门可操作性极强的高新技术。随着城市的快速发展,城市地理信息系统的应用越来越广泛,对其需求也越来越多。UGIS建设首要解决的问题就是建立城市空间数据库,但城市空间数据建库任务繁重、容易出错,而且其质量直接影响着UGIS的应用。因此,对建库工作的研究具有非常深远的理论和现实意义。
本文首先对UGIS中空间数据的获取、预处理、转换、编码、监理、入库及更新等过程进行了理论探讨,并对当前城市空间数据库建设中存在的一些问题进行了分析,提出了相应的解决方法。然后,在实际系统开发中,基于空间数据库引擎ArcSDE,运用.NET、ObjectARX、Visual C++、Mapobjects2.2、ArcGIS Engine等开发工具对上述理论与技术进行了实践,为城市空间数据库建库技术的进一步研究以及相关技术的研究提供了可以借鉴的经验。
城市空间数据库的建库过程是一个复杂而繁琐的过程,涉及多方面数据的组织和管理,建库工作质量的好坏直接影响到后期UGIS的应用。本文讨论了一套可行的关于空间数据获取、组织、管理等的工作流程。
1.空间数据的获取
空间数据的获取是GIS建设首先进行的任务,它可以有多种实现方式,如数据转换、遥感数据处理以及数字测量等。其中,地图的数字化录入是目前被广泛采用的方式,也是最耗费人力资源的工作。在GIS中,录入的内容包括空间信息和非空间信息,前者是录入的主体。
2.空间数据组织
目前,城市或地区的基础地形图(1∶500,1∶1 000,1∶2 000等大比例基础地形图)已经基本完成了数字化工作,获得了数字线划图(DLG),但其数据采集阶段和成图阶段更多地考虑制图的需要,因此常常无法满足GIS应用的要求。随着空间数据库技术的发展,空间数据库引擎的产生为GIS的数据组织和管理提供了很好的技术保障。
(1)空间数据预处理
目前常规的数据处理方式是先利用AutoCAD软件完成数据的编辑工作,再转换成相应的GIS软件的格式,并在GIS软件中完成属性数据的录入工作,但此项数据录入工作是相当繁琐和费时的。在实际工作中,大多数作业员对AutoCAD软件已经非常熟悉,并且存在依赖思想,对专业GIS软件有一定的抵触情绪,使得属性数据录入工作量非常巨大。如果能够将空间数据的属性录入工作放在CAD软件环境下完成,并保持原有AutoCAD软件的操作习惯,将会大大提高数据录入的效率,从而提高整个GIS数据加工的效率。
在本系统中,笔者在AutoCAD环境下利用Visual C++6.0、ObjcetARX和MapObjects 2.2软件进行了二次开发,完成了图层标准化、属性数据录入(将每个要素的属性信息存储在扩展数据中)、数据检查、数据转换等工作。该部分处理流程如图1所示。
图1 AutoCAD下数据的预处理
(2)空间数据分类编码
对城市基础地理信息进行分类和编码,是建立城市基础地理信息数据库的一项重要的基础工作。通过分类编码,可将所有地理要素组织在科学的空间定位系统中,以保证城市基础地理信息存储与交换的一致性,并满足信息共享的需要。各系统可根据自己的需要进行编码,一般编码中的基本码部分应参考国家标准《基础地理信息要素分类与代码》(GB/T 13923—2006)。
(3)空间数据的元数据管理
在地理空间数据中,元数据是说明数据内容、质量、状况和其他有关特征的背景信息。随着计算机技术和GIS技术的发展,特别是网络通信技术的发展,空间数据共享日益普遍。因此,空间数据的内容、质量、状况等元数据信息管理就变得更加重要,并成为信息资源有效管理和应用的重要手段。地理信息元数据标准和操作工具已经成为国家空间数据基础设施的一个重要组成部分。
3.空间数据的检查(数据监理)
(1)数据检查的目的
数据质量的好坏直接影响着GIS应用、分析、决策的正确性和可靠性。数据检查(数据监理)的目的就在于对入库前的空间数据进行检查,确保入库前数据的准确性。在本系统中,数据监理的对象是对入库前的GIS数据(即经过AutoCAD环境下预处理后转换的数据)再次进行检查,以验证数据是否符合入库的规范。
(2)数据监理的主要内容
数据监理的主要内容包括:
1)数学精度的检查。主要包括图形的坐标系统正确性检查;图层的投影方式正确性检查;地形图的精度检查等。
2)属性精度的检查。主要包括图层完备性、一致性检查;图层属性结构的完备性、一致性检查;要素编码正确性检查等。
3)逻辑一致性的检查。主要包括:
a.点状要素的逻辑性检查。主要检查点状要素是否存在重点情况,即两个和两个以上的点完全重合。
b.线状要素的逻辑性检查。主要检查图形是否重复录入;要求闭合多义线是否封闭(如地类界线,境界线等)悬挂线(检查悬挂线本身的长度,检查悬挂线与最近线要素距离);伪结点的检查;同一要素的连续性检查(如线状水系、道路等);指定不可以自相交的要素类型是否存在自相交的现象(如等高线、水系、境界等)。
c.面状要素的逻辑性检查。主要检查图形是否重复录入;面状要素是否有自相交现象;畸变点检查;同一要素的连续性检查(如面状水系、道路等);相邻面状要素的共边性检查。
数据监理的工作流程如图2所示。
图2 数据监理的工作流程
4.空间数据的入库
本系统中空间数据的入库过程,实际上就是将本机空间、非空间数据,通过空间数据库引擎提供的应用接口(API)存储到大型DBMS关系型数据库的过程。空间数据的获取及入库流程如图3所示。
本系统服务于城市基础空间数据建库及综合应用,涵盖数据采集、加工、质检、验收建库、数据标准化、规范化及数据库综合管理、综合应用的一体化建库及应用过程。
图3 空间数据的获取与入库流程
1.系统技术路线
本系统综合利用.NET平台、Visual C++、ObjectARX、Mapobjects2.2、ArcGIS Engine9.3等多种开发平台进行综合开发。其中利用Visual C++、ObjectARX、Mapobjects2.2完成AutoCAD预处理模块的开发,利用.NET平台和ArcGIS Engine完成独立建库软件的开发。
2.系统基本框架
本系统由AutoCAD预处理模块、数据加载、图层控制模块、数据监理模块、数据入库、更新模块、数据编辑模块、查询、统计、分析模块、数据输出模块和元数据管理模块几部分组成,系统的总体结构如图4所示。
3.系统功能设计
(1)数据预处理子模块
本模块在AutoCAD环境下利用其二次开发控件ObjectARX、MapObjects 2.2完成。以实现对原始的基本地形图矢量数据进行预处理,使其标准化、规范化,并完成相关属性数据的录入工作。经过预处理的数据,经检测满足要求后进行数据转换,转换成ArcGIS的SHP文件格式,初步满足数据入库的要求。
AutoCAD环境下本模块数据预处理流程如图5所示。
图4 系统总体结构图
图5 AutoCAD环境下数据预处理流
(2)数据加载、图层管理子模块
该模块主要完成数据接口设计及图层规范管理控制。经过AutoCAD预处理后的空间数据可通过独立系统加载进来。由于ArcGIS Engine支持广泛的数据格式,如ArcInfo COVERAGE、Shape files、ArcSDE图层、ImageLayer、DXF、DWG和大量的栅格图像格式BMP、GRID、JPG等,实际上就解决了数据接口的大部分问题,关键是如何将这些数据进行分类管理起来。
在ArcGIS Engine中,对于SHP文件而言,是以CMoMapLayer的形式进行加载的;对于栅格图像是以CMoImageLayer的形式加载的;对于DXF、DWG文件则是分为点、线、面、注记的形式分别加载的。在程序中可以自己定义一个CLayer来管理各类图层信息,在CLayer类内部建立标识码来标识当前加载图层的类型,对于不同的文件类型分别调用不同的加载模块函数。
(3)数据质检、数据监理模块
该模块主要完成数据的质量检查工作,系统针对不同比例尺同种数字产品制定了相应的质量规则和要求。对同一数据,质量检查的规则不是一个定值,而是随着产品的比例尺、性质、要求的改变而变化的。根据以上的情况笔者给出了“规则库”这个概念。在本系统中规则库以Access数据库表的形式存储,数据库结构预先定义好,用户根据不同比例尺的数字产品填写相应的规范内容,系统在调用数据监理模块时先调用数据库中的规则,然后再与实际数据进行比较,进而得出检查结果。
(4)数据入库、更新、维护子模块
1)数据入库。经过数据预处理和数据监理后的空间数据,可以认定为合格的数据,可进行入库处理。将符合要求的数据存放到已经定义好的数据库中。一般来说,一幅图的入库,需要经过检查→预入库→修改→再入库等几个反复过程,才能满足需要入库。同时为了保证一个工程的完整性,允许建立临时的工程进行数据的预入库,直到最后没有任何错误时再将数据正式入库。
在UGIS中,任何空间地理数据都必须纳入一个统一的空间参照系统,才能进行各种空间分析,为规划、管理和决策提供科学依据。
2)数据更新与维护。一方面通过数据更新机制不断获得现势数据对数据库进行更新维护;另一方面必须保存历史数据以便进行历史查询和数据对比等操作。数据更新的基本结构如图6所示。
图6 数据更新基本结构
(5)数据编辑子模块
数据的编辑实际上就是对属性数据和地理目标的空间位置信息进行修改。数据编辑的主要内容是对地图数据的增加、删除和修改。其中,增加和删除操作的单位都是一个完整的空间目标(即一条完整的空间坐标记录和一条完整的属性数据记录);而修改操作相对就要复杂一些,它不但要求对某个属性数据字段进行修改,还应能对空间坐标数据进行修改(包括对空间目标的节点进行移动、增加、删除等操作)。
(6)数据查询、统计、分析子模块
系统具备基本的GIS查询、统计和分析功能。主要包括:
1)查询功能。包含图形查属性,跨图层进行空间要素属性信息的查询;属性查图形,对满足属性条件的空间要素的查询、定位;SQL查询,对任意图层、任意字段进行SQL复合查询;空间关系查询,即落入查询,穿越查询,包含查询;元数据的查询等。
2)分析功能。包含长度、面积、坐标、角度的量算;空间缓冲区分析;拓扑叠加分析;行业、专业应用的空间分析等。
3)统计功能。包含空间分析结果的统计;查询结果的统计;指定图层、字段项目的统计;行业、专业应用的统计等。
(7)数据成果输出子模块
该模块用于用户对空间数据库内的数据进行提取,可以按图幅、任意范围提出空间数据;制作各种地图和专题图。数据输出为GIS格式(ArcGIS SHP)或CAD格式(AutoCAD DXF),可满足相关用户的数据交换。
(8)元数据管理子模块
系统中对于空间数据的元数据,建立元数据库,以Access数据库表格进行存储。系统模块开发中利用ADO.NET对元数据库进行输入、编辑与维护管理、查询检索、发布等功能。
在武汉市人防地理信息系统中,该建库软件被用户应用于系统空间数据的建库工作。对武汉市8 000 km2基础地形图,数千项人防工程、人防警报等专题数据完成了系统的建库任务,取得了比较好的效果,目前该系统正被应用于武汉市人民防空办公室,为武汉市人防规划和管理工作提供服务。图7~图8为系统界面截图。
图7 AutoCAD预处理模块截图
图8 城市空间数据库建库软件截图
城市空间数据库的建设是UGIS需要首要解决的问题,同时,空间数据库的建设在整个GIS工作流程中所占用的人力、物力和财力也是最大的。因而,城市空间数据库建设的好坏将直接影响到后期GIS的应用,甚至会影响到整个GIS系统的成败。
本文分析了城市空间数据库建库中的数据获取、数据编码、数据预处理、数据转换、数据监理、数据入库、数据更新与维护以及数据输出与应用等过程。针对目前应用最多的DLG数据管理平台Auto-CAD和GIS应用平台ArcGIS,提出了整个数据入库的解决流程,并在Visual C++、.NET等开发平台下,借助ObjectARX、MapObjects 2.2和ArcGIS Engine等二次开发工具和接口开发出了城市空间数据库建库软件,并在实际应用中取得了较好的效果。
[1] 马明栋,张曼莉,张春皓.城市地理信息系统的基本功能[J].阜新矿业学院报:自然科学版,1997,16(3): 328-331.
[2] 邬伦.地理信息系统原理方法和应用[M].北京:科学出版社,2001.
[3] 李德仁,龚健雅,李京伟,等.中国空间数据基础设施建设[J].测绘通报,2002(11):4-7.
[4] 吴立新,史文中.地理信息系统原理与算法[M].北京:科学出版社,2003.
[5] 陈述彭,鲁学军,周成虎.地理信息系统导论[M].北京:科学出版社,2000.
[6] 崔洪波,丁明柱.几种基础地理信息数据库建库方式的比较[J].东北测绘,2002,25(2):12-13,15.
[7] 黄坚,王丹,丁军.城市公共基础空间数据库建设方法初探[J].测绘通报,2003(2):42-43,46.
Design and Research on Software for Urban Spacial Database
LIU Tao,PENG Qingshan,FANG Peng,ZHANG Miao
0494-0911(2011)10-0060-05
P208
B
2010-05-25
刘 涛(1979—),男,湖北石首人,博士生,工程师,主要从事地理信息系统应用与开发工作。