柳建新,曹创华,刘 颖,童孝忠,郭振威
(1.中南大学 地球科学与信息物理学院,长沙 410083;2.“有色资源与地质灾害探查”湖南省重点实验室,长沙 410083)
用参数量值曲线表示沿测区各剖面线上物探参数变化特征的图,叫做物探剖面图[1],剖面图可以揭示异常带的大致走向和平面(断面)范围,它已经广泛的应用于矿产地球物理勘探解释工作当中。Grapher 7.0就是绘制此类图件最常用的专业软件之一,它是由Golden Soft公司2007年1月16日发布的,在Windows环境下开发的地理数据绘图软件,其友好的用户界面、强大的绘图功能,受到了科学家、工程师极大的欢迎[2]。但当数据量较大时,经常会遇到重复操作,既浪费人力,又容易产生操作失误,这就亟需自动化批量处理数据的新方法、新手段出现。
幸运的是,Golden Soft公司的绘图软件都提供了Automation技术,可用一种类似于Visual Basic的Scripter Basic编程语言做二次开发,方便地控制Grapher 7.0的绘图。近年来,杨朝辉等[2]在利用Grapher 7.0二次开发技术描述过地面沉降的过程;马培仙等[4~6]从Surfer的角度,通过程序数据换算,实现了自动绘制物探平剖图;廖桂香等[7]尝试过在Mapgis二次开发平台下。利用Grid网格法实现平剖图渐变色的填充。但是,利用Grapher 7.0进行有效的、快速的绘制彩色剖面图,还没有比较完整的论述。作者在本文将利用Scripter Basic语言进行二次开发,把已用Fortran小程序预处理好的野外数据,调用到二次开发的程序中,方便地实现了自动批量绘制剖面图功能,节省了时间,有效地提高了工作效率。
Automation技术是指一个应用程序,通过某个对象去“操纵”另一个应用程序的机制。它提供了一个从应用程序外部控制某个应用程序对象的编程界面。应用程序暴露出的对象,称为自动化对象(Automation Object),外部客户应用程序通过使用这些对象的属性、方法,就可以达到控制该应用程序的目的。用户利用Delphi[11],VC,VB[12~14]等可视化开发工具作为开发平台,进行二者的集成开发。
Grapher 7.0采用层次化方式来组织其自动化对象,其应用程序对象(Application Object)处于最高层,所有其它对象都要直接或间接通过应用程序对象来获得,各对象的获得都需一层一级地进行。
1.1.1 Scripter Basic的特点
Scripter Basic是Grapher 7.0提供的脚本语言,两者安装在同一个目录下。开发者可以利用类似于Visual Basic的Scripter Basic编程语言编写代码,Scripter编辑器提供了许多功能帮助开发者编写、编辑和调试,方便地控制Grapher 7.0绘图。
1.1.2 Grapher 7.0模型对象树
要想利用Scripter Basic使用Grapher 7.0Automation技术,就必须要在创建一个Grapher 7.0的Application对象的基础上,通过各种文件集对象对各自的派生对象,按各种特有的层次结构逐层操纵和调用,进而实现自己的绘图操作。其中,Grapher 7.0的层次结构模型对象树如图1所示。
野外实测数据由于人为原因造成很多误差,必须对其进行预处理才能变成最终成图所需要的数据。如视极化率一般情况下不能为零,必须进行校正计算。对不同的数据,为了程序方便处理,需进行人为的调整非实测信息,如测网的点号线号等。本程序就针对Grapher 7.0的特点,把线号命名改变,把地电参数按照高斯坐标系根据不同线号加一个常数。对于步长根据不同的地电参数作以改变,如中等极化率的矿体,程序步长一般选为10%(这个往往根据实测的背景值决定);磁法数据可以统一减少背景值,再根据正负异常范围选择异常的范围。以上这些需要完成的步骤通过调用利用Fortran编写的数据预处理程序来完成。
主程序通过Grapher 7.0Automation技术控制,由Scripter Basic语句来完成。经过创建,调试坐标轴等参数范围,最终批处理绘制成具有正反色(红蓝色)的物探成果图。二次开发设计流程简图见下页图2。
Fortran 90相对于其它编程语言来说,它具有计算速度快的优点,对于大量的野外数据计算优点突出,常用于各种工程试验与实践中。其中对数据文件夹批处理的整体对某列加一个常数的语句循环如下:
图1 Grapher 7.0模型对象树示意图Fig.1 Grapher 7.0model object tree diagram
图2 二次开发设计流程简图Fig.2 Schematic secondary development of the design process
filename2(i)=trim(filename1)//"\"//adjustl(filename2(i))
inquire(file=filename2(i),exist=IsHave-File)
据Grapher 7.0模型对象树,在Windows注册表中其自动化对象名是“Grapher.Application”,在Scripter Basic中创建其对象的语句是:
Dim Grapher As Object
Set Grapher=CreateObject("Grapher.Application")
整个主函数流程大致为:首先根据Scripter Basic语言语法进行变量定义;然后打开数据文件进行绘图;再根据具体的地球物理异常特征确定正反面填充界值。其中红色表示异常范围,蓝色表示背景异常或者其它异常;最后输出grf格式矢量图和bmp标量图。
(1)主函数定义各种参数。Dim FilePath As String定义’数据文件位置,Dim FileNum As Integer定义数据文件数量等,再经过FilePath="数据文件路径"FileNum=数据文件个数,ColorValue=正反色填充界限等。
(2)定义子函数函数。Function Multi Plot(File Path As String,File Num As Integer,Color-Value As Integer,Data Step As Integer,Auto Clip As Boolean,Auto Axis Max As Boolean,Auto Axis Min As Boolean,Axis Max As Integer,Axis Min As Integer,Grapher Visible As Boolean)
(3)批处理生成图形:Set生成新图名称=Grapher.Documents.Add(grf Plot Doc)
Plot1.Shapes.Add Line Plot Graph(File Path+"第一个数据文件",1,2)
Set生成新图名称=生成新图名称.Shapes.Item(1)
Set Line Scatter生成新图名称=Graph1.Plots.Item(1)
(4)对坐标轴的处理:
(5)剖面图正反色的填充:
(6)图形输出:
福建省邵武市洪墩镇何厝坑多金属矿区,属于侏罗系梨山统沙、砾岩,二叠三叠系火山岩,磁铁矿化、磁黄铁矿化、黄铜矿化、辉钼矿化、铅锌矿化现象不同程度在矿区分布。矿物标本测试表明,此区明显呈现为低阻高极化现象,利用激发极化法较好。
标本参数测定如表1所示。
工作装置主要采用中间梯度装置,作者根据测区的地形地质条件的特点,此次采用的扫面装置为中梯装置扫面,现取测区部份测线的结果进行绘图实例加以分析,分别取Line0、Line10、Line 20直到Line 160,一共十六条测线的前50m。
野外采集好数据后,直接把这十六条测线的数据分别单独存为1.dat~16.dat,直接利用1.3节提到的Fortran语言编写数据预处理程序,整体批处理生成out文件夹数据,按照图2所示流程。二次开发的程序几秒钟就可以完成平剖图,如图3所示。
表1 何厝坑多金属矿区岩矿石幅频率参数表Tab.1 The polarizability of rocks and mineralsof He-cuo-pit polymetallic ore area
由图3可知,红色区域表示异常区域。可以明显地看到异常的范围和平面走向,而且可以看出Line40线可能属于点状异常,这还有待查证。而对应的由其姊妹绘图软件Surfer绘制的等值线[15]如图4所示,可以明显的看到,Surfer可以拟合成全域信息图,但也有可能造成假的信息,尤其是实测数据误差较大的情况,Grapher可以排除这种信息,不予考虑,但有可能排除掉真异常信息。
对于地电断面的情况,地球物理工作者往往只习惯于绘制等值线图来研究和分析问题。在此处,作者将把实测的海南省屯昌县坡心镇白石岭钼矿南区南1线60点~120点激电测深视电阻率ρs作一分析,如下页图5所示。
此测区的视电阻率异常界值为1 000Ω·m,大于此值为此测区的异常区域,测地电断面的矿脉异常具有明显的构造走向倾向,垂直剖面图与等值线图都有效地反应了异常带的空间分布状态,达到了工作的目的,效果较好。
图5 白石岭钼矿部份区域视电阻率垂直剖面图及等值线图Fig.5 The part of Bai-shi-ling Molybdenum mining area apparent resistivity sand contour map
(1)利用Fortran语言编写数据预处理程序,基于Scripter Basic语言的Grapher 7.0二次开发绘制物探剖面图是行之有效的,可以开发为软件包,为以后矿产地球物理数据处理时直接利用。
(2)Grapher 7.0也可以绘制出漂亮的二维曲线图用于地球物理解释,有的功能可以胜过其姊妹软件Surfer绘制的等值线图,具有其独特的优越性。
(3)在解释地电断面时,也可应用剖面图来解释,也能得到真实的地球物理信息。
[1] 傅学信,高卫东,张兴雅,等.地球物理勘查图图式图例及用色标准DZ/T 0069-93[S].地质矿产部地球物理地球化学勘查研究所,1993.
[2] GOLDEN SOFTWARE.Grapher7.0User’s Guide[M].SYBEXInc.,2000.
[3] 杨朝辉,唐峰平.利用Grapher二次开发技术绘制地面沉降过程曲线图[J].北京测绘,2004,2(40):40.
[4] 马培仙,李百祥,陈卫东.利用Surfer绘图软件绘制平剖图及平剖图数字化[J].甘肃地质,2006,15(1):92.
[5] 李绍荣.Surfer软件图形数据的进一步处理和利用[J].物探化探计算技术,1997,19(2):174.
[6] 田黔宁.利用Win-Surfer软件绘制物化探图件[J].物化探计算技术,1998,20(4):366.
[7] 廖桂香,李振辉.MAPGIS二次开发平台下GRD网格法实现渐变色填充剖平图[J].物探化探计算技术,2010,31(2):217.
[8] 于平.应用ActiveX技术实现Surfer自动绘制等值线图[J].广东气象,2006(3):49.
[9] 张娟,周秉荣,苏献锋.VB和Surfer实现气象等值线的自动绘图[J].青海气象,2008(3):47.
[10]杨朝辉,党立华.基于Surfer Automation技术的二维立体渲染图的绘制[J].海洋测绘,2003,23(4):26.
[11]唐建光,赵连锋,郑圻森.数据可视化中的Delphic与Surfer接口技术[J].计算机应用,2002:127.
[12]王志勇.基于VB开发地质数据处理辅助系统研究[D].北京:中国地质大学,2006.
[13]韩奎峰.VB6.0和Surfer Automation技术开发土方量计算程序[J].岩土工程技术,2007(1).55.
[14]PETROUSOS E,HOUGH k.Visual Basic6从人门到精通[M].邱仲潘,译.北京:电子工业出版社,1999.
[15]刘川宁.GRAPHER、Surfer32与Core DRAW10在物探成图中的应用[J].矿产与地质,2003,94(17):62.