歐 鷗, 唐 源,李甲奇
(成都理工大學 信息科學與技術學院, 成都 610059)
Zonge公司Mykle Raymond(1996)[1]公布了GDP-32ⅡCSAMT、TEM的*.AVG數(shù)據(jù)文件中各變量的計算表達式,其中的一次場和二次場的磁變量表示與國內的常用表示法不一樣,且單位的數(shù)量級也不相同。GDP-32Ⅱ數(shù)據(jù)處理說明書對*.AVG文件中的數(shù)據(jù)說明有遺漏之處,這對*.AVG數(shù)據(jù)文件信息的提取和計算工作帶來了困難。
柳建新等[2]針對GDP系統(tǒng)的CSAMT的*.AVG數(shù)據(jù)文件,做了研究,成功提取了*.AVG數(shù)據(jù)文件信息,并用VC++語言制成了實用性軟件。作者將對*.AVG數(shù)據(jù)文件做進一步研究。
*.AVG文件是由GDP-32Ⅱ軟件包中AMTAVG.EXE程序讀取*.FLD文件時產(chǎn)生的,文件中包含平均的各分離頻率的CSAMT數(shù)據(jù),是對*.FLD文件中多次測量的算術平均值。*.AVG文件是以ASCⅡ碼字符形式存儲的,可以直接用記事本或UltraEdit-32編輯器打開,但是*.AVG文件的數(shù)據(jù)存儲順序是按Zonge公司特有方式上下交錯排列,如表1所示。
表1 CSAMT的AVG數(shù)據(jù)文件Tab.1 The AVG data file of CSAMT
*.AVG文件的頭文件,共5行,其中包括了測量的時間、文件名、測線號、極距大小(以m為單位)、發(fā)射地點編號、數(shù)據(jù)變量名、分隔符。*.AVG文件數(shù)據(jù)體部分,包含了所有測點各個頻率的數(shù)據(jù)值和數(shù)據(jù)平均信息。值得注意的是,GDP-32Ⅱ數(shù)據(jù)說明書所介紹的有幾個量的單位與國內常用表示法有一定不同,現(xiàn)在重新標注并加以說明[3],如表2所示。
表2 CSAMT的AVG數(shù)據(jù)文件變量說明Tab.2 The variable description of CSAMT AVG data file
GDP-32Ⅱ系統(tǒng)AVG文件都是按照固定格式進行存儲的,這對于編程實現(xiàn)提取AVG文件信息是可行的。
對*.AVG文件讀取時,頭文件部分每行可采用字符串一維數(shù)組進行存儲。
READ(2,'(2X,9A20)')(HEAD1(I),I=1,9)
!存儲第一行的字符串
READ(2,'(2X,2A20)')(HEAD2(I),I=1,2)
READ(2,'(2X,3A20)')(HEAD3(I),I=1,3)
READ(2,*) !跳過對變量名的讀
取,在寫文件時可自行 定義變量名
READ(2,*) !跳過對分隔符的讀取
如何確定測點數(shù)和單個測點的頻率數(shù)?在不知道測點數(shù)和頻率數(shù)情況下,采用判斷測點號是否相等的辦法來確定測點數(shù)和頻率數(shù)。
I=1
DO
READ(2,'(3X,f8.1)')X(I)
!讀取測點號
IF(X(I)==X(1))THEN
!判斷測點號是否相同
NUMF=I
!確定出每個測點的頻率數(shù)
END IF
IF(X(I)==0.)THEN
NUMP=I
EXIT
END IF
I=I+1
END DO
NUMP=(NUMP-1)/NUMF !確定出測點
數(shù)
數(shù)據(jù)體部分中每一測點各個頻率采用二維實數(shù)組存儲,數(shù)組變量名與Zonge的*.AVG數(shù)據(jù)文件變量名一致,并對每一個測點各個頻率用“冒泡”法進行排序(升序或降序)。
LOGICAL FLAG
DO P=1,NUMP
!對每個測點進行操作
NUMBER=NUMF
FLAG=.FALSE.
K=0
DO WHILE(.NOT.FLAG)
FLAG=.TRUE.
K=K+1
DO J=1,NUMBER-K
!對每個測點的各個
頻率對應的變量值
進行升序排列
IF(AA(J,P)>AA(J+1,P))THEN
TEMPA=AA(J,P)
…………………
TEMPH=HH(J,P)
AA(J,P)=AA(J+1,P)
……………………
HH(J+1,P)=TEMPH
FLAG=.FALSE.
END IF
END DO
END DO
END DO
主程序體在附錄中列出。
通過對AVG文件的讀取與重新整理,得到新的數(shù)據(jù)文件,如表3所示。
對照表1和表3可以看出:在表3中的數(shù)據(jù)文件中剔除了數(shù)據(jù)標志變量,因為錯誤的數(shù)據(jù)是毫無意義的;新增加了頻點序列號,為制作其他圖件提供了方便;按照頻率大小順序排列變量值,為GRAPHER、SURFER等軟件調用數(shù)據(jù),制作一維 、二維圖件提供方便;剔除了平均信息值,因為這些數(shù)據(jù)本身對于定性解釋時,是無意義的。
通過對AVG文件信息的提取,用GRAPHER軟件制作出某一測點在不同收發(fā)距情況下的Cagniard視電阻率與頻率的雙對數(shù)坐標關系圖(ρω-f)、電場與頻率的雙對數(shù)坐標關系圖(Ema-f)和阻抗相位與頻率的單對數(shù)坐標圖(Pha-f)(圖1)。
從圖1可知,曲線完整光滑,讀取的數(shù)據(jù)沒有發(fā)生錯誤,驗證了對數(shù)據(jù)讀取方法的正確性和程序的可靠性。
*.AVG文件是由TEMAVG.EXE程序讀取*.FLD文件時產(chǎn)生的,文件中包含各時間道的TEM的測量數(shù)據(jù),是對*.FLD文件中多次測量數(shù)據(jù)的算術平均值。*.AVG文件的數(shù)據(jù)存儲順序是按照時間道順序(從1,2,…,n道)排列的。*.AVG文件的頭文件,共9行,其中包括了測量的時間、文件名、排列裝置、延遲時間(μs),發(fā)射回線長、短邊長(m)、發(fā)射框面積(m2)、接收磁探頭(接收線圈)等效面積(m2)、數(shù)據(jù)變量名、分隔符(表4)。
*.AVG文件數(shù)據(jù)體部分,包含了所有測點各個時間道的數(shù)據(jù)值。在編制程序提取AVG數(shù)據(jù)文件信息時,要對每個數(shù)據(jù)變量的單位作全面、準確地認識,現(xiàn)對每一個變量的單位進行說明[4],如表5所示。
表3 整理后的CSAMT的AVG數(shù)據(jù)文件Tab.3 The AVG data file of CSAMT after arrangement
圖1 整理后的AVG數(shù)據(jù)的曲線圖Fig.1 The curve of AVG data file after arrangement 表4 TEM的AVG數(shù)據(jù)文件 Tab.4 The AVG data file of TEM
TEMAVG 7.79: "D114.FLD", Dated 07-04-22, Processed 14 Aug 05 $ TEM: Array=In Loop (Central Loop)$ TEM: TXramp= 170.0 us$ TEM: TXdx= 600.0 m$ TEM: TXdy= 300.0 m$ TEM: RXarea= 180000. m2$ TEM: RXarea= 10000 m2skp Tx Station Grid-E Grid-N Freq Cmp Amps Win Time Magnitude RampAppRes Depth++┈++┈++┈++┈++┈++┈++┈┈++┈++┈┈++┈++┈++┈┈++┈┈++┈┈++ 2 1. 519822. 519822 2551844 32 Hz 20.00 1 .0331 9.2022e+4 8.5828e+1 4.7194e+1 2 1. 519822. 519822 2551844 32 Hz 20.00 2 .06362 8.9114e+4 5.6828e+1 5.3239e+1 2 1. 519822. 519822 2551844 32 Hz 20.00 3 .09414 8.6152e+4 3.4118e+1 5.0180e+1 2 1. 519822. 519822 2551844 32 Hz 20.00 4 0.1247 8.3147e+4 3.6216e+1 5.9492e+1 2 1. 519822. 519822 2551844 32 Hz 20.00 5 0.1552 8.0106e+4 2.8120e+1 5.8488e+1
表5 TEM的AVG數(shù)據(jù)文件變量說明Tab.5 The variable description of TEM AVG data file
*.AVG文件中每行尾為歸一化感應電壓的平均信息(等時間間隔采樣時)。對*.AVG文件讀取時,頭文件部分每行可采用字符串一維數(shù)組進行存儲,程序設計與提取CSAMT的AVG文件的頭文件類似。確定測點數(shù)和時間道數(shù)程序設計與CSAMT確定測點數(shù)和頻率數(shù)相同,數(shù)據(jù)體部分中每一測點各個時間道采用二維實數(shù)組存儲,數(shù)組變量名與Zonge的*.AVG數(shù)據(jù)文件變量名一致。值得注意的是,當繪制與深度、時間道有關的斷面圖時,要對每一個測點數(shù)據(jù)矩陣按對角線交換重新進行排序,即相同時間道的數(shù)據(jù)在同一條曲線上。
DO P=1,NUMF
!按對角線交換重新進行排序
DO J=1,NUMP
WRITE(10,10)P,J,NUMP+1-J,Sta(P,J),GE(P,J),GN(P,J),Fre(P,J),Comp,Amps(P,J),Win(P,J),&
Time(P,J),Vmag(P,J),Res(P,J),-1*Depth(P,J)
END DO
END DO
通過對AVG文件的讀取與重新整理,得到新的數(shù)據(jù)文件(表6)。
對照表4和表6可以看出:在如表6所示的數(shù)據(jù)文件中剔除了數(shù)據(jù)標志變量,因為錯誤的數(shù)據(jù)是毫無意義的;剔除了發(fā)射點號,因為發(fā)射點號對于數(shù)據(jù)處理是無意義的;新增加了測點號和每個測點的時間道序號(升序和降序),為GRAPHER,SURFER等軟件調用數(shù)據(jù),制作不同一維 、二維圖件提供方便;同樣剔除了平均信息值,因為這些數(shù)據(jù)本身對于定性解釋時,也是無意義的。
通過對AVG文件信息的提取,用GRAPHER和SURFER軟件制作出某測線的1~6時間道時間譜剖面曲線和視電阻率-深度擬斷面圖(圖2)。
從圖2可知,曲線完整光滑,讀取的數(shù)據(jù)沒有發(fā)生錯誤,說明了對數(shù)據(jù)讀取方法的正確性和程序的可靠性。
作者在分析了GDP-32ⅡAVG數(shù)據(jù)文件格式基礎上,統(tǒng)一表示出了GDP-32Ⅱ數(shù)據(jù)文件中與國內電磁法變量單位的表示方法和數(shù)量級,采用FOR-TRAN語言編制出了讀取與編輯*.AVG數(shù)據(jù)文件件信息程序,并對數(shù)據(jù)的移植性作出了相關說明,為GDP-32Ⅱ系統(tǒng)在野外生產(chǎn)中進行數(shù)據(jù)前期預處理過程中提供了幫助。
表6 整理后的TEM的AVG數(shù)據(jù)文件Tab.6 The AVG data file of TEM after arrangement
圖2 時間譜剖面曲線和視電阻率-深度擬斷面圖Fig.2 The curve of time spectrum and the resistivity-depth pseudo section
參考文獻:
[1] 美國Zonge公司. ZONGE Data Processing CSAMT DataAveraging Program[A]. December, 1996.
[2] 柳建新,王貴財,佟鐵鋼,基于GDP系統(tǒng)AVG數(shù)據(jù)格式與開發(fā)研究[J].系統(tǒng)仿真技術,2006,7.
[3] 程志平.電法勘探教程[M].桂林:桂林工學院,2003.
[4] 牛之璉.時間域電磁法原理[M].長沙:中南工業(yè)大學出版社,1992.
[5] 徐士良.計算機常用算法,第二版[M].北京:清華大學出版社,1995.
[6] 美國Zonge公司. ZONGE Data Processing CSAMT DataAveraging Program[A]. December, 1996.
[7] 柳建新,王貴財,佟鐵鋼.基于GDP系統(tǒng)AVG數(shù)據(jù)格式與開發(fā)研究.[J].系統(tǒng)仿真技術,2006,2(3):7,144-149.
[8] 廖國忠,李富,梁生賢.基于GDP-32儀器中CSAMTAVG數(shù)據(jù)的預處理軟件開發(fā)[J].工程地球物理學報,2013,10(2):165-172.
[9] 程志平.電法勘探教程[M].北京:冶金工業(yè)出版社,2003.
[10] 牛之璉.時間域電磁法原理[M].長沙:中南工業(yè)大學出版社,1992.
[11] 徐士良.計算機常用算法(第二版)[M].北京:清華大學出版社,1995.
附錄
提取CSAMT的AVG文件主程序體
REAL Sta(30,50),Fre(30,50),Amp(30,50),Ema(30,50),Eph(30,50),&
Hma(30,50),Hph(30,50),Res(30,50),Pha(30,50)
INTEGER NUMF,NUMP
CHARACTER*2 Ord
CALL READ_AVG(Sta,Fre,Amp,Ema,Eph,Hma,Hph,ReS,Pha,NUMF,NUMP)
CALL PAIXU(Sta,Fre,Amp,Ema,Eph,Hma,Hph,ReS,Pha,NUMF,NUMP)
WRITE(*,*)"你想在文件中提取信息嗎?(Y/N)"
READ(*,*)Ord
IF(Ord=='N')THEN
GOTO 100
ELSE
CALL EDIT_DATA(Sta,Fre,ReS,Pha,NUMF,NUMP)
ENDIF
WRITE(*,*)"結束!產(chǎn)生了一個名為TEMP.TXT文件"
100 WRITE(*,*)'按ENTER鍵結束!'
PAUSE
END