申秋羚 林毅
(海南水文地質工程地質勘察院,海南 海口 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 設計并開發了沉降監測數據自動化處理系統,實現了沉降監測數據的自動化統計,可直接生成可視化監測成果,與傳統方式相比,系統減少了人為干預,降低了勞動強度,提高了數據處理的效率和準確度,具有較強的實用性。