VBA与EXCEL在处理物探工作中航迹信息的应用

2022-12-07

在日常的物探工作中成图的三维化成为现在的一个趋势, 各测点的高程信息也成为后期数据处理及制图的重要参数之一。

手持GPS做为地质工作中的重要工具以其方便、快捷的特点大量在物探工作中得以大量应用。准确设置参数的手持GPS采集的原始数据其平面绝对定位精度能达到±3.7m, 高程绝对定位精度能达到±6.1m。数据经处理 (剔除系统性误差) 后其精度能分别提高到±3.5m和±5.3m, 能够满足小于1∶5000比例尺的物化探测网布设和地质填图等多项工作的精度要求[1]。

Visual Basic for Applications (VBA) 是一种Visual Basic的一种宏语言, 主要能用来扩展W i n d o w s的应用程式功能, 特别是Microsoft Office中的相关组件, 如EXCEL等。VBA不但继承了VB的开发机制, 而且VBA还具有与VB相似的语言结构, 它们的集成开发环境IDE (Intergrated Development Environment) 也几乎相同。但是, 经过优化, VBA专门用于Office的各应用程序。[2]

自动记录航迹是手持GPS的一项基本功能, 当GPS接收机接收到3颗以上的卫星信号并完成定位后就开始自动记录航迹, 直到GPS接收机关闭或收不到卫星信号为止。

航迹中记录了大量的坐标及高程信息, 如何快速的从大量的航迹信息中找出我们需要的信息, 实现航迹处理的自动化就是我们下文要讨论的问题。

1 工作流程及程序设计

利用手持G P S以G A R M I N的e T r e x Venture型为例, 测量测点高程的一般程序是:导航到理论坐标→操作GPS存点→完成该测点工作继续前往下一测点。看似简单, 但如果工作中疏忽漏存了某点再去补点就会给工作带来极大的不便。通过对GPS自动记录航迹的数据进行回放, 我们可以发现, 航迹忠实地记录了定位期间大量的坐标与高程信息, 当然也包括了我们测点的相关坐标及高程。我们可以通过利用航迹中的信息将测量测点高程的程序简化为导航到理论坐标→完成该测点工作继续前往下一测点, 在一定程度上提高了工作效率, 同时也避免了漏存点等工作失误带来的影响。

打开G A R M I N回放软件M A P S O U R C E浏览航迹信息我们可以看到大量的航迹信息 (图1) , 其中大圆为理论测点, 小圆点为航迹中的各个记录点。可见航迹中记录点数量要远远大于理论测点数量, 如何把众多的航迹记录点中离理论测点最近的那个找出来就是我们下文中要讨论的问题。

在此我们利用EXCEL及其自带的VBA功能进行简单编程完成了这个任务。首先我们利用M A P S O U R C E的另存功能将航迹以直角坐标的形式转存为TXT文件, 然后在E X C E L中打开此T X T文件, 删除无用信息仅保留X, Y坐标及高程信息 (图2) 。

可见航迹中共记录点1309个, 下一步就结合EXCEL的公式计算以及简单的VBA编程实现计算机自动筛选出理论测点附近航迹记录点的高程, 实现自动化处理。

我们在EXCEL中先准备待处理数据 (如图3) , 建立几列依次为“点号”、“理论测点Y坐标”、“理论测点X坐标”、“理论测点高程” (留空) 、“航迹Y坐标”、“航迹X坐标”、“航迹高程”、“计算区1”、“计算区2” (留空) 、“计算区3” (留空) 、“误差”。其中计算区1需输入公式:SQRT (POWER ( (F1-$K$1) , 2) +POWER ( (E1-$J$1) , 2) ) 并向下填充到最后一个数据用于计算两点间距离。接着利用EXCEL中的控件工具箱在合适位置建立控件“命令按钮”双击命令按钮进入代码窗口。

这次代码的编制充分运用了EXCEL公式自动计算与VBA的循环功能相结合, 以EXCEL为基础, 力尽用最简洁的代码来完成任务。代码及注释如下:

当点击“计算”按钮后将第一个理论测点坐标值即单元格B1C1的值即复制到计算区2和3中, 此时计算区1及其列中公式得出结果, 求出每个航迹记录点与理论测点的平面距离即偏距值。然后求出偏距值中最小值, 找出其对应的坐标和高程放入D列的高程值区, 并循环进行下一个理论测点直到完成所有点。同时表格中M列给出所选航迹点的偏距值, 用以评价数据质量。

在此例中处理了303个理论测点的高程, 并有1300多航迹点参加运算, 但整个过程不超过10秒, 非常适合物探工作中大规模的规则网及海量的航迹数据。

2 结语

本文介绍了VBA与Excel在物探数据处理方面的一个具体应用, 实践证明VBA在Excel物探数据处理中数据处理的效率得到了极大的提高, 减少了人为误差。通过深入研究VBA对Excel的操作和功能, 可以将这些方法应用于其它需要大量数据处理的领域, 将大大加快数据处理的速度, 减少错误的发生, 提高工作的效率。VBA具有简单易学、句法简单的特点, 而且不需要额外安装VB的开发环境, 因此无论在实际工程领域, 还是日常工作的数据处理方面, 都有非常广阔的应用前景。

摘要:文章通过对物探野外工作中遇到的实际问题进行分析, 提取出GPS航迹中的有用信息, 通过常用的EXCEL程序与VBA的简单编程相结合实现了工作的自动化, 提高了工作效率, 具有推广意义。

关键词:手持GPS,航迹,VBA,EXCEL

参考文献

[1] 李国防, 闫新亮.手持GPS定位精度测试及其在矿产勘查中的应用[J].矿产勘查, 2010:380~384.

[2] 黄海.Excel VBA语法与应用辞典.2009.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:浅谈如何通过良好的师生关系提高课堂教学效果下一篇:钛铁矿粉气力输送系统的节能设计与应用