林孝城,陳宗剛
(1.福建省建筑設(shè)計研究院,福建 福州 350001;2.中國水電顧問集團(tuán) 西北勘測設(shè)計研究院,陜西 西安 710065)
Microsoft Excel是目前最優(yōu)秀的電子表格軟件之一,為眾多的工程技術(shù)人員所廣泛使用,主要用于日常的數(shù)據(jù)整理、數(shù)據(jù)分析與處理工作。但是在數(shù)據(jù)量龐大,且需要做很多重復(fù)性的操作時,人工處理數(shù)據(jù)和整理工作就會顯得很煩瑣和費(fèi)時,也非常容易出錯。為此,Microsoft Excel提供了VBA工具,它可以幫助用戶從繁重的、重復(fù)性的數(shù)據(jù)處理工作中解脫出來。用戶在編寫應(yīng)用程序后,只需點(diǎn)擊有關(guān)的菜單或按鈕,即可啟動相應(yīng)的應(yīng)用程序完成相應(yīng)的操作,并立即得到結(jié)果[1~5]。
VBA全稱為“Visual Basic for Application”,是新一代Microsoft Windows應(yīng)用軟件通用的宏控制語言,其所開發(fā)的程序需要宿主程序(如Excel)才能運(yùn)行。VBA以其強(qiáng)大的開發(fā)功能與易用性相結(jié)合,體現(xiàn)了獨(dú)特優(yōu)越的編程思想,正在逐漸成為業(yè)界標(biāo)準(zhǔn),已經(jīng)有來自二十三個不同行業(yè)的一百余家獨(dú)立軟件廠商宣布,將VBA集成到他們開發(fā)的應(yīng)用程序中,包括著名的Autodesk、Adobe等[4、6]。
在地面磁法勘探工作中,對磁測資料進(jìn)行整理是一項重要的工作。一般來說,磁測資料整理包括磁力儀性能試驗計算,磁測數(shù)據(jù)各項改正,標(biāo)本磁性參數(shù)測定與統(tǒng)計,以及磁測工作精度計算等[7]。通過分析磁測資料整理工作的現(xiàn)狀,作者發(fā)現(xiàn),在磁測資料的整理過程中,經(jīng)常是把磁測數(shù)據(jù)以Excel工作表的形式進(jìn)行保存、整理和備份工作,即使是在Excel環(huán)境外對磁測數(shù)據(jù)進(jìn)行各項改正或其它處理后,其最終格式一般也是以Excel工作表的形式表現(xiàn)出來。同時,作者亦發(fā)現(xiàn),關(guān)于磁測資料整理的許多工作都是一些重復(fù)性的人工勞動,不僅工作量大,效率低,而且容易出錯。于是,作者認(rèn)為,既然磁測資料整理的最終成果仍是要保存在Excel環(huán)境中,那么,我們是否可以利用Excel提供的VBA技術(shù),將磁測資料整理的相關(guān)工作如磁測點(diǎn)各項改正、標(biāo)本參數(shù)計算與統(tǒng)計等操作,以代碼的形式封閉在Excel系統(tǒng)中,只需在Excel表格特定位置中填充相應(yīng)的數(shù)據(jù),點(diǎn)擊相應(yīng)的菜單或按鈕就可以完成相應(yīng)的操作?!暗孛娲艤y資料整理系統(tǒng)”就是根據(jù)這一思想而形成的,利用該系統(tǒng),可將各種磁測資料整理的各種操作化繁為簡,能夠極大地提高磁測資料整理的工作效率,降低潛在錯誤出現(xiàn)的概率。
圖1是“地面磁測資料整理系統(tǒng)”的用戶登陸界面,該系統(tǒng)以Excel工作簿的方式來表現(xiàn)。由于目前地面磁測工作使用的磁力儀主要是質(zhì)子旋進(jìn)式磁力儀,測量的磁性參量主要是磁異常總場,故我們所編制的相關(guān)程序均是參照與該類型磁力儀和磁性參量相關(guān)的磁測規(guī)范、教材、學(xué)位論文等文獻(xiàn)資料編制而成[8~10]。
通過分析磁測資料整理工作的主要操作,我們設(shè)計并繪制了相應(yīng)的流程圖(見圖2),根據(jù)該流程圖展開“地面磁測資料整理系統(tǒng)”的程序編制工作。該系統(tǒng)所對應(yīng)的工程組件見下頁圖3。
“地面磁測資料整理系統(tǒng)”通過工作表的形式組織起來,以工作表作為基本的操作單位。在具體操作時,只須將所需的數(shù)據(jù)填充到特定的表格中,然后執(zhí)行相應(yīng)的菜單或按鈕,即可輕易地完成磁測資料整理工作中的各項操作。整理系統(tǒng)各功能表格見下頁表1。
此外,對于磁測點(diǎn)(磁性標(biāo)本)而言,我們用特定標(biāo)記進(jìn)行區(qū)分,以便對磁測數(shù)據(jù)進(jìn)行匯總處理。例如:磁測點(diǎn)用“普點(diǎn)”、“質(zhì)檢點(diǎn)”、“重測點(diǎn)”標(biāo)記;磁力儀校正點(diǎn)用“早校點(diǎn)”、“晚校點(diǎn)”;標(biāo)本用“普標(biāo)”和“質(zhì)檢標(biāo)”標(biāo)記。
表1 整理系統(tǒng)各功能表格一覽表Tab.1 Functions schedule on“Processing System”
圖3 工程控件Fig.3 Engineering controls
由圖2所示的流程圖及表1可知,我們所設(shè)計的“地面磁測資料整理系統(tǒng)”已經(jīng)包括了磁測資料整理工作的主要內(nèi)容。下面簡要地列舉幾個功能模塊,進(jìn)一步介紹Excel VBA技術(shù)在該系統(tǒng)中的應(yīng)用。
由于基點(diǎn)或標(biāo)本測定地點(diǎn)有些參數(shù)在磁測資料整理的其它操作中會使用到,如基點(diǎn)T0值,因此單獨(dú)設(shè)置為一個工作表。關(guān)于基點(diǎn)(標(biāo)本測定地點(diǎn))參數(shù)表計算,其主要操作見圖2。
圖4所示為“基點(diǎn)(標(biāo)本測定地點(diǎn))參數(shù)表”工作表界面。
圖5所示為“基點(diǎn)T0計算”功能模塊的代碼實現(xiàn)窗口。
磁力儀性能試驗的主要工作見圖2,在實際工作時,可根據(jù)磁測工作設(shè)計書要求選取其中幾個進(jìn)行。以“噪聲水平測定試驗”為例(見下頁圖6),按照系統(tǒng)提示導(dǎo)入相應(yīng)的磁測數(shù)據(jù),點(diǎn)擊相應(yīng)菜單或按鈕,即可迅速完成質(zhì)子磁力儀性能試驗計算的相關(guān)工作并繪制曲線圖。
磁測點(diǎn)預(yù)處理計算包括日變改正、高度改正、正常場改正、基點(diǎn)改正等。磁測點(diǎn)預(yù)處理一般性的作法是在Excel環(huán)境外(即采用獨(dú)立編制的可執(zhí)行程序),對磁測數(shù)據(jù)分別進(jìn)行各項改正,如要進(jìn)行日變改正時,按照現(xiàn)有日變改正程序的數(shù)據(jù)格式要求,形成特定的數(shù)據(jù)文件,而后進(jìn)行日變改正。待各項改正完成后,將結(jié)果導(dǎo)入Excel表格中,形成最后的計算成果表。這樣的操作不僅繁瑣而且數(shù)據(jù)格式之間轉(zhuǎn)換頻繁,容易出錯。而“地面磁測資料整理系統(tǒng)”利用Excel VBA技術(shù),在Excel環(huán)境下直接針對工作表中的原始數(shù)據(jù)進(jìn)行各項改正,只需將磁測數(shù)據(jù)導(dǎo)入到相應(yīng)的Excel表格中,點(diǎn)擊相應(yīng)的菜單或按鈕,就可以輕松地完成磁測數(shù)據(jù)的各項改正工作,能夠較好地節(jié)約了磁測點(diǎn)預(yù)處理的時間成本。
圖7(見后面)為日變數(shù)據(jù)表界面。
圖8(見后面)為磁測點(diǎn)預(yù)處理數(shù)據(jù)表界面。
事實上,我們利用Excel VBA技術(shù)所做的關(guān)于磁測資料整理工作的相關(guān)操作歸根到底,就是把一些重復(fù)性、可自動完成的、但卻需要花費(fèi)大量時間完成的工作,通過采用計算機(jī)技術(shù)結(jié)合專業(yè)技術(shù)的手段來加以完成,從而提高工作效率。這樣可將主要注意力集中于磁測數(shù)據(jù)的分析、處理與解釋工作中,以便在工作現(xiàn)場就能及時解決出現(xiàn)的問題。如磁力儀性能分析、磁測質(zhì)量檢查點(diǎn)分布、磁測工作階段性數(shù)據(jù)分析等。
目前,“地面磁測資料整理系統(tǒng)”已成功應(yīng)用于若干個磁法勘探項目中,可極大地提高磁測資料整理的工作效率,并降低了潛在錯誤出現(xiàn)的概率。
關(guān)于Excel VBA在地球物理勘探中的應(yīng)用,我們只是在實踐過程中加以學(xué)習(xí)和摸索,利用該技術(shù)編制的若干功能模塊可能需要進(jìn)一步完善算法。例如,“地面磁測資料整理系統(tǒng)”編制的初衷主要是針對中小型磁測項目,所以每次處理的磁測點(diǎn)個數(shù)有限(應(yīng)小于65 536個),且在執(zhí)行保存操作時有時會稍慢。因此,該系統(tǒng)進(jìn)一步完善的方向是利用數(shù)據(jù)庫技術(shù),結(jié)合 Microsoft Office Access VBA技術(shù),將當(dāng)天處理過的磁測數(shù)據(jù)保存于Access數(shù)據(jù)庫中,需要的時候再讀取至Excel工作表中,這樣不僅提高數(shù)據(jù)訪問處理的速度,也可充分利用數(shù)據(jù)庫工具進(jìn)行查詢、統(tǒng)計等操作。
另外,需要注意的是,計算機(jī)技術(shù)只是工具和手段,我們真正的著眼點(diǎn)應(yīng)是物探專業(yè)技術(shù),只要該計算機(jī)技術(shù)能為物探專業(yè)工作提供便利,我們均可使用。
[1]石海榮.用VBA在EXCEL中進(jìn)行土層物理力學(xué)指標(biāo)統(tǒng)計[J].工程地質(zhì)計算機(jī)應(yīng)用,2000,19(4):23.
[2]杜茂康.Excel與數(shù)據(jù)處理[M].北京:電子工業(yè)出版社,2002.
[3]黃文斌,馬容山.EXCEL VBA用于邊坡穩(wěn)定計算之探索與實踐[J].工程地質(zhì)計算機(jī)應(yīng)用,2003,32(4):19.
[4]孫敬杰.Excel VBA入門與實例演練[M].北京:中國青年出版社,2005.
[5]韓小良,韓舒婷.Excel VBA從入門到精通[M].北京:中國鐵道出版社,2006.
[6]北京博彥科技發(fā)展有限責(zé)任公司.Office VBA編程高手[M].北京:北京大學(xué)出版社,2000.
[7]中國地質(zhì)大學(xué)地球物理與空間信息學(xué)院.磁法勘探系統(tǒng)(MAGS)(方法原理)[DB/CD].2005.
[8]中華人民共和國地質(zhì)礦產(chǎn)行業(yè)標(biāo)準(zhǔn).DZT 0071-1993地面高精度磁測技術(shù)規(guī)程[S].1993.
[9]常錚.磁測資料預(yù)處理軟件研制[D].西安:長安大學(xué),2006.
[10]羅孝寬,郭紹雍.應(yīng)用地球物理學(xué)教程-重磁勘探[M].北京:地質(zhì)出版社,1990.