韩绍阳,柯 丹,侯惠群,胡水清
(1.中国核科技信息与经济研究院,北京 100048;2.核工业北京地质研究院,北京 100029;3.中国石油勘探开发研究院,北京 100083)
随着我国铀资源开发和勘查工作的深入进行,在地表或近地表发现大规模铀资源的可能性已经很小,寻找深部铀矿床是满足我国对战略铀资源需求的长远保障。自20世纪90年代初以来,我国铀资源勘查的主攻方向转为产于中新生代沉积盆地、地表覆盖厚的可地浸砂岩型铀矿。为了快速、经济地寻找砂岩型铀资源,必须重视在理论上更为先进的物化探信息源,吸收数学、计算机技术最新成果,有效地转换、分离、提取、解释和综合物化探异常场信息。这不仅能更好地解决地质构造等间接找矿问题,在铀矿床(体)直接发现、空间定位等方面,更能起到独特的作用。
GIS技术的广泛应用实现了铀矿地质工作的现代化,为综合找矿和高效准确预测提供了良好的条件和环境。但是阻碍GIS深层次应用的“瓶颈”是:以数据采集、存储、管理、查询检索和制图等功能为主的商业化GIS软件尚不能满足铀资源勘查评价中物化探数据处理的需求,直接影响到了铀资源勘查评价中GIS的效益和生命力。为了提高GIS与物化探技术在砂岩型铀矿勘查领域中的应用效率,基于A rcGISEngine组件开发了界面友好、操作简单,集多源数据管理、区域物化探数据处理、综合制图和综合评价等功能为一体的砂岩型铀矿区域物化探数据处理系统,将砂岩型铀矿区域物化探数据处理方法与GIS软件有机地融合在一起,构建了砂岩型铀矿区域物化探成矿信息提取技术平台,在多个盆地的砂岩型铀矿区域物化探数据处理过程中发挥了重要作用,取得了较好的应用效果。
依据砂岩型铀矿勘查评价过程中区域物化探成矿信息提取的需求,设计的系统功能可以大致归结为两大模块:常用GIS功能模块和物化探专业处理功能模块。两大功能模块具有统一的操作界面,而且共享同一多源地学信息数据库。为了能够实现与主流G IS商业软件的数据共享,系统软件的数据格式采用了EsriG IS软件的数据格式,即:Shapefiles矢量数据和G ridfiles栅格数据。
信息系统中的GIS功能主要包括视图管理、矢量数据的查询和检索、属性管理、图形操作、空间分析及制图输出等。
(1)视图管理:主要包括基本的视图操作,如新建视图、打开视图和保存视图;还包括矢量和栅格数据的添加、转换存储、删除和更新;视图漫游、缩放和距离测量。
(2)矢量数据的查询和检索:能够快速准确地对视图中的矢量(包括点、线、面),进行查询检索,根据查询的方式不同,又分为空间查询和属性查询。
(3)属性数据管理:包括对属性表中字段、记录的操作、图元属性值的查询和修改等。
(4)图形操作:包括图形要素的添加、删除、修改、移动、旋转、复制和粘贴等。
(5)空间分析:包括矢量数据和栅格数据空间分析功能。矢量数据空间分析包括点面、点线、线面图层的叠置以及它们之间的交叉、分割、联合、拼接、合并等操作;栅格数据空间分析包括栅格图层之间的合并、统计计算、变换处理和布尔逻辑运算等。
(6)制图输出:包括基本图例的显示、多种色彩分级方式、地图、比例尺等信息,支持多种格式的图像输出,如JPEG、BMP和TIFF等。
根据系统需求分析,专业处理功能包括数据预处理、重磁数据处理、地质数据处理和综合评价方法。
(1)数据预处理:包括网格数据的滑动平均、重采样、空区补值、扩边处理、正则化滤波以及能量滤波等。
(2)重磁数据处理:重磁数据处理分为2个部分:数据的常规处理和弱信息的提取。常规处理方法包括磁源重力转换、解析延拓、化磁极、方向导数、PARKER和Euler反褶积反演;弱信息提取方法包括弱异常增强、二次差分、自调节滤波、相关分析法和奇异值分解等。
(3)放射性数据处理:主要有各种放射性数据比值、铀富集系数、变异系数、空间相关性分析、铀成矿有利参数(U 2、U3、U5)、SA 分形等方法。
(4)综合评价方法:对各种原始信息或提取得到的信息进行综合,综合评价模型包括专家打分法和证据权重法等。
基于GIS进行专业应用系统的开发,主要采用2种方式[1]:①宏语言二次开发:利用通用型GIS软件实现基本的GIS功能;专业处理功能模块利用GIS软件提供的二次开发宏语言或者利用宏语言调用专业处理功能模块的应用程序或动态链接库来实现,还可以通过OLE或DDE方式来实现。②组件式GIS二次开发:在集成开发环境中嵌入组件式GIS软件,利用组件式GIS软件实现常用的G IS功能,然后利用集成开发语言(如Visual C++)开发专业处理功能模块。宏语言二次开发简单易行,但与集成开发语言相比,宏语言实现复杂算法的能力有限,执行效率低,程序的稳定性和移植性均较差,其最大的不足就是开发出来的应用系统必须依赖于通用型GIS软件平台而存在,而往往由于正版GIS软件的价格较高,因此会给用户带来较大的经济负担。基于组件式GIS开发是目前最流行的GIS二次开发方式,其最大的优点就是开发出来的应用系统能够完全脱离庞大的GIS软件平台,以较少的代价获取更经济的GIS应用[2]。
目前主流的组件式GIS软件主要有ESRI的A rcObjects、MapObjects以及新推出的A rcGIS Engine、MapInfo公司的MapX和Intergraph公司的Geomedia Objects等。A rcGIS Engine是一个基于ArcObjects构建的,面向开发人员的嵌入式工具包,支持几乎所有的标准开发环境,由控件、工具和对象库3部分组成。工具包括按钮、工具集和菜单,它们可以被放置在工具条控件上;A rcGIS Engine提供了20多个对象库,每个对象库均包含了针对不同应用的接口函数,用户可以根据需要选择相应的对象库。在Visual Basic6.0开发环境中,基于 A rcGIS Engine组件开发了砂岩型铀矿区域物化探数据处理系统,借助A rcGIS Engine实现常用的GIS功能,利用基于动态链接库的混合编程技术实现专业化物化探数据处理功能。系统中部分GIS功能,如视图的缩放和移动等,可以通过用户自定义的方式添加A rcGISEngine提供的工具按钮实现,但如图例编辑和属性查询等无法利用工具按钮完成的功能,则需要通过调用A rcG IS Engine对象库中的函数进行编程加以实现。
A rcGISEngine是由一组核心的ArcObjects包组成,因此利用A rcGIS Engine进行开发,只需要了解A rcGISEngine开发包的接口,并且按照基于接口编程原理即可进行软件的应用开发和功能扩展。
混合编程(M ixed Programm ing)是采用2种或2种以上的编程语言进行组合编程,彼此相互调用,进行参数的传递,共享数据结构以及数据信息。既可以发挥各种语言的长处,又能解决使用单独一种语言存在的缺陷。此外,还能利用已有的各种程序模块、目标库程序模块在短时间内组成新的应用程序,从而缩短软件的开发时间,降低成本,提高软件的效益。区域物化探数据处理核心程序,通常由Fortran和VC++语言编写,可改写为动态链接库文件(DLL),供其他语言调用。在进行混合编程时,需要注意函数命名约定和参数传递方式。命名约定是为了解决不同语言对名称标识符(如变量名、参数名、过程名和函数名等)的不同处理,对目标文件名的不同长度限制的约定;参数传递方式的一致性直接影响到程序调用的正确性,因此发送参数的方式和接收参数的方式要完全一致。
例如在VB平台中可利用VB语言为程序设计友好的操作界面,通过混合编程技术调用已有的由Fortran和VC等语言编写的功能强大的专业化处理程序(已改写为动态链接库文件),实现友好的操作界面与强大的数据处理功能的紧密结合[3]。VB与Fortran和VC++之间的参数类型对应关系如表1所示,在VB环境中对函数进行调用时,参数的类型要严格按照表1中的对应关系进行定义[4]。
表1 VB、FORTRAN和VC++之间的参数类型对应关系Table1 Corresponding relations between VB,FORTRAN and VC++
砂岩型铀矿区域物化探数据处理系统的主界面按照标准的Window s界面风格进行设计,由菜单、工具条、图例内容表、视图和状态栏5部分组成(图1~图3)。各种GIS基本功能及铀成矿信息提取功能也都具有非常友好的人机交互界面。同时,为了方便用户了解各种铀成矿信息提取方法的原理及参数设置,软件提供了内容丰富的帮助文档。
图1 数据处理系统添加专题界面Fig.1 The interface of adding theme in the data processing system
图2 矢量数据的属性表管理界面Fig.2 The interface of attribute tab lemanagement of vector data
图3 空区补值及扩边程序界面Fig.3 The program interface of fill-in value in the empty area and enlargingmargins
软件中基本的GIS功能大部分可以直接通过A rcG IS Engine提供的工具按钮来实现,不需要进行任何编程,但是还有一些功能,如网格专题的添加、空间属性查询、图例编辑等等都是需要通过编程来实现的。以下分别介绍地图的缩放功能和网格专题添加等功能的具体实现过程。
4.2.1 地图缩放功能的实现
(1)在VisualBasic 6.0开发环境下,添加地图控件(ESRIMapControl)和工具条控件(ESRI ToolbarControl)2个组件到Visual Basic 6.0的组件栏中,并把它们拖曳到应用程序的界面中,分别命名为MapControl和ToolBar。
(2)在ToolBar控件上点击右键,打开属性设置页。在“General”项中将 Too lBar的“Buddy”属性设置为 MapControl,然后在“Item s”项中点击“Add”按钮,打开“Contro ls Commands”页,选择地图的缩小和放大按钮直接拖曳到ToolBar中。
(3)在MapContro l上点击右键,打开属性设置页,可以在“General”项中添加项目文件或者在“Map”项中加入图层文件(Layer Files)或矢量文件(Shape Files)。
(4)保存、编译并运行应用程序,就可以进行地图的缩放操作了。
以同样的方式,类似地可以实现地图的旋转、刷新、移动、创建等值线等功能。
4.2.2 网格专题添加功能的实现
直接在主程序下进行专题添加功能的开发,分为以下4步:
(1)设计专题添加对话框,界面如图1所示,在该功能中也包括Shpefiles格式的矢量文件和影像文件的添加功能。
(2)由于网格专题(GRID Files)是以文件夹形式保存的,没有专用的扩展名。在所有的网格专题相应的文件夹中都包括一个log文件和扩展名为xm l的文件以及一些扩展名为adf的文件,而且这些文件的名称都是固定不变的。因此,需要将包含这些特定文件的文件夹查找出来,并将查找到的文件夹名称显示在添加列表中,并给它们制定一个共有的图标。这些都需要在Visual Basic6.0中编程来实现,查找网格专题文件夹的程序代码在此省略。
(3)编写网格专题添加的程序代码。下面是程序的核心代码[5]:
(4)保存、编译并运行程序,就可以实现网格专题的添加了。
4.2.3 属性数据管理功能的实现
矢量数据的属性管理功能包括字段操作、属性修改等功能。考虑到属性管理功能的特殊性和为了系统集成的方便,直接在系统主程序中对其进行开发,而不采用创建命令或工具的方式开发,其实现可以分为以下4步:
(1)在主程序界面下,添加一个对话框窗体及其相应的控件,其中DataG rid控件用来显示数据,程序运行的界面如图2所示。
(2)读出当前矢量图层的所有属性,并将其显示到DataG rid控件中(代码略)。
(3)属性表的字段操作功能包括添加字段、修改字段和删除字段。
添加字段功能的核心代码如下:
Select Case comFieldType.Text判断字段属性
分别就长整型、浮点型、双精度型、日期型、文本型进行讨论
从选定的图层获取要素
pFeatureClass.AddField pField对要素添加字段
字段修改和字段删除的实现思路与字段添加相似,在此不再阐述。
(4)属性编辑功能的实现,通过点击界面属性编辑菜单,开始属性数据的修改和添加,并且编辑结束,可以保存到数据文件当中,实现属性的永久更改(代码略)。
以同样的方式实现了图层标注、空间查询和图例编辑等功能,不再具体阐述。
专业处理功能实现的基本思路,就是先把需要处理的网格专题图层(GRID Files)转换成文本文件,然后再调用动态链接库中的专业处理函数对文本文件进行处理,最后再将处理得到的结果文本文件转换成栅格专题并导入到系统的当前视图中进行其他分析。下面以空区补值及扩边功能的实现为例来详细说明,可以分为以下3步[6]。
(1)设计参数设置对话框(图3)。在操作选项中,用户可以选择进行空区补值、扩边或既空区补值又扩边等操作。程序提供了两种插值算法:算术平均算法和加权平均算法。在空值区域的数值文本框中用户可以输入空区值的数值,系统默认值为-9 999.0;在扩边数设置中,可以分别上下左右4个方向的扩边数。
(2)将网格专题转换成文本文件。定义了函数G ridToASCII进行网格到文本的转换,函数的返回值是文本文件的输出路径和名称,核心代码如下:
(3)调用Fortran动态链接库中的FunEmpty函数进行空区补值及扩边处理,程序代码如下:
(4)将处理后的文本文件转换成网格专题,程序代码如下:
pRaLayer.CreateFromDataset pRaDataset'从栅格数据集创建栅格图层
其中ASCIIToGrid函数的功能是将文本文件转换成栅格数据集,函数的返回值是栅格数据集,核心代码如下:
在上面的代码中,利用GridToASCII函数将GRID专题转换为文本文件,然后调用FunEm pty函数对数据进行空区补值及扩边处理,最后用ASCIIToGrid函数将处理的结果转换为栅格数据集,再导入到栅格图层中。其他专业处理功能的实现与空区补值及扩边功能的实现是相似的。
基于组件式GIS开发砂岩型铀矿区域物化探数据处理系统,大大降低了软件开发的难度,并提高了开发效率,增强了系统的灵活性和开放性。开发出来的砂岩型铀矿区域物化探数据处理系统软件,界面友好,操作简便且功能实用,非专业人员易于掌握,不仅具有强大的专业处理功能,而且其GIS功能也可以完全不逊于通用型GIS软件,同时还能够完全脱离通用型GIS软件平台而独立存在。该系统软件已成功应用于伊犁、鄂尔多斯和松辽盆地等多个地区的砂岩型铀矿勘查评价,取得了较好的应用效果,并获得了国家版权局颁发的计算机软件著作权登记证书。笔者旨在“抛砖引玉”,推动GIS技术在铀资源物化探勘查评价领域内的应用进展,文中不足之处,还望各位专家及同行批评指正。
[1] 宋关福,钟耳顺.组件式地理信息系统研究与开发[J].中国图像图形学报,1998,3(4):313-317.
[2] 李朝峰,王杰,王桂粱.基于软件组件化技术地理信息系统开发[J].四川测绘,2002,25(2):51-53.
[3] 周振红,杨国录,周洞汝,等.Fortran与V isual Basic混合编程的研究[J].武汉水利电力大学学报,1999,32(2):85-87.
[4] 王文轲,陈倩,郭忠海.通过动态链接库实现VB和Fortran的混合编程[J].电脑开发与应用,2002,15(2):22-23:28.
[5] 柯丹.基于GIS的铀成矿信息提取模块的开发及应用[D].核工业北京地质研究院,2005.
[6] 韩绍阳.基于GIS的砂岩型铀矿弱信息提取及综合评价方法技术体系研究[D].核工业北京地质研究院,2005.