申秋羚 林毅
(海南水文地质工程地质勘察院,海南 海口 571100)
建(构)筑物的沉降监测是一项十分重要的工作,根据基准点对在建(构)筑物上设置的观测点进行沉降监测,并对监测数据进行统计、分析,得出沉降趋势,可提前对危险状况作出预警。沉降监测周期较长,监测数据量大,常规统计方法大多使用平差软件对监测数据进行计算,并采用Excel 记录和保存得到各监测点的高程,再利用Excel 的简单计算功能统计出各观测点的相关数据,最后绘制出相应的沉降曲线图。上述方法采用人工统计数据,效率低,易出错。为加强监测数据管理,提高数据处理的效率和准确性,基于Excel VBA 编程语言设计开发沉降监测数据自动化处理系统,可以实现沉降监测统计表、沉降监测曲线图的自动化生成,具有较好的应用效果。
Excel 具有强大的制表、运算和数据分析功能[1],直观的界面交互、便捷的数据录入、强大的公式计算和丰富的图表绘制功能成为最流行的数据处理软件。
VBA 是一种通用程序设计开发编程语言,功能强大、直观易用[2],以Excel 软件本身作为开发平台,利用其内嵌的VBA 语言进行二次开发,使得编程工作变得相对简单。VBA 嵌入Excel 中用于定制和扩展Excel 功能,可方便地被其他应用程序以OLE自动化形式调用和控制,用户可轻松录制或开发出自动化的处理程序。Excel VBA 中的应用程序对象Application、工作簿对象Workbook、工作表对象Worksheet、行列区域对象Range、单元格对象Cell、窗体控件、图表控件等[3]对象层次分明,封装的属性和方法极大地方便了功能需求的实现。
Excel 可以存储和输出沉降监测数据,并完成复杂的数据运算,但不能自动化处理这些数据。要实现从导入监测数据到输出成果的全程自动化处理,需要利用Excel 自带的VBA 进行二次开发。
系统开发流程为:(1)源数据预处理:对电子水准仪的源数据进行预处理,检查限差,生成测段数据表和往返测观测值平均值数据表等;(2)源数据计算:计算各测段高差、测段距离及测站数,并生成平差软件所需的数据格式并平差;(3)平差后数据导入:根据平差得出的沉降监测点高程值,通过VBA 编程实现自动导入沉降监测成果表中;(4)生成变形曲线图表:VBA 编程自动生成各变形观测点的高程值和变形曲线图表;(5)编写成果分析文件:提取各变形观测点的本期沉降量、累积沉降量、沉降速率,并进行统计分析,自动编写成果分析文件。
结合沉降监测的工作流程,系统设置了一个较为简洁的用户界面,通过点击菜单按钮即可调用各功能模块,提高了使用的便利性,如图1 所示。
图1 系统界面
(1)沉降监测数据处理
在Excel 表中新增“沉降监测数据处理”工具栏,在该工具栏中编程添加“手簿检查”“统计观测数据”“往返测数据取平均值”“生成平差易数据”子命令菜单。分别实现对原始监测数据的限差检查、生成测段数据表格、生成往返测观测值平均值数据表格、生成符合要求的数据格式。
该模块的编程思路为:①把控制网的原始监测数据导入同一个Excel 文档不同的表中,在文档工具栏位置调出“沉降监测数据处理”菜单。② 通过“统计观测数据”,输入往测或返测数据所在的工作表名,可自动生成测段起点号、测段终点号、测段距离、测段高差及测段测站数,同时自动生成一个“往返测较差比较”表,数据可自动导入该表。③ 往返测测段数据生成后,通过“往返测取平均”命令,在“往返测较差比较”表中生成测段平均距离、平均高差、测段测站数。如测段高差超限,高差的差值栏则以红色来标示,该测段的平均高差不再进行计算,需外业返工重测。④ 往返测测段数据合限取平均后,自动生成符合要求的数据格式。该模块的部分代码如下:
(2)导入平差高程数据
自动生成一个Excel 工作簿,把平差后的沉降监测点高程全部导入表格中。该模块的编程思路为:①打开平差软件进行平差计算,得到平差计算后的点高程值。②通过“导入平差高程数据”命令,把监测点高程成果导入Excel 工作表。部分代码如下:
(3)往沉降表中填写高程
在Excel 中增加一个“往沉降表中填写高程”工具栏,把平差得到的各沉降监测点的高程按照点名一一对应,导入各建(构)筑物沉降监测成果表。该模块的编程思路为:①点击“统计观测数据”,根据输入沉降监测路线的表名,自动在该表中生成测段起点号、测段终点号、测段距离、测段高差及测段测站数,把在该沉降监测路线表中生成的平差成果数据输出到保存目录下,并以表名称.txt 文件来保存。② 选择需要填入沉降监测点成果的建(构)筑物名称,点击命令按钮“往沉降表中填写高程”,在弹出的对话框中,输入建(构)筑物表名称、观测点数及第几次观测等,便自动把“平差后高程”表中的与建(构)筑物表观测点号相同的沉降数据填写到该表中。部分代码如下:
(4)建立变形曲线图表
利用VBA 编程对各变形观测点的高程值自动生成直观的变形曲线图表,绘制曲线为系统的重要功能和核心部分,根据时间和沉降量组成的点阵画出一列点,用轻量级多义线连接所有点,最后对多义线拟合成沉降量曲线图表和累计沉降量曲线图表[4]。代码如下:
(5)成果分析
提取各变形观测点的本期沉降量、累积沉降量、沉降速率等,并进行统计分析,导出分析结果。
2021 年7 月,在某电厂建(构)筑物沉降监测项目中,采用沉降监测数据处理系统对监测数据进行统计,系统可直接调入原始监测数据,避免手工输入的错误;然后依次按照程序设计的步骤,利用软件自动进行各项数据的计算和处理,最终自动生成相应的表格和变形曲线图表,如表1 和图2 所示。
表1 累计沉降成果
图2 累计沉降量曲线
Excel VBA 简单易掌握,其代码便于修改的特性为普通Excel 用户的日常工作带来了便利[5]。本文利用Excel VBA 设计并开发了沉降监测数据自动化处理系统,实现了沉降监测数据的自动化统计,可直接生成可视化监测成果,与传统方式相比,系统减少了人为干预,降低了劳动强度,提高了数据处理的效率和准确度,具有较强的实用性。