欧 鸥, 唐 源,李甲奇
(成都理工大学 信息科学与技术学院, 成都 610059)
Zonge公司Mykle Raymond(1996)[1]公布了GDP-32ⅡCSAMT、TEM的*.AVG数据文件中各变量的计算表达式,其中的一次场和二次场的磁变量表示与国内的常用表示法不一样,且单位的数量级也不相同。GDP-32Ⅱ数据处理说明书对*.AVG文件中的数据说明有遗漏之处,这对*.AVG数据文件信息的提取和计算工作带来了困难。
柳建新等[2]针对GDP系统的CSAMT的*.AVG数据文件,做了研究,成功提取了*.AVG数据文件信息,并用VC++语言制成了实用性软件。作者将对*.AVG数据文件做进一步研究。
*.AVG文件是由GDP-32Ⅱ软件包中AMTAVG.EXE程序读取*.FLD文件时产生的,文件中包含平均的各分离频率的CSAMT数据,是对*.FLD文件中多次测量的算术平均值。*.AVG文件是以ASCⅡ码字符形式存储的,可以直接用记事本或UltraEdit-32编辑器打开,但是*.AVG文件的数据存储顺序是按Zonge公司特有方式上下交错排列,如表1所示。
表1 CSAMT的AVG数据文件Tab.1 The AVG data file of CSAMT
*.AVG文件的头文件,共5行,其中包括了测量的时间、文件名、测线号、极距大小(以m为单位)、发射地点编号、数据变量名、分隔符。*.AVG文件数据体部分,包含了所有测点各个频率的数据值和数据平均信息。值得注意的是,GDP-32Ⅱ数据说明书所介绍的有几个量的单位与国内常用表示法有一定不同,现在重新标注并加以说明[3],如表2所示。
表2 CSAMT的AVG数据文件变量说明Tab.2 The variable description of CSAMT AVG data file
GDP-32Ⅱ系统AVG文件都是按照固定格式进行存储的,这对于编程实现提取AVG文件信息是可行的。
对*.AVG文件读取时,头文件部分每行可采用字符串一维数组进行存储。
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,*) !跳过对分隔符的读取
如何确定测点数和单个测点的频率数?在不知道测点数和频率数情况下,采用判断测点号是否相等的办法来确定测点数和频率数。
I=1
DO
READ(2,'(3X,f8.1)')X(I)
!读取测点号
IF(X(I)==X(1))THEN
!判断测点号是否相同
NUMF=I
!确定出每个测点的频率数
END IF
IF(X(I)==0.)THEN
NUMP=I
EXIT
END IF
I=I+1
END DO
NUMP=(NUMP-1)/NUMF !确定出测点
数
数据体部分中每一测点各个频率采用二维实数组存储,数组变量名与Zonge的*.AVG数据文件变量名一致,并对每一个测点各个频率用“冒泡”法进行排序(升序或降序)。
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文件的读取与重新整理,得到新的数据文件,如表3所示。
对照表1和表3可以看出:在表3中的数据文件中剔除了数据标志变量,因为错误的数据是毫无意义的;新增加了频点序列号,为制作其他图件提供了方便;按照频率大小顺序排列变量值,为GRAPHER、SURFER等软件调用数据,制作一维 、二维图件提供方便;剔除了平均信息值,因为这些数据本身对于定性解释时,是无意义的。
通过对AVG文件信息的提取,用GRAPHER软件制作出某一测点在不同收发距情况下的Cagniard视电阻率与频率的双对数坐标关系图(ρω-f)、电场与频率的双对数坐标关系图(Ema-f)和阻抗相位与频率的单对数坐标图(Pha-f)(图1)。
从图1可知,曲线完整光滑,读取的数据没有发生错误,验证了对数据读取方法的正确性和程序的可靠性。
*.AVG文件是由TEMAVG.EXE程序读取*.FLD文件时产生的,文件中包含各时间道的TEM的测量数据,是对*.FLD文件中多次测量数据的算术平均值。*.AVG文件的数据存储顺序是按照时间道顺序(从1,2,…,n道)排列的。*.AVG文件的头文件,共9行,其中包括了测量的时间、文件名、排列装置、延迟时间(μs),发射回线长、短边长(m)、发射框面积(m2)、接收磁探头(接收线圈)等效面积(m2)、数据变量名、分隔符(表4)。
*.AVG文件数据体部分,包含了所有测点各个时间道的数据值。在编制程序提取AVG数据文件信息时,要对每个数据变量的单位作全面、准确地认识,现对每一个变量的单位进行说明[4],如表5所示。
表3 整理后的CSAMT的AVG数据文件Tab.3 The AVG data file of CSAMT after arrangement
图1 整理后的AVG数据的曲线图Fig.1 The curve of AVG data file after arrangement 表4 TEM的AVG数据文件 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数据文件变量说明Tab.5 The variable description of TEM AVG data file
*.AVG文件中每行尾为归一化感应电压的平均信息(等时间间隔采样时)。对*.AVG文件读取时,头文件部分每行可采用字符串一维数组进行存储,程序设计与提取CSAMT的AVG文件的头文件类似。确定测点数和时间道数程序设计与CSAMT确定测点数和频率数相同,数据体部分中每一测点各个时间道采用二维实数组存储,数组变量名与Zonge的*.AVG数据文件变量名一致。值得注意的是,当绘制与深度、时间道有关的断面图时,要对每一个测点数据矩阵按对角线交换重新进行排序,即相同时间道的数据在同一条曲线上。
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文件的读取与重新整理,得到新的数据文件(表6)。
对照表4和表6可以看出:在如表6所示的数据文件中剔除了数据标志变量,因为错误的数据是毫无意义的;剔除了发射点号,因为发射点号对于数据处理是无意义的;新增加了测点号和每个测点的时间道序号(升序和降序),为GRAPHER,SURFER等软件调用数据,制作不同一维 、二维图件提供方便;同样剔除了平均信息值,因为这些数据本身对于定性解释时,也是无意义的。
通过对AVG文件信息的提取,用GRAPHER和SURFER软件制作出某测线的1~6时间道时间谱剖面曲线和视电阻率-深度拟断面图(图2)。
从图2可知,曲线完整光滑,读取的数据没有发生错误,说明了对数据读取方法的正确性和程序的可靠性。
作者在分析了GDP-32ⅡAVG数据文件格式基础上,统一表示出了GDP-32Ⅱ数据文件中与国内电磁法变量单位的表示方法和数量级,采用FOR-TRAN语言编制出了读取与编辑*.AVG数据文件件信息程序,并对数据的移植性作出了相关说明,为GDP-32Ⅱ系统在野外生产中进行数据前期预处理过程中提供了帮助。
表6 整理后的TEM的AVG数据文件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系统AVG数据格式与开发研究[J].系统仿真技术,2006,7.
[3] 程志平.电法勘探教程[M].桂林:桂林工学院,2003.
[4] 牛之琏.时间域电磁法原理[M].长沙:中南工业大学出版社,1992.
[5] 徐士良.计算机常用算法,第二版[M].北京:清华大学出版社,1995.
[6] 美国Zonge公司. ZONGE Data Processing CSAMT DataAveraging Program[A]. December, 1996.
[7] 柳建新,王贵财,佟铁钢.基于GDP系统AVG数据格式与开发研究.[J].系统仿真技术,2006,2(3):7,144-149.
[8] 廖国忠,李富,梁生贤.基于GDP-32仪器中CSAMTAVG数据的预处理软件开发[J].工程地球物理学报,2013,10(2):165-172.
[9] 程志平.电法勘探教程[M].北京:冶金工业出版社,2003.
[10] 牛之琏.时间域电磁法原理[M].长沙:中南工业大学出版社,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(*,*)"结束!产生了一个名为TEMP.TXT文件"
100 WRITE(*,*)'按ENTER键结束!'
PAUSE
END