劉勝國,高景春
(河北省地震局,石家莊 050022)
EQIM(EarthQuakes Instant Messenger)系統(tǒng)設計的主要目的是實現(xiàn)我國區(qū)域測震臺網(wǎng)、國家測震臺網(wǎng)的速報信息共享交換,后來隨著形勢的發(fā)展,為滿足各種相關的需求,逐步擴充附加功能,衍化成了一個共享交換和服務發(fā)布系統(tǒng)。它以計算機網(wǎng)絡為載體,實現(xiàn)了遙測地震臺網(wǎng)產(chǎn)出的地震速報數(shù)據(jù)的快速傳遞、交換與共享發(fā)布。
EQIMProcess是EQIM 軟件包的核心組件之一,功能如下。
■實時接收速報消息;
■以CA、CD、CC身份轉(zhuǎn)發(fā)速報信息到EQIM服務器
■從數(shù)據(jù)庫讀入歷史記錄;
■速報參數(shù)顯示、排序;
■自動地震分組和震中分布圖顯示;
■人機交互地圖縮放和移動;
■人機交互數(shù)據(jù)合并定位;
■自動和人機交互打印速報卡以及震中分布圖(包括地形圖);
■選項配置;
■按經(jīng)緯度范圍和震級報警。
2.3版的EQIMProcess與以前版本的區(qū)別主要表現(xiàn)在地圖上,由以前軟件自己繪制地圖改為使用MapWinGIS控件繪制地圖。使地圖數(shù)據(jù)更加通用、地圖界面更加美觀、使用更加便捷。
EQIM 通過socket通信方式以XML 格式交換數(shù)據(jù),為保證數(shù)據(jù)信息的安全和準確,系統(tǒng)發(fā)送信息時必須進行用戶認證、數(shù)據(jù)傳輸、數(shù)據(jù)文件校驗、數(shù)據(jù)存儲、日志記錄等過程。EQIMProcess的數(shù)據(jù)交換主要涉及和EQIM 服務之間的數(shù)據(jù)交換,從服務器接收速報信息,以CA、CC或CD 身份轉(zhuǎn)發(fā)速報信息。
EQIMProcess通過NetSeis/IP協(xié)議和EQIM服務器進行通訊,通過連接端口建立連接,通過socket通訊方式實時接收速報信息(XML文本),按圖1中連線編號進行處理。
EQIMProcess從EQIM 服務器實時接收地震速報結果,對速報結果內(nèi)容[1]進行解析后顯示地震參數(shù)、發(fā)送臺網(wǎng)、速報類型和接收時間,顯示震中地圖。根據(jù)信息內(nèi)容中自動打印標志和打印配置決定是否自動打印輸出,在任何時候都可以進行人工手動打印。
EQIMProcess可以對相鄰臺網(wǎng)同一個地震速報數(shù)據(jù)進行合并后,調(diào)用外部定位程序?qū)喜⒑蟮恼鹣鄶?shù)據(jù)進行聯(lián)合定位。
EQIMProcess技術流程如圖2。
圖1 速報信息交換流程圖
圖2 EQIMProcess信息處理流程圖
通過CPrintDialog::GetPrinterDC()獲得打印設備上下文(即打印DC)。有了DC 我們就可以按照需要的格式進行打印輸出了。
具體打印流程見圖3
圖3 速報卡打印流程圖
速報轉(zhuǎn)發(fā)實際是代替了EQIMSender,以CA、CD 或CC身份將接收到的信息轉(zhuǎn)發(fā)到EQIM 服務器,其實現(xiàn)技術流程參見“圖1 速報信息交換流程圖”。
MapWinGIS是一個開源的GIS 項目,底層開發(fā)環(huán)境是VC.NET2003,代碼大約有15萬行,基于微軟的COM 思想編寫。就系統(tǒng)來講,MapWinGIS是一套類似于AO 的二次開發(fā)組件庫,其核心庫是一個名字為MapWinGIS 的ActiveX 控件,我們利用這個ActiveX 組件在EQIM 系統(tǒng)中顯示震中地圖、在圖層上標繪相關聯(lián)的速報地震、計算地圖比例尺和坐標、存取GIS數(shù)據(jù)等相關工作。
EQIMProcess使用MapWinGIS 控件、通過鏈表方式管理顯示圖層[2],程序啟動時建立圖層顯示鏈表、并將需要初始化的圖層增加到顯示鏈表中顯示。當有新的速報地震來臨時,EQIMProcess收到新的速報消息后,判斷當前圖層的邊界,從鏈表中刪除不在當前顯示區(qū)域邊界的圖層、并刪除震中點圖層,增加符合邊界區(qū)域內(nèi)的圖層和當前震中點圖層到顯示鏈表中顯示。
實現(xiàn)流程如圖4
圖4 震中地圖繪制流程圖
2.3.1 添加資源從ActiveX 控件添加MFC 類,控件選擇Map Control,生成EQIM 需要的類。
2.3.2 添加圖層
調(diào)用地圖控件的AddLayer方法添加圖層,實現(xiàn)代碼如下:
2.3.3 刪除圖層
調(diào)用地圖控件的RemoveLayer方法刪除圖層,實現(xiàn)代碼如下:
2.3.4 標注震中位置
將標注地震震中點作為一個單獨圖層,加入到圖層列表中,實現(xiàn)代碼如下:
2.3.5 標注地名信息
調(diào)用地圖控件的AddLable方法標注地名,實現(xiàn)代碼如下:
上述代碼中,name表示地名,color表示顏色,x、y表示標注位置,hjCenter表示居中顯示。
EQIMProcess支持shp格式的矢量地圖數(shù)據(jù),由于shp格式是ESRI提供的通用地圖文件格式,用戶可以利用ArcGIS等軟件進行編輯和修改,使之符合自己的需求,也可以用自己的地圖文件替換系統(tǒng)提供的地圖文件。
除了shp矢量地圖格式以外,軟件還支持dem、bil、jpg、bmp、png等柵格格式地圖數(shù)據(jù)文件。
EQIMProcess提供了相對精確的地形圖數(shù)據(jù),使震中分布圖看上去更加直觀、地圖信息更加豐富。其中地形圖數(shù)據(jù)來源于USGS 網(wǎng)站。用戶可以根據(jù)軟件設定格式自行改變地圖文件。
EQIM 系統(tǒng)是中國地震局監(jiān)測預報司資助的研制項目,在中國地震臺網(wǎng)中心、中國地震局值班室、全國31個省級測震臺網(wǎng)中心以及部分地市級地震機構進行了部署[3],EQIMProcess作為EQIM 系統(tǒng)核心組件之一多年以來,運行穩(wěn)定可靠,經(jīng)歷了多次大地震的考驗[4],經(jīng)歷了多次版本的更新、完善和擴充。本文在2.3版的基礎上,對EQIMProcess的實現(xiàn)原理與實現(xiàn)方法進行了分析介紹,希望對軟件使用和其它相關工作提供借鑒和幫助。
[1] 劉勝國,高景春,陳智勇.基于ActiveMQ 平臺的地震消息服務探討[J].華北地震科學,2012,30(02):39-42.
[2] 馮錄剛,高景春,劉勝國,等.地震應急快速觸發(fā)響應系統(tǒng)的參數(shù)配置與用戶分組管理[J].華北地震科學,2010,28(2):53-57.
[3] 董星宏,賈寧.面向市縣級網(wǎng)站發(fā)布地震信息方式探討[J].華北地震科學,2011,29(1):49-52.
[4] 李冬圣,毛國良,常亮,等.華北區(qū)域數(shù)字地震臺網(wǎng)實時速報系統(tǒng)在河北省地震臺網(wǎng)的運行分析[J].華北地震科學,2011,29(1):40-44.