胡玉良 閆民正 程冬焱 龐云峰
(中國太原030021山西省地震局)
最近幾年山西省各市縣新增不少地震前兆儀器,有的市縣已經(jīng)建立小規(guī)模地震前兆臺網(wǎng),但產(chǎn)出數(shù)據(jù)僅限于本市縣使用。安裝儀器型號多樣,通訊協(xié)議不符合“十五”地震前兆觀測設(shè)備網(wǎng)絡(luò)通訊規(guī)程(中國地震局,2005),采用數(shù)據(jù)庫結(jié)構(gòu)各不相同,不符合中國地震前兆數(shù)據(jù)庫結(jié)構(gòu)規(guī)范(中國地震局,2013),從而導(dǎo)致相鄰市縣之間前兆數(shù)據(jù)無法實現(xiàn)共享。
為了最大化利用市縣前兆數(shù)據(jù),山西市縣地震前兆數(shù)據(jù)共享軟件在不更改現(xiàn)有前兆儀器的前提下,對臨汾市地震局和太原市地震局產(chǎn)出的觀測數(shù)據(jù),按照中國地震前兆數(shù)據(jù)庫結(jié)構(gòu)規(guī)范要求進(jìn)行標(biāo)準(zhǔn)化,然后匯集到山西省地震局,最終將數(shù)據(jù)提供給分析預(yù)報中心、市縣地震局使用,從而在山西省地震局建立市縣前兆觀測網(wǎng),可實現(xiàn)相同觀測手段的對比觀測、異常同步分析、異常排除、地域分布廣及覆蓋面積大等單個臺站無法比擬的效果。
由于各市縣地震前兆儀器大多為非標(biāo)準(zhǔn)化儀器,儀器種類繁多,產(chǎn)出數(shù)據(jù)格式不一。對數(shù)據(jù)進(jìn)行整合,首先要對市縣安裝的地震前兆儀器設(shè)備的種類、名稱、型號、廠家、傳輸方式、產(chǎn)出數(shù)據(jù)格式、運(yùn)行環(huán)境、工作狀態(tài)等內(nèi)容進(jìn)行調(diào)研;其次,如果市縣已建立前兆臺網(wǎng),需要詳細(xì)了解數(shù)據(jù)庫結(jié)構(gòu),在此基礎(chǔ)上篩選出適合進(jìn)行數(shù)據(jù)共享的前兆儀器。
通過對山西省各市縣現(xiàn)有地震前兆儀器進(jìn)行調(diào)研,臨汾市地震局、太原市地震局已建立小規(guī)模前兆臺網(wǎng),搭建了前兆數(shù)據(jù)庫,且均已接入中國地震行業(yè)內(nèi)網(wǎng)。
臨汾市地震局在洪洞、侯馬、霍州、曲沃、襄汾等地安裝了北京中科光大自動化技術(shù)有限公司生產(chǎn)的ZKGD2000型地下流體設(shè)備,儀器通過GPRS方式實時匯集到臨汾市地震局專用計算機(jī)。該計算機(jī)安裝了Access 2000數(shù)據(jù)庫,每天存儲一個數(shù)據(jù)庫文件,比如:文件名稱ac130325.mdb代表2013年3月25日存儲的儀器數(shù)據(jù),數(shù)據(jù)庫表結(jié)構(gòu):ParaName表示臺站+測項(比如:襄汾張禮觀測井水位,襄汾張禮觀測井水溫,襄汾張禮觀測井氣壓);ParaMemoTime表示運(yùn)行日期(格式:h∶mm∶ss);ParaValue表示數(shù)據(jù)。
太原市地震局在市區(qū)各個地方(比如:迎新街、古旦、小店等地)安裝了太原億振科技有限公司生產(chǎn)的水位儀,所有儀器通過GPRS方式實時匯集到太原市地震局專用計算機(jī)上,該計算上安裝了Microsoft SQL Server 2000數(shù)據(jù)庫,數(shù)據(jù)庫結(jié)構(gòu):dat表示運(yùn)行日期(格式:yymmddhhmm),a1表示水位數(shù)據(jù),單位是毫米;a2表示氣壓數(shù)據(jù),單位是帕;num表示井點編號(1表示迎新街井;2表示古旦井;3表示小店2井等)。
(1)基礎(chǔ)信息錄入。根據(jù)中國地震前兆數(shù)據(jù)庫結(jié)構(gòu)規(guī)范,將涉及的市縣地震臺站名稱、臺站代碼、臺站經(jīng)緯度錄入數(shù)據(jù)庫;將非標(biāo)準(zhǔn)的前兆儀器名稱、儀器型號及儀器代碼等信息錄入數(shù)據(jù)庫;對數(shù)據(jù)庫中沒有的測項分量名稱及代碼,在數(shù)據(jù)庫中進(jìn)行新增錄入,錄入市縣客戶端信息,客戶端軟件根據(jù)客戶端信息即可提取到相關(guān)臺站、儀器、測項信息及數(shù)據(jù)庫參數(shù)信息。
(2)數(shù)據(jù)采集。以臨汾市地震局為例進(jìn)行說明,臨汾市地震局分別在侯馬、霍州、曲沃、洪洞、襄汾等地安裝了中科光大流體設(shè)備,通過GPRS無線方式匯集到臨汾市地震局1臺計算機(jī),并存儲到access數(shù)據(jù)庫,客戶端軟件通過庫數(shù)據(jù)提取數(shù)據(jù),通過轉(zhuǎn)換寫入?yún)^(qū)域中心市縣前兆數(shù)據(jù)庫。
(3)采集日志記錄功能。軟件每進(jìn)行一次數(shù)據(jù)采集都需將采集結(jié)果保存到數(shù)據(jù)庫采集日志表。
(4)數(shù)據(jù)展示。實現(xiàn)任意時段數(shù)據(jù)曲線及采集日志的瀏覽。
2.2.1 硬件整體架構(gòu)。區(qū)域中心:1臺市縣前兆數(shù)據(jù)庫服務(wù)器,操作系統(tǒng)采用 Suse Linux 10 SP3,數(shù)據(jù)庫軟件采用Oracle 10g,用于市縣前兆數(shù)據(jù)存儲和共享。市縣:1臺Windows XP/7操作系統(tǒng)計算機(jī),用于實現(xiàn)對市縣非標(biāo)準(zhǔn)前兆儀器數(shù)據(jù)的轉(zhuǎn)換、入庫及備份。
2.2.2 軟件架構(gòu)。包含市縣數(shù)據(jù)匯聚客戶端和省地震局市縣數(shù)據(jù)庫兩部分,數(shù)據(jù)匯聚流程見圖1。
圖1 山西市縣前兆數(shù)據(jù)匯聚流程Fig. 1 Flowchart of precursor data gathering from counties in Shanxi
市縣前兆觀測數(shù)據(jù)共享平臺數(shù)據(jù)庫結(jié)構(gòu)嚴(yán)格依照中國地震前兆數(shù)據(jù)庫結(jié)構(gòu)規(guī)范進(jìn)行設(shè)計(周克昌等,2010),對已有數(shù)據(jù)庫結(jié)構(gòu)不做改動,在此基礎(chǔ)上,根據(jù)設(shè)計要求,新增3張表,分別是stationinstrument、clientinfo、collectionlog,創(chuàng)建2張視圖和一個觸發(fā)器。第1張表用于定義前兆儀器數(shù)據(jù)采集方式和采集使用的參數(shù),是對數(shù)據(jù)庫原表dict_stationinstruments的補(bǔ)充;第2張表是客戶端連接用戶管理表;第3張表是采集日志,記錄每個測項分量數(shù)據(jù)采集情況;視圖分別是STATIONINSTR_READONLY和STATIONINSTRITEM_READONLY,是為了方便查詢臺站儀器基礎(chǔ)信息和臺站儀器測項基礎(chǔ)信息表;創(chuàng)建觸發(fā)器TRIGGER INSTR_TRIGGER的目的是,在增加或者更新臺站儀器信息的同時,對表stationinstrument的臺站儀器信息進(jìn)行更新,避免反復(fù)操作,具體創(chuàng)建信息見圖2和圖3。
圖2 創(chuàng)建的數(shù)據(jù)庫表Fig.2 Created database tables
圖3 創(chuàng)建的數(shù)據(jù)庫視圖Fig 3 Created database views
觸發(fā)器創(chuàng)建過程如下
CREATE OR REPLACE TRIGGER INSTR_TRIGGER
AFTER DELETE OR INSERT OR UPDATE OF STATIONID,POINTID,SAMPLERATE,INSTRID ON QZ_DICT_STATIONINSTRUMENTS
FOR EACH ROW
BEGIN
IF INSERTING THEN --INSERT觸發(fā)
INSERT INTO STATIONINSTRUMENT(STATIONID,POINTID,INSTRID,SAMPLERATE)
VALUES(∶NEW.STATIONID,∶NEW.POINTID,∶NEW.INSTRID,∶NEW.SAMPLERATE); --插入儀器信息表--ELSIF UPDATING THEN --UPDATE觸發(fā)
--UPDATE STATIONINSTRUMENT SET STATIONID=∶NEW.STATIONID,POINTID=∶NEW.POINTID,INSTRID=∶NEW.INSTRID,SAMPLERATE= ∶NEW.SAMPLERATE WHERE STATIONID=∶NEW.STATIONID AND POINTID=∶NEW.POINTID; --更新儀器信息表ELSIF DELETING THEN --DELETE觸發(fā)
DELETE FROM STATIONINSTRUMENT WHERE STATIONID=∶OLD.STATIONID AND POINTID
=∶OLD.POINTID; --刪除符合條件的儀器信息表
END IF;
END;
軟件主要應(yīng)用于已經(jīng)接入地震行業(yè)內(nèi)網(wǎng)的市縣地震局,通過客戶端軟件,即可以自動或者手動采集方式,將山西各個縣(市)地震前兆儀器的數(shù)據(jù)轉(zhuǎn)換存儲到區(qū)域中心市縣前兆數(shù)據(jù)庫。
軟件基于Microsoft Visual Studio 2008開發(fā)環(huán)境,采用Visual C#語言進(jìn)行編寫,軟件功能、整體流程及界面見圖4—圖6。
圖5 軟件流程Fig. 5 Software fl owchart
圖6 軟件界面Fig. 6 Software interface
2.4.1 自動采集。在軟件自動采集時,通過設(shè)置自動采集時間1和自動采集時間2,可設(shè)置自動采集的時間。自動采集時間1設(shè)置采集昨天數(shù)據(jù)的時間點;自動采集時間2設(shè)置采集當(dāng)天數(shù)據(jù)的時間點,設(shè)置的時間信息保存到安裝程序文件夾下的userpara.ini文件中,采集完成后,通過界面下方的列表和文本框顯示采集日志,并將采集的詳細(xì)日志保存到安裝程序的軟件運(yùn)行日志文件夾下,文件名是soft.log。
2.4.2 手動采集。在手動采集界面,首先設(shè)置采集起始日期和采集結(jié)束日期,然后點擊采集按鈕,實現(xiàn)某個縣(市)前兆儀器的數(shù)據(jù)采集功能,也可以通過文件入庫方式對儀器數(shù)據(jù)進(jìn)行入庫(陳傳華等,2009;胡玉良等,2013),采集結(jié)束后,界面的表格中出現(xiàn)采集日志(綠色表示數(shù)據(jù)不缺數(shù),紅色表示數(shù)據(jù)有缺數(shù)),采集結(jié)果在軟件運(yùn)行日志中進(jìn)行記錄,采集的數(shù)據(jù)在安裝程序數(shù)據(jù)文件夾下進(jìn)行保存文件名格式:臺站代碼+測點代碼+測項分量代碼+日期. qzh。
2.4.3 數(shù)據(jù)瀏覽。在數(shù)據(jù)瀏覽界面,首先設(shè)置數(shù)據(jù)開始日期和數(shù)據(jù)結(jié)束日期,然后在左側(cè)樹形節(jié)點中,點擊某一個測點下的測項分量代碼即可實現(xiàn)數(shù)據(jù)瀏覽,采集日志也會在數(shù)據(jù)瀏覽界面中顯示出來。
2.4.4 軟件配置。在軟件配置界面,點擊軟件配置工具欄,自動加載數(shù)據(jù)庫參數(shù)配置和儀器測項對比參數(shù)設(shè)置。當(dāng)數(shù)據(jù)庫參數(shù)發(fā)生變化后,可以在配置參數(shù)中進(jìn)行設(shè)置,然后點擊數(shù)據(jù)庫參數(shù)保存按鈕,即可將參數(shù)保存到本地安裝程序文件夾UserPara.ini配置文件中;當(dāng)儀器測項對比參數(shù)需要修改時,在軟件配置界面中點擊測點編碼會出現(xiàn)下拉菜單,選中需要修改的測點編碼,然后即可修改相關(guān)文本框內(nèi)容,修改完成后,點擊儀器測項參數(shù)保存按鈕,即可將相關(guān)參數(shù)保存到安裝程序文件夾下用戶名_Station.xml配置文件中。
山西市縣地震前兆數(shù)據(jù)共享軟件在地震前兆數(shù)據(jù)庫結(jié)構(gòu)規(guī)范基礎(chǔ)上進(jìn)行設(shè)計,客戶端軟件具有良好的兼容性,在Windows XP和Windows 7下均可以正常運(yùn)行,界面清晰,操作簡單,功能上達(dá)到了設(shè)計要求。從臨汾市地震局和太原市地震局實際運(yùn)行效果來看,數(shù)據(jù)采集入庫實現(xiàn)自動化,曲線繪制操作簡單,只要訪問地震行業(yè)內(nèi)網(wǎng),即可使用Mapsis等工具瀏覽地市地震局?jǐn)?shù)據(jù),達(dá)到數(shù)據(jù)共享的目的,為其他省地震局實現(xiàn)市縣數(shù)據(jù)共享提供較好的解決方案。
陳傳華,林秀娜,邢偉偉.“十五”前兆管理系統(tǒng)手動文件入庫詳解[J]. 地震地磁觀測與研究,2009,30(增刊):126-132.
胡玉良,程冬焱,穆慧敏,等.山西地震前兆臺網(wǎng)系統(tǒng)運(yùn)行維護(hù)[J]. 山西地震,2013,3:44-48.
中國地震局.地震前兆數(shù)據(jù)庫結(jié)構(gòu)臺站觀測[M]. 北京:地震出版社,2013.
中國地震局.中國地震前兆臺網(wǎng)技術(shù)規(guī)程[M].北京:地震出版社,2005.
周克昌,紀(jì)壽文,劉春國,等.地震前兆數(shù)據(jù)庫系統(tǒng)設(shè)計[J].地震, 2010,30(2):143-151.