摘要:数值模拟数据库系国土资源部中国岩石圈三维结构数据库下属子库之一。该数据库在Windows 2000环境中开发,以Visual Baisic 6.0和Arc/Info的二次开发工具MapObject作为应用系统开发平台,最终实现了一个具有空间数据、属性数据、元数据等多角度查询功能的系统。本文详细介绍了其研发的主要过程。
关键词:岩石圈结构;数值模拟;数据库
一、引言
数值模拟是随着计算机的发展而快速发展起来的,它从力学分析开始,对不均匀介质和复杂形状物体进行应力、变形和破裂分析,并得到精确的结果。自从把数值模拟方法引入地质构造分析以来,对地球科学的定量分析做出了重要贡献。利用数值模拟方法和许多区域性地质调查、地球物理、地球化学等探测资料,国内外科学家开展了大量以岩石圈构造与演化为研究目的数值模拟工作[1-3],取得了诸多宝贵的研究成果,这些成果有力地推进了岩石圈三维结构的研究。为了保存和有效地利用这些科研成果,国土资源部开展了中国岩石圈三维结构数据库项目研究,其中就包括了数值模拟数据库。
利用数值模拟技术进行岩石圈结构研究所需要的已知资料和研究成果大多数以二维或三维的空间数据、图像、图形、探测数据文件等方式记录,针对相应的地理空间实体定义数据信息,而以往的MIS系统大多数是通过关系数据库直接定义数据结构、建立数据信息表,这种普通的数据库使空间数据检索不直观,不利于综合分析,这类数据库已经无法满足岩石圈结构研究的需要,因此需要兼顾其空间数据的特点建立符合岩石圈研究需要的数值模拟数据库管理系统。
地理信息系统(Geographical Information System ,简称GIS)[4]的诞生为建立具有空间特性的数据库管理系统提供了条件。对于地理信息系统的研究和应用归纳概括起来主要有二种情况:一是利用GIS系统来处理用户的数据;二是在GIS的基础上,利用它的开发函数库二次开发用户的专用地理信息系统软件。如果要实现具有空间管理、查询和分析功能的专业数据库,就必须将地理信息技术集成在数据库平台中,形成一个独立的系统。本文选用了ESRI公司的二次开发工具MapObjict[5]进行二次开发,建立数据库管理系统。
二、系统总体设计
数值模拟数据库主要功能是查询数值模拟的研究成果,模拟方法、边界条件、物性参数等各种数据资料,并建立可视化的显示,实现基本的数据分析或数据编辑等。根据已有的数据类型将后台数据分成两类进行管理,即属性数据和空间数据。属性数据库采用SQL Server2000进行管理,空间数据则采用文件的管理方式,统一利用Shape file文件存储。在两者之间需要对空间几何数据和属性数据建立关联,实现两种异构数据的统一。要实现这两种数据的关联,必然要引入相关的接口,本文分别采用了微软的ADO组件和前文所述的MapObject组件作为属性和空间关联的桥梁,实现双向交互。
三、系统数据组织
(一)建立属性数据库
属性数据是整个数据库的基础,它存放在关系数据库中。若实现属性数据的高效检索首先要建立符合数值模拟数据检索和分析需要的实体-关系模型。本文对所有的数据资料进行规范化整理,在数据库中生成六个表:基本信息表、相关信息表、模型描述表、已知资料表、模拟结论表、模型图片表。通过基本信息表中的“mn_id”主键和其他表建立主外键的关联,通过建立一对一或一对多的关系实现对其他所有属性数据表的查询。该数据库中的位图图片完全是以二进制的形式存储在一个单独的数据表中,在数据库中这种二进制形式数据的存放是以变长记录的形式存在的,必须要有专门的读写程序来完成图片的存储和显示,本文采用了ADO组件的Append chunk方法,将图片存储在数据库中,然后利用与Append chunk对应的Get chunk方法,将图片由表中读出并显示成原有的位图格式。这种图片的存储方式避免了用相对路径存放图片不便于代码移植的缺陷。
(二)空间数据组织
空间数据主要用于空间检索、分析、编辑等,大多为矢量数据。除基本的地理底图外,本文将所有的数值模拟成果分为六个主题:地幔对流、构造应力与地震、裂谷与盆地、削减俯冲带、造山与盆山耦合、综合。某个模拟研究成果可能是沿剖面(线)进行的,也可能是在面积性区域(面)上进行的。主题与线或面组合形成本数据库所划分的12个图层:例如图层1是沿剖面模拟的地幔对流问题。空间数据是利用Shape file格式的文件编辑的。为了方便显示本文统一采用了Krasovsky的球形模型、Lambert坐标的投影方式,中央经线以105.000000度经线为基准、平行纬线采用了25.000000度和47.000000度纬线。
(三)空间数据和属性数据之间的关联
利用MapObject组件和ADO组件实现空间和属性的交互访问前,首先要考虑由文件存储的空间几何数据和存储在关系数据库中的属性数据之间的关联,只有通过统一的关联关系才能实现互操作。在Shape file文件中通常包含了三个基本文件:.shp文件用于存放空间数据,.dbf文件用于存放属性数据,.shx文件建立空间数据索引,属性数据可作为Shape file的内表存在,并且几何和属性间的一一对应关系是基于记录数目的。文中已建立的12个图层中的一条记录都对应了一个数值模拟的项目,因此可将基本信息表作为每个空间图层的内表存放,利用唯一的主键“mn_id”与属性数据库中的各表建立一对一或一对多的关联关系。通过建立空间数据和属性数据的关联,可灵活地实现两种数据的双向查询。
四、系统主要功能的实现
(一)地理信息检索平台的开发
在岩石圈三维结构研究中,空间平台的数据检索具有显示直观、利于分析等特点,是主要的检索方式,利用MapObject组件在数据库管理系统中可独立地集成地理信息检索平台。MapObject包括一个地图控件(map控件)和一组对象。地图控件可用来实现平台的可视化效果,如地图浏览和鸟瞰图都可以直接利用这个地图控件来创建。通过使用不同的对象可实现空间平台的各种操作。在此本文仅列举几个常用对象Maplayer,DataConnection,GeoDataset,Recordset,TrackingLaye。
Maplayer 是地图层对象,新的空间记录集也可以通过在 MapLayer 运用相应的方法而被创建。
DataConnection 是MapObject通向地图数据的通道。即用户进行空间查询的接口。
GeoDataset是描述图层的地理数据库。每个图层都对应一个GeoDataset对象。
Recordset 代表一个图层的记录,可通过该目标对图层空间的所有属性数据进行查询。
TrackingLaye可以动态拖拽元素而无需重显,这对实时数据获取是十分理想的。本数据库利用它实现对图层的刷新、展示操作以及鸟瞰图功能。
MapObject可支持的空间数据包括shapefile、AutoCAD图件、Coverage、SDE图层和大量的栅格图像格式。本文在系统中编写了一个函数Addfile,它可根据所选图层的扩展名调用相应的函数来展开图层。如显示一个Shape file 格式的空间数据文件,AddFile会调用与其相应的addShapeFile函数,如下代码:
Dim dCon As New DataConnection
Dim ShpLayer As New MapLayer
Dim gSet As GeoDataset
dCon.Database = app.path
Set gSet = dCon.FindGeoDataset(shpFile)
ShpLayer.GeoDataset = gSet
map1.layers.add ShpLayer
利用DataConnection对象,可得到一个地图数据,该地图数据被记录到一个GeoDataset对象的实例中,而地图对象即Maplayer描述的各种地图特征是从GeoDataset得到的。经过这一系列过程后就可利用地图控件(map控件)的各种方法来操作这个地图对象了,从而可集成一个地理信息的平台,实现地图漫游、编辑、基本的空间分析等操作。
(二)空间查询模块的开发
空间信息的查询主要靠鼠标对图层信息的捕捉,即一点到底。为实现该功能,编写了Identify函数,通过获取空间的点坐标信息,在所有展开的空间图层中检索该坐标所对应的地理元素(即点、线、面)记录集,利用Recordset 对象可得到所有记录的属性信息,也就是空间图层的内表中的基本信息。最后利用基本信息中的”mn_id”号,通过ADO控件查询后台数据库,进而进入到属性数据库的查询中。
同样本数据库系统也建立了普通的属性数据检索平台,如果用户先进入到属性检索平台,也可在空间平台显示查询结果。当用户需要由属性平台进入空间平台时,系统会根据模拟主题的分类,检索到该项目所在的图层,该图层包含的所有项目都将在空间平台显示,但是根据项目ID,被检索的具体项目可突出显示。如本文利用map控件自带的方法FlashShape,将查询到的模拟项目闪烁显示。
由此可见,该系统实现了由空间到属性和由属性到空间的双向查询功能。在属性查询模块与空间查询模块相互调用的过程中运用了大量的API的函数、map控件及MapObject对象的方法、属性、事件。
(三)元数据查询模块的开发
元数据是空间数据共享的基础信息,是描述数据的数据,通过元数据的查询可更详细地了解空间数据信息。本文利用总项目开发的统一的元数据生成器,编辑并生成12个空间图层的元数据,元数据包括了标识信息、数据质量信息、空间数据组织信息、空间参考信息、实体与属性信息、发布信息和元数据信息。在该系统中集成了元数据查询窗体,以树结构的形式展示出来。树结构中包括了数值模拟的六个主题,每个主题下面包括两个子节点:剖面模拟和平面模拟,所有的子节点分别对应3.2中空间数据组织的12个空间图层,通过点击节点的名称即可查询到相应的元数据。系统对元数据提供了四种浏览格式:ZGYSQ3D格式、ESRI格式、XML格式、FGDC格式。
五、结论
数值模拟对岩石圈结构研究具有重要意义,但它的研究成果主题丰富,形式多样,数据格式各异,不利于成果的保存和数据的再次利用。本文利用MapObject组件,将地理信息平台与普通的数据库管理系统相结合建立数值模拟数据库,满足了多种类型的数据管理、查询、编辑等需求,兼顾了地学研究的空间性特点。此外通过对数值模拟研究成果的提取,合理地建立了属性数据的实体-关系结构,为数据的高效管理奠定了基础。
致谢
在数据库建设过程中,高锐研究员、许惠平教授、管烨研究员给予了大力帮助,并进行了一系列的有益讨论,在此一并表示衷心感谢!
参考文献:
[1]王仁.有限单元等数值方法在我国地球科学中的应用和方法.地球物理学报,1994,37(1):128~137.
[2]韩露,尉晓玮,张贵宾.有限元等数值模拟方法在我国岩石圈构造研究中的应用与发展.地球物理学进展,2004,19(4):953~960.
[3]陆诗阔,蔡永恩.青藏高原动力学数值模拟方法与研究进展.2004,26(5):547~559.
[4]陈述彭,鲁学军,周成虎.地理信息系统导论.北京:科学出版社,1999.
[5]王伟长.地理信息系统控件—MapObjects培训教程.北京:科学出版社,2000.
[6]ESRI. ArcGIS9 Understanding ArcSDE, ESRI Press,2004.