付兵杰,夏金梧,丁凡椏,李 書,范 萌,李亞虎
(1. 長江勘測規(guī)劃設計研究有限責任公司,湖北 武漢 430010;2. 水利部長江勘測技術研究所,湖北 武漢 430011)
巖體聲發(fā)射是指巖體內部的成分結構和存在的缺陷等自然因素在外加荷載作用下,應變能積蓄到特定閾值,以彈性波的形式釋放,由聲發(fā)射源向四周擴散所產生的現(xiàn)象[1-2]。聲發(fā)射技術在水利水電樞紐區(qū)開挖形成的人工邊坡以及自然高危邊坡,尤其是水庫建設中形成的庫區(qū)崩塌型岸坡、硬質巖邊坡等臨滑時期穩(wěn)定性監(jiān)測預報方面具有較強的優(yōu)勢。聲發(fā)射的水平、聲源的空間分布直接反映邊坡的變形動態(tài)。通過合理的聲發(fā)射接收信號布設方案,監(jiān)測滑坡或崩塌體臨滑時產生的聲發(fā)射信號;再利用聲發(fā)射聲源定位功能,定位臨滑點,對滑坡變形過程進行實時動態(tài)監(jiān)控和預警預報,追蹤滑坡破裂面的發(fā)展,從而準確評價滑坡的穩(wěn)定性。傳統(tǒng)邊坡聲發(fā)射監(jiān)測系統(tǒng)多采用C/S 架構,數據庫存儲在本地,數據展示和分析以客戶端軟件為主,缺少瀏覽器端直觀的三維場景構建,適合在局域網中運行,在系統(tǒng)兼容、升級拓展、數據共享和用戶體驗等方面有待提升。隨著Web技術的發(fā)展,前后端分離的B/S 架構逐漸成為軟件設計和開發(fā)的主流模式,SpringBoot、Cesium 等相關技術被廣泛應用于水質監(jiān)測[3]、動態(tài)洪澇管理[4-5]、礦山管理[6]、水文預報[7]、流域虛擬場景搭建[8]、地下三維管網[9]等領域,可有效彌補C/S架構的不足。
本文以湖北省秭歸縣郭家壩鎮(zhèn)邊坡、江西省新余市某礦山邊坡為例,基于SpringBoot[10-11]和Cesium[12-13]設計并構建了B/S 架構下的邊坡聲發(fā)射監(jiān)測系統(tǒng)。系統(tǒng)將數據的獲取、存儲和發(fā)布設計為獨立的后端數據模塊,前端通過API 接口獲取后端數據,實現(xiàn)了前、后端分離;設計了三維場景可視化、監(jiān)測數據管理、在線統(tǒng)計分析、監(jiān)測預警預報、系統(tǒng)設置等功能,為邊坡地質災害在線智能監(jiān)測提供了全方位、立體化、動態(tài)化的示范性應用。
根據邊坡聲發(fā)射監(jiān)測的業(yè)務需求和應用場景,系統(tǒng)采用5 層架構,即支撐層、數據層、服務層、應用層和用戶層。支撐層主要為系統(tǒng)提供軟硬件底層支持,包括數據獲取終端和基礎設施,是保障系統(tǒng)穩(wěn)定高效運行的必要前提。聲發(fā)射監(jiān)測儀用于聲發(fā)射信號的采集、降噪、優(yōu)化和定位計算等操作。無人機可搭載航測相機、激光雷達等設備,用于獲取邊坡影像、地形等相關地理空間數據。數據處理軟件包括CesiumLab、ArcGIS、ERDAS 等,用于影像和地形數據的輸入、輸出、增強、糾正、融合、拼接、裁剪和切片等基礎操作。數據層主要負責各類數據的統(tǒng)一組織、存儲和管理。地理空間數據屬于非結構化數據,用于提供統(tǒng)一的空間框架支撐。業(yè)務數據和支撐數據為結構化數據,存儲在關系型數據庫中,業(yè)務數據主要包括監(jiān)測場地、探頭傳感器、聲發(fā)射源、信號波形、參數設置、操作命令等;支撐數據主要包括用戶信息、權限控制、日志數據等。服務層以服務的形式對數據進行處理、整合和發(fā)布。Web服務器是服務發(fā)布和前后端數據交互通信的基礎載體。地理空間數據引擎基于Cesium API 發(fā)布地理信息服務,包括影像瓦片服務、地形瓦片服務、在線基礎地理數據公共服務、聲源和探頭對象動態(tài)標注服務等。關系型數據引擎以RESTful風格API的形式對外發(fā)布服務,包括聲源屬性查詢服務、探頭屬性查詢服務、信號波形查詢服務、聲源關聯(lián)探頭分析服務、聲源關聯(lián)信號波形查詢服務、報表統(tǒng)計分析服務、用戶管理服務、系統(tǒng)設置服務等。應用層基于服務層的接口,通過瀏覽器端可視化界面實現(xiàn)數據的在線瀏覽、查詢、管理和分析,包括三維場景可視化、監(jiān)測數據管理、在線統(tǒng)計分析、監(jiān)測預警預報、系統(tǒng)設置等功能。用戶層主要根據不同權限對用戶角色進行劃分,普通用戶負責三維可視化場景、在線統(tǒng)計分析圖表、預警預報結果的瀏覽查看;后臺管理人員負責監(jiān)測數據的編輯與管理;超級管理員負責系統(tǒng)設置和用戶管理,以及普通用戶和后臺管理員的全部權限。
聲發(fā)射監(jiān)測儀通常包括探頭、信號采集器、通信傳輸模塊、上位機、蓄電池等部分。探頭按照一定的規(guī)則布設在邊坡上,聲發(fā)射信號由探頭傳感器獲取和轉換后,經信號采集器處理、采集、收發(fā),由通信傳輸單元發(fā)送至上位機,經降噪、優(yōu)化和定位計算等處理,得到聲源發(fā)生位置、預警等級等信息,再上傳至Web服務器的關系型數據庫中。
系統(tǒng)功能模塊包括5 個一級模塊和18 個二級模塊,如圖1所示。
假設某一聲發(fā)射源信號被探頭i、j響應,則信號傳播方程式為:
式中,x、y、z為聲發(fā)射源的空間坐標;t為信號發(fā)射時間;v為信號傳播速度;si(x,y,z) 、sj(x,y,z)分別為探頭i、j到聲發(fā)射源的響應距離;ti、tj分別為探頭i、j的信號接收時間;(xi,yi,zi)、(xj,yj,zj)分別為探頭i、j的空間坐標。
在實際應用中,邊坡的內部構成總體差異不大,視為各向同性均勻材料,即假定聲發(fā)射信號在邊坡內部的傳播速度是相等的,一般可通過實驗方法測定。
兩個探頭響應距離的差值為:
將sij、xi、yi、zi、xj、yj、zj視為已知觀測值,x、y、z視為未知量,則線性化誤差方程為:
式中,lij=(sij)-sij;(sij)為將未知量近似值代入公式計算所得。
當聲發(fā)射源信號被多個探頭響應時,可聯(lián)立公式構成方程組,矩陣形式為:
根據最小二乘法,其法方程為:
可求出未知數的解為:
迭代過程中,當未知量改正數小于規(guī)定閾值時,迭代過程終止。理論上建立4 個方程組即可求解聲發(fā)射源的空間坐標;實際應用中為了提高解算精度,常有多余觀測方程,即至少需要4 個探頭響應到該聲發(fā)射源的信號。
根據系統(tǒng)總體架構,數據層包括地理空間數據、業(yè)務數據、支撐數據3 類,具有文本、信號、影像、地形、矢量等多種形式,表現(xiàn)出數據量大、來源各異、維度多樣、結構不統(tǒng)一、時空兼顧等特點。為保證數據的完整性和一致性,需對其進行分類、提取、處理、關聯(lián)和融合,規(guī)化到統(tǒng)一的空間基準和時間基準上,構建多源多維異構數據的一體化存儲和發(fā)布體系,實現(xiàn)瀏覽器端統(tǒng)一高效的數據可視化框架。
聲發(fā)射監(jiān)測業(yè)務數據和支撐數據包括監(jiān)測場地、探頭、聲發(fā)射源等空間對象的位置和屬性信息,以及系統(tǒng)實施過程中產生的大量非空間數據,如監(jiān)測儀器布設時的參數設置數據、運行時的操作命令數據和日志數據、事件響應時的信號波形數據等。將這些數據統(tǒng)一設計為結構化數據,存儲在關系型數據庫中,可在數據輸入時保證時空尺度、格式、編碼、分類的一致性。各數據表格通過唯一的標識ID進行關聯(lián),如聲發(fā)射源表通過ID 關聯(lián)監(jiān)測場地、探頭和波形信號等。系統(tǒng)布設時將監(jiān)測場地和探頭的位置、屬性信息以及參數設置信息錄入數據庫;系統(tǒng)運行時將操作命令、日志和信號波形數據以固定格式實時上傳至數據庫,聲發(fā)射源的位置、屬性信息經監(jiān)測儀處理和計算后上傳。業(yè)務數據和支撐數據具有數據量大、時空性強、變化頻率高等特點,系統(tǒng)采用基于服務的方式對其進行統(tǒng)一發(fā)布,可快速實現(xiàn)信息共享和版本更新。用戶通過服務定義的API接口調用數據,保證了數據的安全性和一致性,實現(xiàn)了空間對象與非空間數據在接口層面的融合。
地理空間數據包括三維場景數據、矢量圖層數據和在線基礎地理數據。三維場景數據主要利用無人機平臺搭載航測相機或激光雷達,多角度獲取邊坡及其周邊的真實影像數據和地形數據,再利用三維建模軟件,經導入、對齊、密集點云生成、紋理生成等步驟獲取。由于三維場景數據特別是高清影像往往數據量較大,直接以文件的形式提供服務,會影響瀏覽速度和用戶體驗。系統(tǒng)采用預生成瓦片服務的形式,即預先在服務器中對影像和地形數據進行分級切片,瀏覽器端調用時根據顯示范圍和比例尺對切片數據進行拼接后返回客戶端,經Cesium相關API實現(xiàn)模型渲染、融合和場景構建。影像和地形在切片時要保證空間參考、切片層級、算法的一致性,避免融合時出現(xiàn)裂縫和鬼影。為了構建矢量圖層數據,基于Ajax調用API接口獲取探頭、聲發(fā)射源的信息,基于三維場景底圖數據進行幾何要素的繪制和標注,實現(xiàn)了監(jiān)測對象結構化數據向矢量圖層數據的轉化。利用天地圖API加載在線基礎地理數據,與矢量圖層數據、三維場景數據實現(xiàn)在Cesium引擎環(huán)境統(tǒng)一時空基準下的融合。此外,在三維場景中對監(jiān)測對象矢量進行點擊查詢操作時,可基于Ajax調用相關聯(lián)的非空間數據在瀏覽器端進行瀏覽和分析,實現(xiàn)空間數據與非空間數據在用戶界面的融合。
結構化、更新頻率高的業(yè)務數據和支撐數據,通過服務接口的形式動態(tài)提供;數據量大、更新頻率低的三維場景數據采用預生成瓦片服務的形式提供,這種發(fā)布方式實現(xiàn)了監(jiān)測對象、非空間數據與三維場景數據在瀏覽器端的有效融合,提升了瀏覽效率,保證了數據的快速更新,且兼容性較好,不受操作系統(tǒng)和瀏覽器的限制,為未來應用拓展至智能手機平臺提供了基礎。
基于探頭和聲源對象的二維屬性信息,對探頭掃描和聲源擴散進行動態(tài)效果仿真,可增加監(jiān)測數據的直觀性、形象性和生動性,提升用戶體驗。PostProcessStage是Cesium中的場景后期處理類,用于對場景或對象進行紋理、顏色渲染。系統(tǒng)首先基于Ajax請求從RESTful 風格API 接口獲取探頭、聲源對象的個數和屬性信息,并利用PostProcessStageLibrary 創(chuàng)建探頭、聲源的“效果對象”,得到多個PostProcessStage-Composite;然后將其加入PostProcessStageCollection 集合中,并設置fragmentShader、uniforms 等參數信息;最后根據對象加入的順序,進行屏幕后期處理,將仿真效果實時繪制到屏幕上??紤]到動態(tài)效果與地形起伏的一致性,避免多視角瀏覽時動態(tài)效果的“漂浮”現(xiàn)象,系統(tǒng)設置“效果對象”貼地顯示。
根據探頭的掃描特性和聲源的發(fā)射擴散特性,分別采用雷達掃描、波形擴散的形式對探頭、聲源進行動態(tài)模擬。設置PostProcessStage 類的fragmentShader、uniforms 參數,可實現(xiàn)對特效位置、顏色、紋理和動畫的設計。將探頭和聲源的屬性信息融入這些參數中,可實現(xiàn)二維屬性與三維特效的動態(tài)綁定和有機統(tǒng)一。對于探頭,其位置屬性為雷達掃描中心,探測距離為雷達掃描半徑,探測周期為雷達掃描持續(xù)時間;對于聲源,其位置屬性為波形擴散中心,發(fā)射最大距離為波形擴散半徑,發(fā)射周期為波形擴散持續(xù)時間。
系統(tǒng)以湖北省秭歸縣郭家壩鎮(zhèn)邊坡、江西省新余市某礦山邊坡為例構建。聲發(fā)射監(jiān)測儀按照一定的規(guī)則布設在邊坡上,利用大疆無人機M300 獲取影像、地形數據,基于Cesium Lab軟件進行切片,影像切片采用PNG格式,地形切片采用Terrain格式。業(yè)務數據和支撐數據存儲在MySQL 數據庫中。系統(tǒng)采用B/S 架構,Web 應用服務器采用Tomcat,后端采用Spring-Boot、MyBatis[11]技術實現(xiàn)RESTful[7]風格的API 接口體系,以JAR 包的形式發(fā)布服務;前端采用HTML、Javascript、CSS語言實現(xiàn)系統(tǒng)界面,基于Ajax技術提交請求到后端,服務器收到請求后調用JAR包響應,獲取數據后在前端進行渲染和展示,利用Cesium作為影像、地形數據和監(jiān)測對象的三維可視化引擎。
三維場景可視化主要包括監(jiān)測場地的邊坡漫游、空間量測、空間查詢、圖層管理等功能。邊坡漫游主要包括平移、放大縮小、視角調整、地圖復位、三維漫游等地圖操作,當前位置(經緯度、視角高)、視角(航向角、俯仰角)、比例尺的實時顯示以及指北針等功能??臻g量測主要包括距離、面積的不間斷量測以及量測結果的清除??臻g查詢主要包括監(jiān)測邊坡、探頭、聲源的屬性查詢。圖層管理主要包括天地圖影像、天地圖地名、探頭、聲源等圖層的管理。湖北省秭歸縣郭家壩鎮(zhèn)邊坡、江西省新余市某礦山邊坡的三維場景構建以及空間量測、空間查詢功能見圖2。
圖2 三維場景可視化結果
監(jiān)測數據管理主要包括業(yè)務數據和支撐數據表格的查詢、編輯、排序、篩選、導出和打印等功能以及信號波形數據的可視化,可分為聲發(fā)射源、探頭、波形數據、參數設置、狀態(tài)/環(huán)境5類。聲發(fā)射信號波形數據可視化見圖3,支持數據視圖、圖片保存、柱狀圖/折線圖切換。
圖3 聲發(fā)射信號波形數據可視化
在線統(tǒng)計分析主要對探頭、聲發(fā)射源等監(jiān)測對象的分布和狀態(tài)信息進行統(tǒng)計匯總、關聯(lián)分析,以柱狀圖和餅圖的形式展現(xiàn),便于用戶了解相關情況。統(tǒng)計圖表基于Ajax 請求的統(tǒng)計數據和ECharts[10]插件實現(xiàn)(圖4)。探頭和聲源的分布主要統(tǒng)計各監(jiān)測場地的數量;探頭狀態(tài)主要統(tǒng)計各監(jiān)測場地正常運行、待維修、維修中、未啟用的探頭數目;聲源預警主要統(tǒng)計各監(jiān)測場地紅色預警、橙色預警、黃色預警、藍色預警的聲源數目。邊坡預警等級劃分根據GB50330-2013《建筑邊坡工程技術規(guī)范》和《三峽庫區(qū)高切坡監(jiān)測預警系統(tǒng)實施方案》等相關規(guī)程規(guī)范確定。
監(jiān)測預警預報主要是對探頭掃描監(jiān)測、聲發(fā)射源擴散進行模擬仿真,以及對一些關注的匯總參數和預警指標進行統(tǒng)計和時空分析,便于用戶及時獲取預警險情,包括實時指標預警、預報等級分析、探頭雷達圖和聲源擴散圖。實時指標預警主要負責實時監(jiān)測探頭、聲源、信號波形、用戶等總數以及紅色、橙色、黃色、藍色預警聲源數目。預報等級分析主要統(tǒng)計不同等級聲源的分布情況和隨時間的變化趨勢。探頭雷達圖主要根據傳感器的監(jiān)測范圍,在三維場景中進行貼地模擬、掃描仿真。聲源擴散圖主要根據聲源的擴散范圍和預警等級,在三維場景中進行貼地模擬、擴散仿真。圖5 中探頭雷達采用藍色掃描線,聲源擴散圖采用紅色波紋。
系統(tǒng)設置主要包括用戶數據、日志數據、數據字典的查詢、編輯、添加、刪除、導出和打印等功能。
針對邊坡聲發(fā)射監(jiān)測問題,采用B/S 開發(fā)架構,設計并實現(xiàn)了一套邊坡聲發(fā)射監(jiān)測系統(tǒng)。后端基于SpringBoot+MyBatis 統(tǒng)一封裝業(yè)務并發(fā)布RESTful 風格的API 接口,代碼易維護,數據共享便捷,擴展性強,兼容性好;前端基于Cesium+LayUI+ECharts 進行了界面設計和三維可視化仿真,數據表現(xiàn)形式豐富,用戶體驗直觀明了。該系統(tǒng)在多源多維異構數據的融合、發(fā)布與可視化,探頭雷達掃描和聲源波形擴散的動態(tài)效果仿真等方面進行了改進和完善,具有一定的實際應用價值和推廣前景,在功能的豐富程度和應用平臺(如智能手機)拓展方面有進一步完善的空間。