呂 帥 楊周勝 姚 遠
(云南省地震局,云南昆明 650224)
地震預警指的是在地震發生后,基于儀器記錄盡可能利用先期信息較精確估計地震發生地點和大小,在破壞性地震波到達前預測特定目標地區地震動場和破壞性地震波到達時間,并決定是否發布預警信息[1-2]。美國、日本、墨西哥和意大利等國早在20世紀60年代就開展了地震預警系統的研究。對于地震預警來說,從地震臺站觸發到預警信息發布分秒必爭,因此,計算地震三要素,完成預警信息發布的地震預警軟件顯得尤為關鍵。PRESTo作為一款地震預警處理軟件,擁有高效快捷、人機交互方便、拓展性強等優點。本文將從PRESTo系統的基本情況、系統功能、基于云南測震臺網的本地化配置部署和基于云南地震數據的測試4個方面對其進行介紹,最后對軟件特點進行總結歸納。
PRESTo是意大利RISSC-Lab研究人員設計和開發的一款輕量級開源免費的地震預警系統,集成了數據接入、P波檢測、地震定位、震級估算及峰值加速度計算等模塊,提供圖形化的地震預警可視化展示及告警信息發布功能。軟件使用C++編寫,可以在Windows、Linux和Mac上運行,具有良好的移植性[3]。系統從2009年起在意大利ISNet(Irpinia Seismic Network)[4]、韓國地球科學和礦產資源研究所(KIGAM network)[5]、羅馬尼亞國家地球物理研究與發展研究所(RoNet-Romanian Seismic Network)[6]和土耳其Kandilli天文臺和地震研究所(KOERI network)進行了測試及應用,取得了良好效果[7]。
PRESTo軟件可通過訪問http://www.prestoews.org/register.php進行下載,按操作系統類型選擇Windows、Linux或Mac版本可執行程序,也可下載C++源碼自行編譯。軟件下載完成后,解壓至本機根目錄(例如D:PRESTo)下。軟件自帶ISNet臺網所記錄的2010年7月13日 03:36:18(UTC)San GiorgioML3.7地震實例(圖1),通過下述命令可進行演示。

系統主界面頭部顯示當前時間及當前臺網名。系統中部左側展示接入臺站的垂直分量地震波形數據,在檢測到地震發生時標注系統所拾取到的P波和S波到時。系統中部右側從上至下依次展示本區域地震臺站分布,地震震中及震級大小,地震發生時動畫模擬地震波傳播。系統底部顯示地震發生后的震中經緯度、深度、發震時刻和震級大小。
PRESTo按處理的時間順序可分為數據獲取、事件檢測、地震定位、震級估算、地面運動峰值估算以及數據產出和告警6個部分。系統主線程負責事件檢測和數據處理,子線程負責波形數據采集[8]。圖2展示了系統的整個處理流程。

圖 1 PRESTo系統主界面Fig. 1 The main interface of PRESTo

圖 2 PRESTo系統流程圖Fig. 2 System data flow of PRESTo
PRESTo數據接入分非實時和實時兩種模式。非實時模式用于歷史地震的模擬和本地臺網參數配置,使用的地震數據格式為SAC格式,將數據按臺網命名存放在PRESTo安裝目錄data文件夾下即可。實時模式用于地震的實時監測預警,接入的數據為SeedLink協議實時數據流。當執行實時模式命令時,系統會向目標SeedLink服務器發起請求并接收臺網臺站實時數據。SeedLink協議是德國SeisComP3系統開發的一套基于Socket實現的TCP/IP通信協議,用來處理地震數據的實時傳輸和發布,傳輸的數據內容為 Mini-SEED格式數據,默認端口號為 18000。Seed-Link協議現已成為美國地震學聯合研究會(Incorporated Research Institutions for Seismology,IRIS)地震數據中心、歐洲地震觀測站和研究設施中心(Observatories and Research Facilities for European Seismology,ORFEUS)以及德國波茨坦地學研究中心[9]等虛擬臺網提供數據的通用協議。大部分地震監測處理軟件如SeisComP系統、Earthworm系統等均支持SeedLink協議[10]。
數據處理分4步: ① 震相拾取。PRESTo系統采用Lomax的FilterPicker算法[11]實現P波震相拾取,該算法可在實時連續的寬頻道信號上穩定運行,避免在大型地震事件上過度拾取。檢測到P波震相后,事件檢測模塊會計算所拾取的P波震相是否為地震事件,如果判斷不是天然地震事件,則系統繼續進行震相拾取;如果確認為新的地震事件,則進入第2步。② 地震定位。定位模塊將通過已觸發臺站和未觸發臺站實時數據,利用RTLoc方法[12],基于等微分時間公式(EDT)的概率密度方法對地震事件進行定位。整個計算過程系統會重復校正,當越來越多的臺站觸發后,震源位置將收斂到一個準確的位置。 ③ 震級計算。通過峰值地面位移(PGD)、dpeak和震中距R來估算震級[13]。 ④ 傳播時間、峰值速度和峰值加速度計算。系統根據衰減規律計算地震波到達目標位置的傳播時間,并且計算目標位置的峰值速度和峰值加速度。最終將計算結果交給告警模塊進行發布。
地震發生后,PRESTo系統會在主界面右側靜態地圖上標出震中位置、發震時刻和震級大小,并將P波和S波的傳播按照不同顏色等圓擴散的方式進行展示并告警。同時,地圖上的目標城市將顯示預估的破壞性地震波到達時間。根據用戶配置,系統會自動向目標服務器或目標郵件系統發出告警信息。
以上流程可以實現完整的地震預警功能。根據系統日志顯示,ISNet從地震發生后首臺觸發到第一報報出時間間隔約為2 s。隨著從不同臺站獲取的震相的增加,震中位置及震級也逐漸修正。
PRESTo軟件在本地臺網正常運行需要經過配置系統參數、生成走時文件和配置臺網參數3個步驟。配置系統參數用于對整個軟件運行的窗口大小、聲音、界面、告警方式和計算公式進行配置;生成走時文件是實現計算本地區地震三要素和地震波傳播的關鍵;配置臺網參數是對本地臺網、臺站、數據流以及預警目標城市的配置。下面以云南測震臺網本地化配置為例,詳細介紹參數配置過程。
PRESTo系統配置文件以二進制和文本文件的方式存放于config和data/ “臺網” 目錄下,其中config目錄用于存放系統運行的窗口大小、音效、Picker、Binder、Locate、Magnitude等各模塊的運行參數,data目錄則用于存放臺網臺站等相關參數數據。表1為本地化測試配置文件。

表 1 PRESTo系統主要配置文件Table 1 The main configuration file of PRESTo
無論是非實時模式還是實時模式,均需錄入臺站和目標位置的3D走時文件。走時文件存儲于data/“臺網” /time目錄下,每個臺站或目標位置均需生成一個相應的hdr和buf格式二進制文件,該文件可通過NonLinLoc軟件(http://alomax.free.fr/nlloc)生成。NonLinLoc軟件是一款由Anthony Lomax編寫,用于三維介質中基于概率的非線性全局地震定位軟件,使用系統的網格搜索或者Metropolis-Gibbs隨機采樣方法生成一個關于震源空間位置(x,y,z)的 “欠擬合” 方程、 “優化” 震源位置和后驗概率密度方程(PDF)[14]。軟件Vel2Grid模塊將輸入的一維速度模型生成一個3D網格速度文件,Grid2Time模塊再通過該3D網格速度文件,生成三維網格走時文件。軟件運行在Linux上,云南地區走時文件生成通過以下步驟完成:
(1)復制data/ISNet/run目錄下ISNet.run、Vel2Grid_P.in、Vel2Grid_S.in、Grid2Time_P.in和Grid2Time_S.in 5個文件至裝有NonLinLoc的Linux系統上;
(2)在ISNet.run、Vel2Grid_P.in和Vel2Grid_S.in文件中寫入云南地區經緯度,并與背景地圖map.png的位置對應;
(3)將云南地區不同深度對應的P波和S波速度模型寫入Vel2Grid_P.in和Vel2Grid_S.in文件中VGGRID位置;
(4)在Grid2Time_P.in、Grid2Time_S.in文件中寫入云南臺網臺站和預警城市的名稱、經緯度和高程數據;
(5)運行NonLinLoc軟件的Vel2Grid和Grid2Time模塊,生成云南地區走時文件。
將生成的走時文件拷貝至PRESTo的data/YNNet/time目錄下。將rtloc.txt、seedlink.txt、targets.txt等文件中臺站及臺網名替換為云南臺網和臺站,將stations.txt文件中臺站對應的儀器響應參數添加至文件中,如需接入實時模式,在stations.txt文件中配置Seed-Link服務器的IP地址和端口。值得注意的是,config目錄下params.txt文件中配置了用于計算地震三要素的Picker、Binder、Locate、Magnitude等模塊的詳細參數,需根據臺網的規模、臺站間距、儀器類型等修改相應的模塊參數(如picker_filterWindow,binder_stations_for_coincidence等)。
基于以上步驟,完成了PRESTo系統在云南地區的本地化安裝和配置。通過PRESTo YNNet命令啟動實時模式,PRESTo YNNet example命令啟動非實時模式。如系統正常運行,將顯示圖1或圖3界面。

圖 3 2016年5月18日0時48分云南云龍M5.0地震事件波形在PRESTo上的模擬Fig. 3 The simulations of Yunnan Yunlong M5.0 earthquake on PRESTo
以2016年5月18日00:48:48(UTC+8)云南省大理州云龍縣5.0級地震為例,將云南48個固定測震臺站(寬頻帶地震儀)記錄的SEED數據轉化為SAC格式數據并存放在PRESTo系統data/example目錄下,將相應配置文件參數進行修改,啟動系統非實時模式,PRESTo能正常識別出該地震。
作為一款地震預警軟件,PRESTo按照地震數據處理流程,將FilterPicker、RTLoc、RTMag和PDZ等一系列算法集成在一起,通過提前計算好各地區走時數據,能快速計算出地震三要素,實現了簡潔快速而高效的地震預警功能,及時發布告警信息和破壞性地震波傳播預警。系統具有以下特點:
(1)開源免費。PRESTo系統遵循GPLv2(GNU General Public License,version2)協議,系統及源代碼開源免費。
(2)輕量級。整個編譯后的PRESTo系統(不含模擬數據)約20 MB左右,支持Windows、Linux和Mac跨平臺運行,無需安裝其他中間件。
(3)全自動。系統正確配置、正常啟動后,地震震相拾取、事件綁定、震中位置、震級計算和告警等均自動進行,無需人工干預,降低了人工參與的時效性損失。
(4)快速高效。系統采用的震相拾取和地震定位方法高效可靠,地震臺站間距越小,結果產出時間越短,即使使用較少的地震震相,定位結果依然可靠。
PRESTo系統由于安裝配置簡單,數據處理過程高效且自動,無需人工干預即可快速實現地震事件的檢測、定位、震級估算和告警。用戶交互體驗良好,能直觀展示地震波的傳播過程,適合在局部地區多節點部署。各地區通過接入本地臺站實時數據,可快速較方便地實現本地區初步預警能力在小型區域臺網內的應用。對于國內省級預警中心來說,可以采用集中計算發布和州市地區分布計算相結合的方式進行預警系統部署,一方面能為震區提供快速地震預警,另一方面可精確計算出地震三要素。
雖然PRESTo有諸多優點,但我國幅員遼闊,各省份地質構造和監測能力差別較大,為滿足國內的推廣和使用,PRESTo依然存在許多可以改進的地方。如: ① 國內省級速報預警臺網數據傳輸多基于JOPENS系統的NetseisIP協議和Http協議,而PRESTo實時模式僅支持SeedLink協議,為滿足實時預警需求,需編寫程序實現NetseisIP協議或Http協議向SeedLink協議的轉換; ② PRESTo系統能載入內存的數據量有限,隨著臺站規模和精度的增加,現有系統將難以承載,為適應大面積密集觀測臺站數據處理需對PRESTo系統進行優化; ③ 由于PRESTo在預警結果發布方面較為單一,可對PRESTo系統在預警發布環節進行改進。值得注意的是,PRESTo的開發團隊近期將對PRESTo進行改進,推出一款命名為QuakeUP的地震預警軟件,新軟件依據震中地區地面峰值運動數據實現實時烈度圖,為用戶提供更強大更實用的預警功能。
除PRESTo外,其他開源國際知名速報預警軟件還有德國SeisComP3和美國Earthworm等。作者及團隊將繼續完成SeisComP3和Earthworm軟件的研究,在云南地區實現軟件的本地化部署,并對幾種軟件優缺點進行對比。同時,繼續完成數據傳輸協議轉換等相關工作。