劉方斌,曲均浩,苗慶杰,周少輝
(山東省地震局,山東 濟(jì)南 250102)
地震速報(bào)是地震監(jiān)測(cè)預(yù)報(bào)中最為基礎(chǔ)的一項(xiàng)工作,同時(shí)也是非常重要的環(huán)節(jié)之一[1]。地震速報(bào)要求速報(bào)人員能夠在第一時(shí)間準(zhǔn)確的確定地震發(fā)震時(shí)刻、震中位置及震級(jí)等相關(guān)信息。準(zhǔn)確收集地震信息不僅可以為后續(xù)開展地震監(jiān)測(cè)工作提供基礎(chǔ)數(shù)據(jù),還可為政府、社會(huì)的震后救災(zāi)、應(yīng)急救援提供有效決策[2]。目前各省測(cè)震臺(tái)網(wǎng)主要承擔(dān)著本省的地震速報(bào)、編目、月報(bào)產(chǎn)出、臺(tái)網(wǎng)軟硬件的維護(hù)以及包括日、月頻次的地震短信的發(fā)送等任務(wù),日常工作繁雜、技術(shù)人員少;另外,地震速報(bào)目錄僅能從EQIM[3]平臺(tái)瀏覽,不能下載,信息分享不便。針對(duì)上述問題,本文利用Java開發(fā)技術(shù)結(jié)合數(shù)據(jù)庫(kù)以及World Wind設(shè)計(jì)實(shí)現(xiàn)了一款符合測(cè)震工作的地震速報(bào)信息共享系統(tǒng)。
Java是目前使用人數(shù)最多、范圍最廣的軟件開發(fā)技術(shù)之一,具有簡(jiǎn)潔、精干、面向?qū)ο?、多線程、面向網(wǎng)絡(luò)、安全、自律、跨平臺(tái)等諸多特點(diǎn)[4]。本研究基于Java語(yǔ)言編程優(yōu)點(diǎn),設(shè)計(jì)實(shí)現(xiàn)了系統(tǒng)各個(gè)功能模塊界面,其應(yīng)用程序在異構(gòu)環(huán)境之間可用,顯著降低了開發(fā)成本[5]。
根據(jù)工作要求,設(shè)計(jì)了一款C/S模式[6]的地震速報(bào)信息服務(wù)系統(tǒng)。它可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì),將任務(wù)合理分配到客戶端和服務(wù)器端進(jìn)行實(shí)現(xiàn),充分發(fā)揮客戶端的處理能力和響應(yīng)速度。
如圖1所示,服務(wù)器端通過網(wǎng)絡(luò)通信與省臺(tái)網(wǎng)中心建立數(shù)據(jù)連接,調(diào)用MySQL數(shù)據(jù)庫(kù)[7],并將數(shù)據(jù)庫(kù)數(shù)據(jù)通過SyncNavigator軟件同步到本地服務(wù)器上,這樣可以避免過多用戶訪問源數(shù)據(jù)庫(kù)所導(dǎo)致得數(shù)據(jù)庫(kù)異常??蛻舳烁鶕?jù)功能分類劃分為實(shí)時(shí)目錄、目錄查詢、月報(bào)產(chǎn)出、最新地震以及其他等5大模塊,具體功能如下:
圖1 地震速報(bào)信息共享系統(tǒng)構(gòu)架圖
(1)系統(tǒng)登錄模塊。用于校驗(yàn)用戶信息,當(dāng)用戶名和密碼正確時(shí),成功登陸主系統(tǒng);
(2)實(shí)時(shí)目錄模塊。主要用于實(shí)時(shí)展示地震目錄、檢查地震速報(bào)結(jié)果的準(zhǔn)確性;
(3)目錄查詢模塊。對(duì)歷史地震按照搜索時(shí)間、經(jīng)緯度、震級(jí)大小、事件類型、震中位置以及目錄類型等信息進(jìn)行查詢、打印和導(dǎo)出;。
(4)月報(bào)產(chǎn)出模塊。對(duì)某月地震事件進(jìn)行分析,獲取月報(bào)信息并通過Word文檔的形式導(dǎo)出;
(5)最新地震模塊。主要獲取最新地震信息(發(fā)震時(shí)刻、震中位置及震級(jí)大小),并以警報(bào)的形式提醒值班人員;
(6)其他模塊。主要提供了大震速報(bào)流程、震級(jí)轉(zhuǎn)換表等方面的內(nèi)容。
一個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)的好壞將直接影響著整個(gè)系統(tǒng)的運(yùn)行效果,合理搭建數(shù)據(jù)庫(kù)將會(huì)大大提高數(shù)據(jù)的儲(chǔ)存速度[8]。本系統(tǒng)將JOPENS5.2[9]中MySQL的Catalog表同步備份到本系統(tǒng)服務(wù)器中,然后調(diào)用本系統(tǒng)數(shù)據(jù)庫(kù)信息。Catalog表中存在多個(gè)字段,根據(jù)系統(tǒng)需求選取所需的字段和屬性來構(gòu)建地震事件信息表,如表1所示。
表1 地震事件信息表
系統(tǒng)GUI界面是基于Java的Swing組件設(shè)計(jì)的,該組件是Java中重要的窗口工具組,可在程序運(yùn)行時(shí)指定組建的外觀風(fēng)格[10-11]。
當(dāng)用戶進(jìn)入地震速報(bào)信息服務(wù)系統(tǒng)程序時(shí),首先彈出登陸對(duì)話框,其中用戶名和密碼需要在配置文件中配置,輸入用戶名和密碼點(diǎn)擊登錄就可以打開該系統(tǒng),進(jìn)入主界面。登錄界面如圖2所示。
圖2 登錄界面
根據(jù)用戶需求及功能模塊設(shè)計(jì)編寫用戶主界面窗口。主界面主要基于JTabbedPane[12]組件進(jìn)行總體設(shè)計(jì),將系統(tǒng)5大功能模塊加入其中,各模塊間可以通過快捷鍵進(jìn)行切換。
實(shí)時(shí)目錄模塊窗口主要用于展示地震目錄和檢查地震速報(bào)結(jié)果的準(zhǔn)確性,窗口如圖3所示。本模塊主要通過讀取并將數(shù)據(jù)庫(kù)中的Catalog表數(shù)據(jù)添加到JTable里,然后通過線程[13]方式刷新數(shù)據(jù)庫(kù)以獲取最新地震,從而提高CPU利用率,加快運(yùn)行速度。
圖3 實(shí)時(shí)目錄模塊
目錄查詢模塊窗口如圖4所示,該模塊使用JSplitPane分割面板將界面分為左右兩部分,左側(cè)主要顯示相關(guān)參數(shù)的配置,右側(cè)以JTable的形式顯示符合條件查詢結(jié)果。實(shí)際操作時(shí),先對(duì)左側(cè)參數(shù)進(jìn)行配置,然后點(diǎn)擊查詢按鈕即可在右側(cè)顯示查詢結(jié)果。由于參數(shù)配置中存在多種條件,而通常情況下并不需要對(duì)每種條件都要滿足,僅按照某些條件進(jìn)行設(shè)置即可,因此通過if語(yǔ)句進(jìn)行實(shí)現(xiàn),根據(jù)條件要求進(jìn)行判斷,搜索用戶所需數(shù)據(jù)。另外,搜索結(jié)果會(huì)以Excel的形式導(dǎo)出,導(dǎo)出的數(shù)據(jù)格式與其他畫圖軟件兼容,可直接用于圖件繪制,避免二次輸入的麻煩,點(diǎn)擊打印按鈕則可以打印相應(yīng)結(jié)果。
圖4 目錄查詢模塊
月報(bào)產(chǎn)出模塊窗口如圖5所示,該模塊替代了以往以傳統(tǒng)人工統(tǒng)計(jì)及繪圖方式編制的月報(bào)。該模塊通過調(diào)用數(shù)據(jù)庫(kù)獲取某月某地發(fā)生的地震事件個(gè)數(shù)、事件的類型(天然地震、爆破、塌陷等),并分析當(dāng)月各地震類型所占的百分比以及日頻次,以便用于月會(huì)商及月短信服務(wù)中,有效提高了工作效率。另外,還可將所獲信息按照預(yù)先制定好的模板以Word文檔的形式導(dǎo)出到本地,以供官方發(fā)布使用。
圖5 月報(bào)產(chǎn)出模塊
如圖6所示為最新地震模塊窗口,該模塊基于World Wind Java技術(shù)實(shí)現(xiàn)[14],界面共分為內(nèi)容顯示區(qū)、測(cè)量工具區(qū)、圖層控制區(qū)以及地圖展示區(qū)4部分。讀取最新地震數(shù)據(jù)后將其顯示在內(nèi)容顯示區(qū)的文本框內(nèi),當(dāng)震級(jí)達(dá)到設(shè)定下限時(shí),報(bào)警按鈕啟動(dòng),以提醒值班人員。另外3部分則是通過AWT組件中的World Window GL Canvas功能來顯示。AWT組件是獨(dú)立式的,能為應(yīng)用程序提供三維地球和圖層的渲染[15],包含了基礎(chǔ)圖像層(Basic Tiled Image Layer)、羅盤層(Compass Layer)、比例尺層(Scalebar Layer)、世界地圖層(Wor1d Map Layer)和測(cè)量工具層(Measure Layer)等,同時(shí)還可根據(jù)需求增加全國(guó)斷層、各省市行政區(qū)劃等shp文件圖層[16]等。測(cè)量工具層主要負(fù)責(zé)獲取測(cè)量點(diǎn)之間的距離、高程剖面等。
圖6 最新地震模塊
其他模塊窗口如圖7所示,主要提供大震速報(bào)流程、震級(jí)轉(zhuǎn)換表等方面的內(nèi)容。
圖7 其他模塊
本文詳細(xì)的分析了基于Java的地震速報(bào)信息服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),并對(duì)軟件數(shù)據(jù)庫(kù)及各功能模塊的界面設(shè)計(jì)做了詳盡的闡述。該軟件自投入使用以來運(yùn)行穩(wěn)定,地震速報(bào)信息讀取準(zhǔn)確及時(shí),共下載數(shù)據(jù)數(shù)百次、生成月報(bào)7次、報(bào)警多次,能夠及時(shí)提醒值班人員并快速獲取相關(guān)地震信息,提高了工作效率,減少了工作壓力。該軟件具有操作簡(jiǎn)單、管理維護(hù)方便等優(yōu)點(diǎn),通過數(shù)據(jù)共享打破了各部門間的信息閉塞,有利于信息交流和防震減災(zāi)事業(yè)的發(fā)展。