EXCEL宏在CSAMT数据预处理中的应用

时间:2022-05-14 07:01:44

EXCEL宏在CSAMT数据预处理中的应用

摘要

关键词 EXCEL宏;CSAMT;视电阻率;双对数曲线

Excel是个人电脑普及以来用途最广泛的办公软件之一,也是Microsoft Windows平台下最成功的应用软件之一。无论用户身处哪个行业、所在公司有没有实施信息系统,只要需要和数据打交道,Excel几乎是不二的选择。

Excel之所以有这样的普及性,是因为它被设计成为一个数据计算与分析的平台,集成了最优秀的数据计算与分析功能,用户完全可以按照自己的思路来创建电子表格,并在Excel的帮助下出色的完成工作任务。[1,2]

可控源音频大地电磁测深(CSAMT)是以地壳中岩石和矿石的导电性和导磁性差异为主要物理基础,研究电磁波在地下介质传播过程中在地表的不同特征,从而了解地下介质的电性变化情况。

通过在地面观测不同频率交变电磁场相互正交的电场分量(Ex)和磁场分量 (Hy),进而求得地层视电阻率(ρs)随频率(f)变化关系。控制频率即可达到测深之目的,通过发射和接收不同频率的电磁波,得到一个完整的测深曲线,以达到纵向岩性分层之目的。实际工作中可控源音频电磁感应测深法观测电场Ex和磁场Hy,由下式计算视电阻率,又称卡尼亚电阻率记为ρω。[3]

CSAMT法同直流电法勘探相比有以下优点:

1)、使用可控制的人工场源,抗干扰能力强。2)、工作效率高。3)、纵向分辨率高。4)、横向分辨率高。5)、地形影响小。6)、勘探深度范围大。7)、高阻屏蔽作用小。8)、立体观测,获取信息大。[4]

CSAMT法由于测量信息大,数据多,在资料汇交时整理的表格也十分的多,专业的数据反演解释软件一般没有这些功能,Excel及其VBA就成了不二的选择。

这里以本人在用Excel宏整理V8数据为例,说明Excel宏在CSAMT工作中的应用。

一、批量导入V8的Txt文件汇总到Excel

多功能电法工作站V8记录的数据可以输出成Txt等多种格式,Txt格式的文件是一个测点一个文件名,用空格分开的5列分别是:频率、视电阻率、视电阻率误差、相位、相位误差。为了汇总数据并打印提交,我们就要把所有文件中的数据放入Excel中,利用录制的Excel宏,少加修改就可把这个费时费力的重复工作瞬间完成。

导入文件的部分代码如下:

……

For i = 0 To Me.ListBox1.ListCount - 1

fn = Me.TextBox1 & Me.ListBox1.List(i)

If Me.ListBox1.Selected(i) = True Then

iRow = Sheet1.Range("C65536").End(xlUp).Row

Range("A" & iRow + 1).Select

Sheet1.Range("A" & iRow + 1) = Me.ListBox1.List(i)

Range("B" & iRow + 1).Select

With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & fn, Destination:=Range("B" & iRow + 1))

.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)

.TextFileTrailingMinusNumbers = True

.Refresh BackgroundQuery:=False

End With

icount = icount + 1

End If

Next

为了更好的选择Txt数据,在使用这些代码时,我们也添加了VBA窗体,界面如下:

在导入文件后,利用VBA在文件名中取特定的字段为测点号并插入到B列。

bb = InputBox(, , 4)

cc = InputBox("请输入测点号位数:", , 4)

For i = 2 To Range("C65336").End(xlUp).Row Step 50

aa = Range("A" & i) '123456:F7

cmid = Mid(aa, bb, cc)

For ii = i To i + 49

Range("B" & ii) = cmid

Next

Next

图2 由文件名定字段作为测点号

至此,完成数据的导入汇总工作。

二、利用Excel绘制双对数坐标原始曲线图

在Excel中选择录制宏,然后再插入图表,按照图表向导的4个步骤,选择图表类型为XY散点图,源数据为一个测点的频率列与视电阻率列,初步生成的图表在Excel中。分别双击X、Y坐标及绘图区,进行更完美的格式设置。X坐标格式设置界面如下图3。

将录制的宏文件用VBE编辑器方式打开,认真修改后,增加一个For …To …Next循环语句即可完成自动绘制。

执行VBA宏代码生成一条测线上各测点的原始对数曲线图,可以把它们排列好,通过选择性粘贴,将其复制到Word中保存,为下步处理工作提供指导,并可做成为汇交的原始曲线图册。

三、生成汇交资料表

若要把每个测点的CSAMT原始数据及坐标信息一起制成表格存档,在Sheet2表中放入:测线号、测点号、X、Y、H 五列坐标信息,在Sheet1中录制一个宏,思路是:

1、删除Sheet1中第一列与第一行;

2、对数据区域添加边框线;

3、在Sheet1中的不同测点间插入项目名称,测点坐标,列标题三行

4、根据Sheet1中的测点号,在Sheet2中自动查找对应的XYH坐标信息,写在Sheet1中插入的第二行中。

宏代码运行后的预览效果如图。

加上上面的表头,一般每个测点的CSAMT原始数据在40~50之间。在页面设置中通过调整页边距、缩放比例等参数,使一页纸正好可以打下一个测点的全部信息。

四、误差计算与对比曲线图绘制

在CSAMT工作中,为了说明数据的有效性、真实性,我们都要进行质量检查的。规范规定:①检查点数不得少于全测区坐标点的3%。②检查点与被检查点的全频视电阻率(ρω)曲线及相位(φω)曲线,应形态一致。③对应频点的数值接近,均方相对误差(m)不应大于5%。 利用前面的方法,在宏代码中加入一段计算均方相对误差的内容,即可成为一个专门进行误差计算与对比曲线图绘制的完整代码。

具体代码从略。部分表格内容见下图。

Excel在CSAMT数据的预处理过程中,具有通用性强,获取简单,成本低廉的特点,方便推广使用。不懂编程的人利用Excel的录制宏功能只用几个小时就可学会简单的编程,能够把物探技术人员从烦琐、机械的原始数据汇总、曲线绘图工作中解放出来,把主要的精力用到物探资料对地质解译的研究中。

注:文章内所有公式及图表请用PDF形式查看。

上一篇:薄壁缠丝滤水井管均匀围压下临界承载力的研究 下一篇:工业厂房工程造价在设计阶段的控制初探