胡玉良 閆民正 程冬焱 龐云峰
(中國太原030021山西省地震局)
最近幾年山西省各市縣新增不少地震前兆儀器,有的市縣已經建立小規模地震前兆臺網,但產出數據僅限于本市縣使用。安裝儀器型號多樣,通訊協議不符合“十五”地震前兆觀測設備網絡通訊規程(中國地震局,2005),采用數據庫結構各不相同,不符合中國地震前兆數據庫結構規范(中國地震局,2013),從而導致相鄰市縣之間前兆數據無法實現共享。
為了最大化利用市縣前兆數據,山西市縣地震前兆數據共享軟件在不更改現有前兆儀器的前提下,對臨汾市地震局和太原市地震局產出的觀測數據,按照中國地震前兆數據庫結構規范要求進行標準化,然后匯集到山西省地震局,最終將數據提供給分析預報中心、市縣地震局使用,從而在山西省地震局建立市縣前兆觀測網,可實現相同觀測手段的對比觀測、異常同步分析、異常排除、地域分布廣及覆蓋面積大等單個臺站無法比擬的效果。
由于各市縣地震前兆儀器大多為非標準化儀器,儀器種類繁多,產出數據格式不一。對數據進行整合,首先要對市縣安裝的地震前兆儀器設備的種類、名稱、型號、廠家、傳輸方式、產出數據格式、運行環境、工作狀態等內容進行調研;其次,如果市縣已建立前兆臺網,需要詳細了解數據庫結構,在此基礎上篩選出適合進行數據共享的前兆儀器。
通過對山西省各市縣現有地震前兆儀器進行調研,臨汾市地震局、太原市地震局已建立小規模前兆臺網,搭建了前兆數據庫,且均已接入中國地震行業內網。
臨汾市地震局在洪洞、侯馬、霍州、曲沃、襄汾等地安裝了北京中科光大自動化技術有限公司生產的ZKGD2000型地下流體設備,儀器通過GPRS方式實時匯集到臨汾市地震局專用計算機。該計算機安裝了Access 2000數據庫,每天存儲一個數據庫文件,比如:文件名稱ac130325.mdb代表2013年3月25日存儲的儀器數據,數據庫表結構:ParaName表示臺站+測項(比如:襄汾張禮觀測井水位,襄汾張禮觀測井水溫,襄汾張禮觀測井氣壓);ParaMemoTime表示運行日期(格式:h∶mm∶ss);ParaValue表示數據。
太原市地震局在市區各個地方(比如:迎新街、古旦、小店等地)安裝了太原億振科技有限公司生產的水位儀,所有儀器通過GPRS方式實時匯集到太原市地震局專用計算機上,該計算上安裝了Microsoft SQL Server 2000數據庫,數據庫結構:dat表示運行日期(格式:yymmddhhmm),a1表示水位數據,單位是毫米;a2表示氣壓數據,單位是帕;num表示井點編號(1表示迎新街井;2表示古旦井;3表示小店2井等)。
(1)基礎信息錄入。根據中國地震前兆數據庫結構規范,將涉及的市縣地震臺站名稱、臺站代碼、臺站經緯度錄入數據庫;將非標準的前兆儀器名稱、儀器型號及儀器代碼等信息錄入數據庫;對數據庫中沒有的測項分量名稱及代碼,在數據庫中進行新增錄入,錄入市縣客戶端信息,客戶端軟件根據客戶端信息即可提取到相關臺站、儀器、測項信息及數據庫參數信息。
(2)數據采集。以臨汾市地震局為例進行說明,臨汾市地震局分別在侯馬、霍州、曲沃、洪洞、襄汾等地安裝了中科光大流體設備,通過GPRS無線方式匯集到臨汾市地震局1臺計算機,并存儲到access數據庫,客戶端軟件通過庫數據提取數據,通過轉換寫入區域中心市縣前兆數據庫。
(3)采集日志記錄功能。軟件每進行一次數據采集都需將采集結果保存到數據庫采集日志表。
(4)數據展示。實現任意時段數據曲線及采集日志的瀏覽。
2.2.1 硬件整體架構。區域中心:1臺市縣前兆數據庫服務器,操作系統采用 Suse Linux 10 SP3,數據庫軟件采用Oracle 10g,用于市縣前兆數據存儲和共享。市縣:1臺Windows XP/7操作系統計算機,用于實現對市縣非標準前兆儀器數據的轉換、入庫及備份。
2.2.2 軟件架構。包含市縣數據匯聚客戶端和省地震局市縣數據庫兩部分,數據匯聚流程見圖1。

圖1 山西市縣前兆數據匯聚流程Fig. 1 Flowchart of precursor data gathering from counties in Shanxi
市縣前兆觀測數據共享平臺數據庫結構嚴格依照中國地震前兆數據庫結構規范進行設計(周克昌等,2010),對已有數據庫結構不做改動,在此基礎上,根據設計要求,新增3張表,分別是stationinstrument、clientinfo、collectionlog,創建2張視圖和一個觸發器。第1張表用于定義前兆儀器數據采集方式和采集使用的參數,是對數據庫原表dict_stationinstruments的補充;第2張表是客戶端連接用戶管理表;第3張表是采集日志,記錄每個測項分量數據采集情況;視圖分別是STATIONINSTR_READONLY和STATIONINSTRITEM_READONLY,是為了方便查詢臺站儀器基礎信息和臺站儀器測項基礎信息表;創建觸發器TRIGGER INSTR_TRIGGER的目的是,在增加或者更新臺站儀器信息的同時,對表stationinstrument的臺站儀器信息進行更新,避免反復操作,具體創建信息見圖2和圖3。

圖2 創建的數據庫表Fig.2 Created database tables

圖3 創建的數據庫視圖Fig 3 Created database views
觸發器創建過程如下
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觸發
INSERT INTO STATIONINSTRUMENT(STATIONID,POINTID,INSTRID,SAMPLERATE)
VALUES(∶NEW.STATIONID,∶NEW.POINTID,∶NEW.INSTRID,∶NEW.SAMPLERATE); --插入儀器信息表--ELSIF UPDATING THEN --UPDATE觸發
--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觸發
DELETE FROM STATIONINSTRUMENT WHERE STATIONID=∶OLD.STATIONID AND POINTID
=∶OLD.POINTID; --刪除符合條件的儀器信息表
END IF;
END;
軟件主要應用于已經接入地震行業內網的市縣地震局,通過客戶端軟件,即可以自動或者手動采集方式,將山西各個縣(市)地震前兆儀器的數據轉換存儲到區域中心市縣前兆數據庫。
軟件基于Microsoft Visual Studio 2008開發環境,采用Visual C#語言進行編寫,軟件功能、整體流程及界面見圖4—圖6。

圖5 軟件流程Fig. 5 Software fl owchart

圖6 軟件界面Fig. 6 Software interface
2.4.1 自動采集。在軟件自動采集時,通過設置自動采集時間1和自動采集時間2,可設置自動采集的時間。自動采集時間1設置采集昨天數據的時間點;自動采集時間2設置采集當天數據的時間點,設置的時間信息保存到安裝程序文件夾下的userpara.ini文件中,采集完成后,通過界面下方的列表和文本框顯示采集日志,并將采集的詳細日志保存到安裝程序的軟件運行日志文件夾下,文件名是soft.log。
2.4.2 手動采集。在手動采集界面,首先設置采集起始日期和采集結束日期,然后點擊采集按鈕,實現某個縣(市)前兆儀器的數據采集功能,也可以通過文件入庫方式對儀器數據進行入庫(陳傳華等,2009;胡玉良等,2013),采集結束后,界面的表格中出現采集日志(綠色表示數據不缺數,紅色表示數據有缺數),采集結果在軟件運行日志中進行記錄,采集的數據在安裝程序數據文件夾下進行保存文件名格式:臺站代碼+測點代碼+測項分量代碼+日期. qzh。
2.4.3 數據瀏覽。在數據瀏覽界面,首先設置數據開始日期和數據結束日期,然后在左側樹形節點中,點擊某一個測點下的測項分量代碼即可實現數據瀏覽,采集日志也會在數據瀏覽界面中顯示出來。
2.4.4 軟件配置。在軟件配置界面,點擊軟件配置工具欄,自動加載數據庫參數配置和儀器測項對比參數設置。當數據庫參數發生變化后,可以在配置參數中進行設置,然后點擊數據庫參數保存按鈕,即可將參數保存到本地安裝程序文件夾UserPara.ini配置文件中;當儀器測項對比參數需要修改時,在軟件配置界面中點擊測點編碼會出現下拉菜單,選中需要修改的測點編碼,然后即可修改相關文本框內容,修改完成后,點擊儀器測項參數保存按鈕,即可將相關參數保存到安裝程序文件夾下用戶名_Station.xml配置文件中。
山西市縣地震前兆數據共享軟件在地震前兆數據庫結構規范基礎上進行設計,客戶端軟件具有良好的兼容性,在Windows XP和Windows 7下均可以正常運行,界面清晰,操作簡單,功能上達到了設計要求。從臨汾市地震局和太原市地震局實際運行效果來看,數據采集入庫實現自動化,曲線繪制操作簡單,只要訪問地震行業內網,即可使用Mapsis等工具瀏覽地市地震局數據,達到數據共享的目的,為其他省地震局實現市縣數據共享提供較好的解決方案。
陳傳華,林秀娜,邢偉偉.“十五”前兆管理系統手動文件入庫詳解[J]. 地震地磁觀測與研究,2009,30(增刊):126-132.
胡玉良,程冬焱,穆慧敏,等.山西地震前兆臺網系統運行維護[J]. 山西地震,2013,3:44-48.
中國地震局.地震前兆數據庫結構臺站觀測[M]. 北京:地震出版社,2013.
中國地震局.中國地震前兆臺網技術規程[M].北京:地震出版社,2005.
周克昌,紀壽文,劉春國,等.地震前兆數據庫系統設計[J].地震, 2010,30(2):143-151.