本站小編為你精心準備了云計算的強震預警軟件開發參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

摘要
依托專業地震監測臺網,采用云技術環境,利用Java開發平臺,開展地震早期預警軟件系統集成關鍵技術研究,研制一套具有自主知識產權的地震早期預警軟件系統,并在中國地震重點監視防御區和試驗場開展系統試驗,建立信息平臺,實現預警參數和地理信息的近實時動態。該軟件在地震事件觸發準確率、誤觸發判斷及信息速度等方面具有一定創新,從而提高地震預警信息的時效性和準確性。
關鍵詞
強震預警;云計算;多線程技術;功能模塊
地震預警(EarthquakeEarlyWarning,EEW)技術作為震災預防的新手段,已經在多個地震多發國家和地區引起重視并得到應用(趙紀東等,2009)。地震預警系統的基本硬件組成(袁志祥等,2007)為:地震監測系統(數字化實時強震儀)→通信系統(電話線、無線撥號上網、中繼站)→控制中心(計算機和專業軟件)→警報系統(手機、電子媒體、政府)。整套地震預警系統的特點應該是高度集成、實時監控、飛速響應,尤其是飛速響應至關重要。地震預警作為一種以秒計的“超級地震速報”,每1s均是決定地震預警成敗的關鍵。地震預警信息的過程涉及數據傳輸、處理、信息確認等環節,每個環節均會消耗一定時間(殷海濤等,2012;張晁軍等,2013;張紅才,2013)。由于地震動參數獲取的速度和精度直接影響到地震預警系統運行的效率和準確度,因此數據傳輸處理系統也是需要重點保障和維護的子系統。本文基于云計算技術開發強震預警軟件,并在示范區開展系統試驗,建立信息平臺,實現預警參數和地理信息的近實時動態。在地震事件觸發準確率、誤觸發判斷以及信息速度等方面有一定創新,從而進一步提高預警信息的時效性和準確性。
1總體構架
本文所涉及的強震預警軟件系統由參數管理、數據匯集服務、事件觸發判斷、自動震相拾取、自動定位、震級估算、烈度估算、Web信息等模塊組成。系統集成后分為用戶層、應用層、數據層。搭建環境采用云技術,利用Java平臺開發編制各功能模塊及集成模塊,程序編制注重系統運行的快速、自動處理和實用化功能,盡量實現智能化,減少人機操作,提高產出速度。圖1為強震預警軟件系統構架示意圖。其中,數據層主要是數據獲取,從設備或離線數據文件中獲取數據,通過TCPSOCKET提供后續模塊使用。臺網基礎信息可通過TCPSOCKET,從數據服務模塊獲取。應用層主要是系統業務功能模塊,包括誤觸發判斷、事件觸發判斷、震相拾取、事件定位、震級估算、烈度估算等功能模塊。在應用層中采用多線程技術和分布式計算技術,以共享數據區動態震相數據為耦合點,提高系統運行效率,縮短計算時間,充分利用CPU資源。用戶層主要包括面向專業用戶的參數管理模塊和面向公眾用戶的預警信息模塊。預警信息模塊通過WebService服務與后臺模塊進行數據交換。
1.1分布式云計算環境搭建物理機網絡拓撲中云環境搭建采用5臺高性能服務器,通過2個網口分別連接2臺千兆交換機。5臺服務器中的1臺做控制節點,其他4臺做計算節點兼存儲節點。2臺交換機中1臺與行業網相連,用于外部通訊,另1臺進行私有云內部通訊;臺式機作為監控用機。圖2為物理機網絡拓撲圖。OpenStack是一個開源的云計算管理平臺項目,以Apache許可證授權,由美國國家航空航天局和Rackspace合作研發,該項目由幾個主要組件組合完成某些具體工作。UbuntuLinux是OpenStack的主要操作系統,本軟件采用最新的64位版本UbuntuServer安裝、配置OpenStack,搭建私有云環境。
1.2多線程技術應用線程是程序運行的基本執行單元。操作系統(不包括單線程操作系統)執行程序時,在系統中建立一個進程,且必須至少建立一個線程(此線程稱為主線程)作為該程序運行的入口點。合理的使用線程,可充分利用CPU資源,簡化編程模型及異步事件的處理,減少開發和維護成本,使GUI更有效率,改善應用程序性能。Java是純面向對象語言,通過Thread類將線程必須的功能封裝起來。有3種方法可以實現多線程:①繼承Thread類實現多線程;②以Runnable接口方式實現多線程;③使用ExecutorService、Callable、Future,實現有返回結果的多線程。
2功能模塊接口封裝
2.1數據匯集服務數據匯集服務分為3部分:①實時數據匯集服務程序,提供測震、強震與GPS波形數據;②離線數據服務程序,將數據文件轉換為模擬實時數據流,模擬實際臺網觀測環境;③客戶端讀取接口程序,以TCPSOCKET方式從數據匯集服務器獲取臺站的信息和數據,采用Java語言開發,方便與系統集成。數據匯集服務在運行前需進行臺網參數、速度結構模型等配置,服務框架見圖3。客戶端接口模塊采用雙數據緩沖方式,兩個緩沖區的作用分別是:①存儲從流服務接收到的數據,緩沖區中各通道循環隊列長度為10s;②為事件觸發檢測模塊提供數據,循環隊列長度為事件觸發檢測模塊數據分析總長度。程序創建單獨線程,每間隔20ms對1號緩沖區進行檢查,有新數據時將新數據追加到2號緩沖區,然后啟動事件觸發檢測模塊。采用雙緩沖區的優點是,在事件觸發檢測模塊占用緩沖區進行計算時,不影響數據接收。
2.2地震波形實時顯示基于Web頁面的地震波形實時顯示模塊,在瀏覽器中使用HighChartJS組件,顯示地震實時波形,后臺應用服務器通過Servlet從波形服務器獲取實時波形數據,利用Ajax技術,將波形數據傳遞到前臺展示。波形顯示界面提供波形顯示時間長度控制、通道控制、縱軸放大等功能。波形顯示時間長度分為30s、60s和120s等3種模式,可通過下拉菜單選擇控制。波形顯示長度為120s時,因需要緩存的數據包較多,需要工作站具有較高性能。通道控制菜單可以單獨控制垂直、東西、南北3個通道的顯示情況,未選中則相應通道圖形不顯示。圖4為基于Web的波形實時顯示框架。
2.3地震事件觸發檢測震相分析是波形數據中提取數據的主要手段,快速確定地震參數是地震預警系統的關鍵技術環節之一,關系到預警時間的長短。地震事件觸發檢測模塊的功能是,從實時數據流中計算提取臺站震相信息,包括P波、S波的觸發時間、位移幅度、卓越周期。提取時間的時效性關乎全局預警時間,因此本模塊采用Java多線程和分布式計算技術,以縮短每次計算時間。模塊采用全局動態數組存放提取的震相信息,作為與其他模塊交互的接口,減少與其他模塊的耦合,提高程序的靈活性。地震事件觸發檢測模塊主要有管理線程和識別計算線程2部分。管理線程負責初始化相關參數、輪詢臺站數據和創建啟動計算線程;識別計算線程負責將波形數據進行分布式計算分析,將最終震相結果返回管理線程。圖5為地震事件觸發檢測管理線程流程。
2.4誤觸發判斷模塊誤觸發判斷采用2種方法:①基于V圖和走時,找出其中不合理的臺站;②根據臺站與周邊臺站的距離、波速及周邊臺站的觸發情況,判斷該臺是否為誤觸發。對于1組觸發臺站,根據Delaunay三角網空間分布,對相鄰臺站進行分組,每組臺站中,根據兩兩走時差判定此臺站是否滿足走時原理,從而為臺站誤觸發檢測提供依據。程序流程見圖6。對于動態觸發的1組臺站,根據臺站間距和P波波速計算周邊臺站的傳播時間,如果傳播時間與臺站觸發后的時間差超出預設值,則認為臺站是誤觸發,判斷流程見圖7。具體判斷檢測流程如下:從動態震相數組中獲取震相信息進行V圖分組;對組內震相做走時檢驗,刪除不符合走時的震相;對組內震相做Pd、τc檢驗,未通過檢驗則刪除該組震相;如果組內有一個或兩個臺站,計算每個臺站距周邊臺站的最大距離內P波走時T1,并計算P波觸發時間到目前的時間差T2;如果T2>T1,則刪除該組震相,否則進行定位、震級計算、烈度計算、信息等操作;如果組內有3個以上臺站,確認為地震事件,從震相數組中清除其他組的震相后,進行定位、震級計算、烈度計算、信息等操作。
3系統離線測試
選取山東省內7個震例(2≤M<5)、國內17個震例(4≤M≤8.2)、日本陸地6個震例(5.9≤M≤7.0),共計30個震例用于強震預警系統離線測試,其中國內震例中有2個震例前3個觸發臺站既有測震臺又有強震臺。測試結果表明,強震預警軟件可在地震監測能力一定條件下,最大程度地提高預警信息的時效性和準確性,中強地震(M≥5)觸發率為100%,隨著觸發臺站增多系統不斷對震中位置、震級及震中最大烈度進行修訂,預警信息通過信息平臺實時。同時發現,因建立震級計算關系式時缺少MS7.0以上地震數據樣本,導致較大地震(MS7.0以上)的震級測定偏差較大。
4結束語
搭建環境采用云技術,利用Java開發平臺,開展地震早期預警軟件系統集成關鍵技術研究,并在山東省示范區開展系統離線測試,建立信息平臺,實現預警參數和地理信息的近實時動態,以期在強震預警實踐中取得實效。
參考文獻
殷海濤,劉希強,李杰,等.現今地震預警技術及其在國內發展狀況的探討[J].中國地震,2012,28(1):1-9.
袁志祥,單修政,徐世芳,等.地震預警技術綜述[J].自然災害學報,2007,16(6):216-223.
趙紀東,張志強.地震預警系統的發展、應用及啟示[J].地質通報,2009,28(4):456-462.
張晁軍,李衛東,林捷,等.關于地震預警的幾個問題[J].中國地震,2013,29(2):198-209.
張紅才.地震預警系統關鍵技術研究[D].哈爾濱:中國地震局工程力學研究所,2013.
作者:趙銀剛 王晨 譚婧 劉慶杰 單位:安丘地震臺 中國地震局地球物理研究所 沈陽炮兵學院 防災科技學院