賈世俊,周鵬,李朝輝,朱洪瀟,崔彥崗,崔楊洋
(中國冶金地質(zhì)總局第三地質(zhì)勘查院,太原 030032)
瞬變電磁法又稱時間域電磁法(Time domain electromagnetic methods,縮寫TEM)因其場源頻帶寬、分辨率高、操作簡單等優(yōu)點(diǎn),被廣泛應(yīng)用于金屬、石油勘探,水源、地?zé)峥辈煲约肮こ痰刭|(zhì)勘探勘察等領(lǐng)域,應(yīng)用范圍涵蓋了地面、地下和海洋,幾乎涉及了地球物理探測的各個領(lǐng)域,已成為重要的地球物理探測方法技術(shù)之一[1-3]。隨著電子技術(shù)和計算機(jī)技術(shù)的快速發(fā)展,地球物理勘探儀器的數(shù)字化和智能化程度不斷提高,瞬變電磁儀器的性能也得到顯著的提升。
目前,市場上較為常見的瞬變電磁儀器主要有加拿大GEON-ICS公司的PROTEM系統(tǒng)(包括PROTEM-37,47,57,67等型號)、PHOENIX公司的V6和V8系統(tǒng)、美國ZONGE公司的GDP-32系統(tǒng)、重慶奔騰數(shù)控技術(shù)研究所的WTEM系統(tǒng)等[4]。主流的瞬變電磁儀器基本都配備了相應(yīng)的處理解釋軟件,對采集到的數(shù)據(jù)進(jìn)行預(yù)處理、反演、輸出成圖數(shù)據(jù)[5]。在實(shí)際生產(chǎn)應(yīng)用中,勘探單位常用Surfer軟件對上述儀器軟件的反演結(jié)果進(jìn)行斷面成圖和整飾。這一過程基本為參數(shù)統(tǒng)一的重復(fù)操作,且修改某一參數(shù)后所有斷面需要重新繪制。尤其在數(shù)據(jù)量較大的工程項目中斷面圖件的整飾、修改需要花費(fèi)大量人力和時間資源。因此,采用計算機(jī)完成圖件批量繪制和整飾顯得尤為需要。本文介紹了一種基于Surfer的數(shù)據(jù)管理和自動化處理功能,利用VBA技術(shù)實(shí)現(xiàn)了瞬變電磁法斷面圖的批量自動化繪制及整飾技術(shù),并就實(shí)際應(yīng)用進(jìn)行了檢驗。
Surfer是由美國Golden software公司研發(fā)的一套功能強(qiáng)大的成圖軟件,具有強(qiáng)大的插值功能和圖件繪制能力,被廣泛應(yīng)用于物探工作中等值線圖的繪制[6-8]。Surfer能夠使外部程序通過“對象”去“操縱”Surfer程序,提供了一個從外部程序控制Surfer程序的編程接口。Surfer程序的對象為自動化對象(Automation Object),VB等程序語言可以通過使用這些對象的屬性(Properties)和方法(Method)實(shí)現(xiàn)控制Surfer程序的目的[9]。Surfer采用層次化的方式組織其自動化對象,各對象屬性和方法參數(shù)可在Surfer程序“help”中獲得。
VBA(Visual Basic for Applications)是基于Visual Basic發(fā)展而來的新一代標(biāo)準(zhǔn)宏語言,是微軟公司開發(fā)的用于Microsoft Office應(yīng)用程序執(zhí)行通用自動化(OLE)任務(wù)的編程語言。通過VBA技術(shù)可以有效地擴(kuò)展Excel的功能,設(shè)計和構(gòu)建人機(jī)交互界面,幫助用戶更加高效地完成Excel中公式、函數(shù)等基本操作不能完成的任務(wù)[10]。
基于Excel的數(shù)據(jù)管理功能,將多條測線中的瞬變電磁反演數(shù)據(jù)、測點(diǎn)信息進(jìn)行排序、篩選、查找匹配并統(tǒng)一數(shù)據(jù)格式,再利用VBA編程技術(shù)按測線輸出固定格式的成圖數(shù)據(jù)。
將全區(qū)反演成果數(shù)據(jù)、測量數(shù)據(jù)、目的層高程信息數(shù)據(jù)(如煤層底板等高線)等已知數(shù)據(jù)分別輸入Excel表格中sheet1、sheet2、sheet3、……工作表中,以“線號-點(diǎn)號”為統(tǒng)一標(biāo)識符,利用VLOOKUP函數(shù)將各測點(diǎn)數(shù)據(jù)信息統(tǒng)一到同一數(shù)據(jù)表中。
VLOOKUP函數(shù)的語法規(guī)則如下:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
各參數(shù)說明見表1。
表1 VLOOKUP函數(shù)參數(shù)特征Table 1 Characteristics of parameters of VLOOKUP function
經(jīng)匹配后數(shù)據(jù)格式見表2。其中“#N/A”為VLOOKUP函數(shù)所在列匹配結(jié)果,當(dāng)對應(yīng)“線號-點(diǎn)號”數(shù)據(jù)存在時顯示相應(yīng)數(shù)據(jù),不存在時顯示為“#N/A”。
以表2數(shù)據(jù)為基礎(chǔ),采用VBA 編程技術(shù)按“線號”分別提取各線數(shù)據(jù),并輸出為文本格式,并以線號命名。文本數(shù)據(jù)格式為:
表2 Excel數(shù)據(jù)整理Table 2 Excel data collation
“X,Y,Z,H,3#,5#,10#”,便于Surfer軟件網(wǎng)格化數(shù)據(jù)。
其中,X為點(diǎn)號;Y為目的層標(biāo)高;Z為反演電阻率值;H為地表標(biāo)高;3#,5#,10#分別對應(yīng)相應(yīng)煤層的底板標(biāo)高。
以下為程序分線輸出的主要算法:
Do
X=Sheet1.Cells(i, 3)
Y=Sheet1.Cells(i, 7)
Z=Sheet1.Cells(i, 5)
H=Sheet1.Cells(i, 6)
SanM=Sheet1.Cells(i, 8)
WuM=Sheet1.Cells(i, 9)
ShiM=Sheet1.Cells(i, 10)
If Sheet1.Cells(i, 2)=linename Then
sss=X & "," & Y & "," & Z & "," & H & "," & SanM & "," & WuM & "," & ShiM
Print #1, vbCrLf + sss;
Else
Close #1
linename=Sheet1.Cells(i, 2)
……
End If
Loop While Sheet1.Cells(i, 1) <> ""
首先,利用VBA面向?qū)ο缶幊痰奶攸c(diǎn)設(shè)計圖形用戶界面(圖1),方便使用者輸入繪圖所需的各
圖1 程序圖形用戶界面Fig.1 Program GUI
類參數(shù)[11-19],如工作區(qū)名稱、盲區(qū)深度、繪圖比例尺、標(biāo)注間隔、色標(biāo)尺寸、濾波次數(shù)等參數(shù),添加VBA通用對話框引導(dǎo)用戶添加“色標(biāo)文件”、“數(shù)據(jù)文件”和“圖例文件”路徑。
之后,點(diǎn)擊“開始繪圖”按鈕控件進(jìn)行“單擊”事件編程。編程主要實(shí)現(xiàn)VBA對Surfer程序的調(diào)用、數(shù)據(jù)文件的導(dǎo)入、網(wǎng)格化、濾波、白化、圖件繪制、參數(shù)引用設(shè)置、色標(biāo)文件引用、圖例文件添加、繪圖進(jìn)度提示以及當(dāng)前文件下測線文件的遍歷繪圖,從而實(shí)現(xiàn)瞬變電磁法斷面圖批量自動化繪制。
以下為程序主要功能的代碼:
(1)創(chuàng)建Surfer對象。
Set SurferApp=CreateObject("Surfer.Application") “創(chuàng)建Surfer的ActiveX對象”
SurferApp.Visible=False “設(shè)置Surfer對象不可見”
Set plot=SurferApp.Documents.Add(1) “添加Surfer繪圖窗口”
Set shapes=plot.shapes “創(chuàng)建繪圖對象”
(2)數(shù)據(jù)網(wǎng)格化。
SurferApp.GridData DataFile:=sfilestem$, xCol:=1, yCol:=2,zCol:=3, Algorithm:=2, DupMethod:=2, _NumCols:= (xmax#-xmin#)/(xinc#/2), NumRows:=(xmax#-xmin#)/(xinc#/2), ShowReport:=False, OutGrid:=CSGrd1File$, ymin:=Text3. Text“數(shù)據(jù)網(wǎng)格化”
其中,DataFile為數(shù)據(jù)文件;xCol:=1,yCol:=2,zCol:=3分別為網(wǎng)格化數(shù)據(jù)時X,Y,Z數(shù)據(jù)所在列;Algorithm為網(wǎng)格化算法;此處的2為克里格法;OutGrid為輸出網(wǎng)格文件;ymin為網(wǎng)格最低深度。
(3)網(wǎng)格濾波。
SurferApp.GridFilter InGrid:=CSGrdbFile$, Filter:=9, OutGrid:=CSGrdbFile$
其中,InGrid為輸入網(wǎng)格文件;Filter濾波方法;此處的“9”為高斯低通濾波;OutGrid為濾波后輸出網(wǎng)格文件。
(4)網(wǎng)格白化。
SurferApp.GridBlank InGrid:=CSGrd1File$, BlankFile:=CSBlnFile$,OutGrid:=CSGrdbFile$
其中,InGrid為輸入網(wǎng)格文件;BlankFile為白化文件;OutGrid為白化后輸出網(wǎng)格文件。
白化文件由程序根據(jù)盲區(qū)深度和斷面截取深度結(jié)合網(wǎng)格數(shù)據(jù)計算,輸出為以線號命名的后綴為“bln”的文件,提取過程主要為獲取網(wǎng)格文件邊界值和白化范圍,并讀取相應(yīng)位置標(biāo)高。編程以文件讀寫為主,不作詳細(xì)論述。此過程同時生成各煤層底板線文件用于等值線圖添加煤層底板線。
(5)圖件繪制。
Set mapframe=shapes.AddContourMap(CSGrdFile$)“添加等值線圖”
Set ContourMap=mapframe.overlays(1)
With ContourMap“設(shè)置等值線圖各種參數(shù)”
Name="InvMod Contour"
Levels.LoadFile (CSLvlFile$)“添加色標(biāo)文件”
SmoothContours=3
……
With plot.Selection“設(shè)置色標(biāo)尺寸及位置”
Height=Text13.Text
Width=Text14.Text
Left=((mapframe.xmax-mapframe.xmin)/Text6.Text)/2+14
Top=13
DeselectAll
End With
End With
Set basemap=shapes.AddBasemap(ImportFileName:=CSBasFile$)“添加粘貼圖,地形線及煤層底板線”
(6)圖例文件添加。
采用復(fù)制統(tǒng)一圖例文件到斷面圖的方法,圖例位置的設(shè)置與色標(biāo)位置類似。主要代碼為:
plot.Selection.Copy“復(fù)制圖例”
shapes.Paste“粘貼圖例”
(7)繪圖進(jìn)度提示。
進(jìn)度提示利用VB控件ProgressBar實(shí)現(xiàn),通過設(shè)置繪圖過程中ProgressBar的值來顯示繪圖進(jìn)度,使用戶實(shí)時掌握繪圖進(jìn)度。
ProgressBar1.Value=“ ”
(8)測線文件的遍歷。
上述過程為完成單幅斷面圖的過程,為達(dá)到批量自動化繪制當(dāng)前文件夾下所有測線斷面圖的目的,需要使程序自動遍歷當(dāng)前目錄下的所有測線文件,并循環(huán)繪圖過程。筆者采用了VB中的Dir函數(shù)返回當(dāng)前目錄下的指定類型的文件,并用循環(huán)語句使繪圖過程自動執(zhí)行,直到完成所有斷面圖繪制。
將上述編輯好的程序應(yīng)用于山西某礦區(qū)瞬變電磁勘查項目,該項目瞬變電磁測量面積15.2 km2,資料處理需要繪制斷面圖600余幅。人工繪圖是一個極其耗時費(fèi)力的工程,且圖件修改不方便;采用本程序,成圖數(shù)據(jù)整理、繪圖全部實(shí)現(xiàn)計算機(jī)自動化,圖面信息統(tǒng)一,修改方便。
圖2為工作區(qū)13線瞬變電磁、地質(zhì)綜合剖面圖,即為采用本程序繪制,圈出的采空區(qū)異常經(jīng)ZK1301驗證,110 m埋深處確為采空。該方法與人工繪圖相比效率高,繪圖結(jié)果可靠,應(yīng)用效果明顯。
圖2 ××煤業(yè)瞬變電磁13線視電阻率、地質(zhì)綜合剖面Fig.2 Integrated Transicient electromagnetic and geological section of electromagnetic line 13 in a coal industry1.物探推測2#煤層;2.物探推測采空區(qū);3.馬蘭組黃土;4.二疊系下石盒子組;5.二疊系山西組;6.黃土;7.砂質(zhì)泥巖;8.砂巖; 9.煤層;10.煤層采空區(qū);11.鉆孔及編號
(1)基于Surfer和VBA技術(shù)的瞬變電磁斷面圖的自動化繪制技術(shù),利用Surfer和Office公司自帶的VBA編程技術(shù)進(jìn)行再次開發(fā),形成的繪制程序界面友好、使用方便、快捷、可操作性強(qiáng),為后續(xù)項目的順利開展提供了技術(shù)支持。
(2)相比手動逐幅繪制,該技術(shù)功能貼近野外生產(chǎn)實(shí)踐需要,圖件格式統(tǒng)一,易于統(tǒng)一修改,有效地提高了工作效率,節(jié)約了時間及人工成本,具有較大的實(shí)踐應(yīng)用價值。
(3)該處理技術(shù)還可以應(yīng)用到其他領(lǐng)域,如繪制氣象部門的降雨量等值線圖、地球化學(xué)領(lǐng)域的污染物擴(kuò)散濃度圖等,應(yīng)用前景廣闊。