基于V8系统大地电磁时间序列数据文件读写
2018-01-22王丽坤陈进超
王丽坤,陈进超
基于V8系统大地电磁时间序列数据文件读写
王丽坤1,陈进超2
(1.四川金核矿业有限公司,成都 610052;2.成都理工大学,成都 610061)
大地电磁测深法已广泛应用于矿产资源勘查、工程地质、地震及地质灾害等领域。V8多功能电法仪是目前广泛使用的大地电磁数据采集系统,其随机配备的软件虽能显示或转换出采集到的时间序列文件数据,但没有时间域噪声分析处理功能。为开发与此系统相应的时间域噪声分析与处理系统,需对采集到的大地电磁测深原始时间序列数据进行分析。论文在分析大地电磁数据原始时间序列文件格式的基础上,明确了数据存储形式,根据参数特征,设计了原始数据读写算法程序,为大地电磁原始数据时间域分析及信噪分离提供了便利。
V8系统;数据文件;读写
大地电磁测深广泛应用于矿产资源、页岩气和煤层气勘探、工程地质、地震、及地质灾害等领域。目前主要采用的采集设备是加拿大凤凰公司的V8多功能电法仪,该仪器具有简单轻便、功能强、勘探深度大等特性[1]。在大地电磁实际勘探过程中,会受到通讯设备、钻井、矿山冶炼、铁路交通等因素形成的电磁噪声和人文噪声的干扰[2],为了较好地分离大地电磁干扰信号,需对采集到的大地电磁测深原始时间序列数据进行分析研究。
而V8多功能电法仪配套的Synchro Time Series View、SSMT2000、NPIPlot、MTEditor等相关软件仅具备大地电磁数据的傅里叶变换、显示电阻率和相位曲线,及原始时间序列文件图形显示的功能[3],不能读写(提取)采集到的时间序列文件数据;且目前常用的大地电磁后期处理软件MTsoft-2D主要用于大地电磁数据反演,不能去除类阶跃噪声、类方波噪声等人文干扰。因此,为了获取大地电磁测深原始时间序列数据,本文在分析大地电磁数据原始时间序列文件格式的基础上,研究不同频率的3字节二进制格式数据的读写,并通过实测数据进行验证。
1 V8大地电磁数据时间序列文件Tsn格式
V8采集大地电磁测深数据时,在每个测点记录电道和磁道中Ex、Ey、Hx、Hy、Hz五个分量,并将原始数据记录在参数文件(*.TBL)、盒子标定文件(*.CLB)、磁探头标定文件(*.CLC)及不同频带的数据文件(*.Tsn文件,n=3,4,5)中。V8采集到数据文件的命名基于采集设备的序列号和采集日期,命名格式为ssssmdda,其中ssss为采集数据的MTU/MTU-A设备的序列号,m为16进制表示的月份,dd是一个表示日期的两位十进制数,a是一个表示当天采集次数的英文字母。*.Tsn是存放时间序列的文件,TSn分别标明不同的频带,对于V8采集系统,*.TS3是2400Hz的采样率数据,*.TS4是150Hz的采样率数据,*.TS5是15Hz的采样率数据[3]。
图1 V8的时间序列文件记录样式
时间序列文件*.TSn连续记录时间序列数据,记录下不同时刻的采样代数值。每段记录(RECORDE)由一个tag(标记)和一连串数据组成,由多段记录(RECORDE)组成了时间序列文件,图1为时间序列文件的记录样式。时间序列以在24位字节存储,每个采样占3 bytes。一个scan(扫频)是多个道的采样,每道的值由三个字节组成。一个采样时间的完整scan按照道号保存(道号从1开始),scan按采样时间的顺序保存。第一个scan永远在UTC的整秒开始记录,扫描率永远为1Hz的整数倍[3.4.5]。
表1 Tag(标记)各个字节的含义
根据盒子的硬件不同,tag的格式也可能不同,但是在一个文件中只会使用一种tag。目前,在TSH和TSL文件中,tag为16 bytes长,在TSn文件中32 bytes长。表1综合说明了不同的tag格式细节。
2 V8系统大地电磁数据读写
读取大地电磁测深数据,需要首先定义相关参数变量见表2,并获得时间序列数据文件名,接着在文件夹下查询文件是否存在,不存在则退出程序。打开文件,用二进制方式逐字节顺序读取文件。读取tag(标签)参数信息,不同仪器盒子的硬度不同,tag(标记)的格式也不同。取的V8系统大地电磁数据的Tag如下:SEC、MIN、HOUR、DAY、MONTH分别为秒、分、时、天、月;YEAR1、YEAR2是年份,两个字节保存,因此读出后要将这两个字节组合,下同;SER_NUMB1、SER_NUMB2是盒子编号,分两字节保存;SAMP_RATE1、SAMP_RATE2是采样率,分两字节保存;CHAN是采样道数。
经研究发现文件的数据组织如下:一个TSn文件由若干个RECORD组成,具体个数不确定,需要读取的时候检查文件是否结束。一个RECORD由一个tag标签和一组对应的SCAN组成,这组SCAN的数量在它对应的tag相应的字节中给出;一个SCAN由N个CHANNEL(采集的电道和磁道)数据(整形)组成,CHANNEL的个数在tag标签相应字节给出;一个tag标签的所占的字节数(长度)也在它对应的字节中给出,tag标签一般由32个字节保存。解析RECORD包含的tag长度和含有的SCAN个数,及每个SCAN包含的CHANNEL个数。Tsn时间序列数据读取流程见图2。
表2 数据读取参数及说明
读取Tsn时间序列数据文件的tag(标记)部分,可获得文件的时间、仪器序列号、scan扫描个数、channel道数及采样率等参数信息。接着根据tag(标记)的相关信息,读取大地电磁实际测量数据。因Tsn时间序列数据文件中每个道channel的数值由3个8位二进制组成,读取实测数据时,需将三字节的二进制数拼成24位的二进制数,最后将二进制数转换成十进制数,并存放到对应的数组中。
V8系统采集到的数据以二进制方式存储,负数采用补码方式存储,在补码中最高位为符号位,正数用原码形式存储。
2.1 24位二进制有符合数的拼接
计算机存储时按照低8位、中8位、高8位顺序存放,分别存放到变量SCAN_CHANNEL(1)、SCAN_CHANNEL(2)、SCAN_CHANNEL(3)中,上述三个变量均为单字节整型变量。读取的时候SCAN_CHANNEL(3)是数据的高8位,SCAN_CHANNEL(1)是数据的低8位,因此要正确组合,就必须先将SCAN_CHANNEL(3)与SCAN_CHANNEL(1)换位,形成正确的数据格式顺序,其中SCAN_CHANNEL(3)最高位为符号位。
图2 读取Tsn时间序列数据文件流程
2.2 24位二进制有符号数转换成十进制数
数值在采集仪器存储的时候为24带符号的补码,因此需要先判断符号,因此最高的一位代表符号位,不能作为数值转换,实际数据数值部分是23位。
1)符号的判断:如果SCAN_CHANNEL(3)的十进制值大于或等于128,则表示这个道值是负的,否则为正;
2)若SCAN_CHANNEL(3)表示的十进制值大于等于128,则减去128,将结果乘以65536,与SCAN_CHANNEL(2)*256+SCAN_CHANNEL(1)求和结果与128*65536的值相减,即得24位二进制数表示的十进制数据。
具有的转换程序如下:
if (SCAN_CHANNEL3 < 0) %高8位为负,需要调整,加上模值128后乘以倍率65536
CHANNEL_VAUE = (SCAN_CHANNEL3+128)*65536
if (SCAN_CHANNEL2 < 0) %中8位为负,需要调整,加上模值后乘以倍率256
CHANNEL_VAUE=CHANNEL_VAUE + (SCAN_ CHANNEL2+256)*256
if (SCAN_CHANNEL1 < 0) %低8位为负,需要调整,加上模值后即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_ CHANNEL1+256
else %低8位为正,不需要调整,即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_ CHANNEL1
end
else %中8位为正,不需要调整,直接乘以倍率256
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL2 *256
if (SCAN_CHANNEL1 < 0) %低8位为负,需要调整,加上模值后即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL1+256
else %低8位为正,不需要调整,即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL1
end
end
CHANNEL_VAUE = CHANNEL_VAUE -8388608
else %高8位为正,不需要调整,直接乘以倍率65536
CHANNEL_VAUE = SCAN_CHANNEL3 * 65536
if (SCAN_CHANNEL2 < 0)
CHANNEL_VAUE=CHANNEL_VAUE + (SCAN_CHANNEL2+256)*256
if (SCAN_CHANNEL1 < 0) %低8位为负,需要调整,加上模值后即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL1+256
else %低8位为正,不需要调整,即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL1
end
else %中8位为正,不需要调整,直接乘以倍率256
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL2 *256
if (SCAN_CHANNEL1 < 0) %低8位为负,需要调整,加上模值后即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL1+256
else %低8位为正,不需要调整,即为正确数值
CHANNEL_VAUE = CHANNEL_VAUE + SCAN_CHANNEL1
end
end
CHANNEL_VAUE = CHANNEL_VAUE + 0
end
3 数据读取实例
采样本文所用的数据读取方法对文件名为1659A12A.TS3的时间序列文件进行处理,得到如下相关参数:采样时间是2015年10月12日10点55分,盒子编号为1659,采集到6道数据,分别对应于Ex、Ey、Ez、Hx、Hy、Hz的场值,采样率为2400Hz。将读取的数据中的Ex道数据的一小段与原程序读取的数据进行对比,如图3所示,可知本文所用方法读取的数据与V8配套软件读取的数据完全一致,证明了本文所用方法可行。
图3 用本文程序读取的实测MT数据Ex电场分量与原程序读取数据对比
4 结论
通过对V8系统大地电磁测深时间序列数据文件格式的深入分析和研究,提取Tsn文件的tag标签参数信息,并根据参数信息,实现了大地电磁时间序列文件的三字节数据的读写。该方法可快速准确地获取时间域数据信息,为后续大地电磁测深数据时间序列的研究、信噪分离及后期处理提供帮助。
[1] 郭泽秋,叶高峰,王辉,魏文博.基于MATLAB的SSMT-2000大地电磁资料批处理技术[J], 物探与化探,2013,37(5):921-925.
[2] 李晋.基于数学形态学的大地电磁强干扰分离及应用[D].长沙:中南大学,2012.
[3] 加拿大凤凰地球物理有限公司中国联络处.MTU-A操作手册_3.2.1_beta[M].北京:加拿大凤凰地球物理有限公司,2005:129-131.
[4] 刘俊峰,孙保山,程云涛.V8 MT时间序列数据文件读写[J]. 工程地球物理学报,2015,12(5):660-664.
[5] 吴正刚,雷旭友,余年.基于V8系统大地电磁数据格式转换及实现[J]. 工程地球物理学报,2009,6(5):603-606.
Read and Writing of V8 Series Magnetotelluric Time Data File
WANG Li-kun1CHEN Jin-chao2
(1-Sichuan Jinhe Mining Co., Ltd, Chengdu 610052; 2-Chengdu University of Technology, Chengdu 610059)
Magnetotelluric sounding method has been widely applied to exploration of mineral resources such as shale gas and coalbed methane, engineering geology, and geohazard survey and so on. V8 multifunctional electrical method is usually used as magnetotelluric data acquisition system, and its support software can display or conversion to the time sequence of file data, but there is no noise analysis processing functions in time domain. The magnetotelluric original time series data obtained must be analyzed in order to develop the system of the corresponding time domain noise analysis and processing system. This paper defines the form of data storage based on the analyzing the formats of magnetotelluric original time series data, and designs the program of raw data read and write algorithm according to its parameter characteristics.
V8; magnetotelluric time series files; read and write
2017-04-28
四川省科技支撑计划项目(2016GZ0135)
王丽坤(1985- ),女,山西省应县,工程师,研究方向:信号与信息处理、监测预警、安全评价
P631.3;
A
1006-0995(2017)04-0674-04
10.3969/j.issn.1006-0995.2017.04.034