林孝城,陈宗刚
(1.福建省建筑设计研究院,福建 福州 350001;2.中国水电顾问集团 西北勘测设计研究院,陕西 西安 710065)
Microsoft Excel是目前最优秀的电子表格软件之一,为众多的工程技术人员所广泛使用,主要用于日常的数据整理、数据分析与处理工作。但是在数据量庞大,且需要做很多重复性的操作时,人工处理数据和整理工作就会显得很烦琐和费时,也非常容易出错。为此,Microsoft Excel提供了VBA工具,它可以帮助用户从繁重的、重复性的数据处理工作中解脱出来。用户在编写应用程序后,只需点击有关的菜单或按钮,即可启动相应的应用程序完成相应的操作,并立即得到结果[1~5]。
VBA全称为“Visual Basic for Application”,是新一代Microsoft Windows应用软件通用的宏控制语言,其所开发的程序需要宿主程序(如Excel)才能运行。VBA以其强大的开发功能与易用性相结合,体现了独特优越的编程思想,正在逐渐成为业界标准,已经有来自二十三个不同行业的一百余家独立软件厂商宣布,将VBA集成到他们开发的应用程序中,包括著名的Autodesk、Adobe等[4、6]。
在地面磁法勘探工作中,对磁测资料进行整理是一项重要的工作。一般来说,磁测资料整理包括磁力仪性能试验计算,磁测数据各项改正,标本磁性参数测定与统计,以及磁测工作精度计算等[7]。通过分析磁测资料整理工作的现状,作者发现,在磁测资料的整理过程中,经常是把磁测数据以Excel工作表的形式进行保存、整理和备份工作,即使是在Excel环境外对磁测数据进行各项改正或其它处理后,其最终格式一般也是以Excel工作表的形式表现出来。同时,作者亦发现,关于磁测资料整理的许多工作都是一些重复性的人工劳动,不仅工作量大,效率低,而且容易出错。于是,作者认为,既然磁测资料整理的最终成果仍是要保存在Excel环境中,那么,我们是否可以利用Excel提供的VBA技术,将磁测资料整理的相关工作如磁测点各项改正、标本参数计算与统计等操作,以代码的形式封闭在Excel系统中,只需在Excel表格特定位置中填充相应的数据,点击相应的菜单或按钮就可以完成相应的操作。“地面磁测资料整理系统”就是根据这一思想而形成的,利用该系统,可将各种磁测资料整理的各种操作化繁为简,能够极大地提高磁测资料整理的工作效率,降低潜在错误出现的概率。
图1是“地面磁测资料整理系统”的用户登陆界面,该系统以Excel工作簿的方式来表现。由于目前地面磁测工作使用的磁力仪主要是质子旋进式磁力仪,测量的磁性参量主要是磁异常总场,故我们所编制的相关程序均是参照与该类型磁力仪和磁性参量相关的磁测规范、教材、学位论文等文献资料编制而成[8~10]。
通过分析磁测资料整理工作的主要操作,我们设计并绘制了相应的流程图(见图2),根据该流程图展开“地面磁测资料整理系统”的程序编制工作。该系统所对应的工程组件见下页图3。
“地面磁测资料整理系统”通过工作表的形式组织起来,以工作表作为基本的操作单位。在具体操作时,只须将所需的数据填充到特定的表格中,然后执行相应的菜单或按钮,即可轻易地完成磁测资料整理工作中的各项操作。整理系统各功能表格见下页表1。
此外,对于磁测点(磁性标本)而言,我们用特定标记进行区分,以便对磁测数据进行汇总处理。例如:磁测点用“普点”、“质检点”、“重测点”标记;磁力仪校正点用“早校点”、“晚校点”;标本用“普标”和“质检标”标记。
表1 整理系统各功能表格一览表Tab.1 Functions schedule on“Processing System”
图3 工程控件Fig.3 Engineering controls
由图2所示的流程图及表1可知,我们所设计的“地面磁测资料整理系统”已经包括了磁测资料整理工作的主要内容。下面简要地列举几个功能模块,进一步介绍Excel VBA技术在该系统中的应用。
由于基点或标本测定地点有些参数在磁测资料整理的其它操作中会使用到,如基点T0值,因此单独设置为一个工作表。关于基点(标本测定地点)参数表计算,其主要操作见图2。
图4所示为“基点(标本测定地点)参数表”工作表界面。
图5所示为“基点T0计算”功能模块的代码实现窗口。
磁力仪性能试验的主要工作见图2,在实际工作时,可根据磁测工作设计书要求选取其中几个进行。以“噪声水平测定试验”为例(见下页图6),按照系统提示导入相应的磁测数据,点击相应菜单或按钮,即可迅速完成质子磁力仪性能试验计算的相关工作并绘制曲线图。
磁测点预处理计算包括日变改正、高度改正、正常场改正、基点改正等。磁测点预处理一般性的作法是在Excel环境外(即采用独立编制的可执行程序),对磁测数据分别进行各项改正,如要进行日变改正时,按照现有日变改正程序的数据格式要求,形成特定的数据文件,而后进行日变改正。待各项改正完成后,将结果导入Excel表格中,形成最后的计算成果表。这样的操作不仅繁琐而且数据格式之间转换频繁,容易出错。而“地面磁测资料整理系统”利用Excel VBA技术,在Excel环境下直接针对工作表中的原始数据进行各项改正,只需将磁测数据导入到相应的Excel表格中,点击相应的菜单或按钮,就可以轻松地完成磁测数据的各项改正工作,能够较好地节约了磁测点预处理的时间成本。
图7(见后面)为日变数据表界面。
图8(见后面)为磁测点预处理数据表界面。
事实上,我们利用Excel VBA技术所做的关于磁测资料整理工作的相关操作归根到底,就是把一些重复性、可自动完成的、但却需要花费大量时间完成的工作,通过采用计算机技术结合专业技术的手段来加以完成,从而提高工作效率。这样可将主要注意力集中于磁测数据的分析、处理与解释工作中,以便在工作现场就能及时解决出现的问题。如磁力仪性能分析、磁测质量检查点分布、磁测工作阶段性数据分析等。
目前,“地面磁测资料整理系统”已成功应用于若干个磁法勘探项目中,可极大地提高磁测资料整理的工作效率,并降低了潜在错误出现的概率。
关于Excel VBA在地球物理勘探中的应用,我们只是在实践过程中加以学习和摸索,利用该技术编制的若干功能模块可能需要进一步完善算法。例如,“地面磁测资料整理系统”编制的初衷主要是针对中小型磁测项目,所以每次处理的磁测点个数有限(应小于65 536个),且在执行保存操作时有时会稍慢。因此,该系统进一步完善的方向是利用数据库技术,结合 Microsoft Office Access VBA技术,将当天处理过的磁测数据保存于Access数据库中,需要的时候再读取至Excel工作表中,这样不仅提高数据访问处理的速度,也可充分利用数据库工具进行查询、统计等操作。
另外,需要注意的是,计算机技术只是工具和手段,我们真正的着眼点应是物探专业技术,只要该计算机技术能为物探专业工作提供便利,我们均可使用。
[1]石海荣.用VBA在EXCEL中进行土层物理力学指标统计[J].工程地质计算机应用,2000,19(4):23.
[2]杜茂康.Excel与数据处理[M].北京:电子工业出版社,2002.
[3]黄文斌,马容山.EXCEL VBA用于边坡稳定计算之探索与实践[J].工程地质计算机应用,2003,32(4):19.
[4]孙敬杰.Excel VBA入门与实例演练[M].北京:中国青年出版社,2005.
[5]韩小良,韩舒婷.Excel VBA从入门到精通[M].北京:中国铁道出版社,2006.
[6]北京博彦科技发展有限责任公司.Office VBA编程高手[M].北京:北京大学出版社,2000.
[7]中国地质大学地球物理与空间信息学院.磁法勘探系统(MAGS)(方法原理)[DB/CD].2005.
[8]中华人民共和国地质矿产行业标准.DZT 0071-1993地面高精度磁测技术规程[S].1993.
[9]常铮.磁测资料预处理软件研制[D].西安:长安大学,2006.
[10]罗孝宽,郭绍雍.应用地球物理学教程-重磁勘探[M].北京:地质出版社,1990.