山西市县地震前兆数据共享软件设计
2015-12-19胡玉良闫民正程冬焱庞云峰
胡玉良 闫民正 程冬焱 庞云峰
(中国太原030021山西省地震局)
0 引言
最近几年山西省各市县新增不少地震前兆仪器,有的市县已经建立小规模地震前兆台网,但产出数据仅限于本市县使用。安装仪器型号多样,通讯协议不符合“十五”地震前兆观测设备网络通讯规程(中国地震局,2005),采用数据库结构各不相同,不符合中国地震前兆数据库结构规范(中国地震局,2013),从而导致相邻市县之间前兆数据无法实现共享。
为了最大化利用市县前兆数据,山西市县地震前兆数据共享软件在不更改现有前兆仪器的前提下,对临汾市地震局和太原市地震局产出的观测数据,按照中国地震前兆数据库结构规范要求进行标准化,然后汇集到山西省地震局,最终将数据提供给分析预报中心、市县地震局使用,从而在山西省地震局建立市县前兆观测网,可实现相同观测手段的对比观测、异常同步分析、异常排除、地域分布广及覆盖面积大等单个台站无法比拟的效果。
1 市县地震前兆仪器现状
由于各市县地震前兆仪器大多为非标准化仪器,仪器种类繁多,产出数据格式不一。对数据进行整合,首先要对市县安装的地震前兆仪器设备的种类、名称、型号、厂家、传输方式、产出数据格式、运行环境、工作状态等内容进行调研;其次,如果市县已建立前兆台网,需要详细了解数据库结构,在此基础上筛选出适合进行数据共享的前兆仪器。
通过对山西省各市县现有地震前兆仪器进行调研,临汾市地震局、太原市地震局已建立小规模前兆台网,搭建了前兆数据库,且均已接入中国地震行业内网。
临汾市地震局在洪洞、侯马、霍州、曲沃、襄汾等地安装了北京中科光大自动化技术有限公司生产的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井等)。
2 软件设计
2.1 实现功能
(1)基础信息录入。根据中国地震前兆数据库结构规范,将涉及的市县地震台站名称、台站代码、台站经纬度录入数据库;将非标准的前兆仪器名称、仪器型号及仪器代码等信息录入数据库;对数据库中没有的测项分量名称及代码,在数据库中进行新增录入,录入市县客户端信息,客户端软件根据客户端信息即可提取到相关台站、仪器、测项信息及数据库参数信息。
(2)数据采集。以临汾市地震局为例进行说明,临汾市地震局分别在侯马、霍州、曲沃、洪洞、襄汾等地安装了中科光大流体设备,通过GPRS无线方式汇集到临汾市地震局1台计算机,并存储到access数据库,客户端软件通过库数据提取数据,通过转换写入区域中心市县前兆数据库。
(3)采集日志记录功能。软件每进行一次数据采集都需将采集结果保存到数据库采集日志表。
(4)数据展示。实现任意时段数据曲线及采集日志的浏览。
2.2 软硬件整体架构
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
2.3 前兆数据库结构设计
市县前兆观测数据共享平台数据库结构严格依照中国地震前兆数据库结构规范进行设计(周克昌等,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;
2.4 软件实现
软件主要应用于已经接入地震行业内网的市县地震局,通过客户端软件,即可以自动或者手动采集方式,将山西各个县(市)地震前兆仪器的数据转换存储到区域中心市县前兆数据库。
软件基于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配置文件中。
3 结束语
山西市县地震前兆数据共享软件在地震前兆数据库结构规范基础上进行设计,客户端软件具有良好的兼容性,在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.