李 敬, 郭德顺, 赖细华, 李志军
(1. 新丰江中心地震台, 广东 河源 517021; 2. 广东省地震局, 广州 510070)
新丰江中心地震台是一个综合性的中心地震台, 辖区有新丰江遥测地震台网、 双塘测量站、黄子洞水化站、 和平地电站、 办公室等业务及管理部门, 在台站的日常工作中, 需要处理大量的地震观测数据和文件资料、 水电数据等, 工作量较大。 以往的数据处理为人工录入EXCEL 表格或TXT 文本文件的形式, 不但容易出错, 而且数据的录入、 查询、 修改和应用很不方便, 效率低浪费大量的人力, 随着台站观测人员的逐渐减少,该问题显得更为突出。
目前国内地震台站尚没有统一的日常数据处理软件, 多为各台站结合实际需要自行开发。 笔者通过申请中国地震局 “地震监测 预报 科研三结合”课题的方式, 在对台站各项工作进行认真的需求分析的基础上, 开发了“新丰江中心地震台日常数据处理软件”, 提高工作效率, 节省人力资源。
完成每天本区地震事件的分析入库(事件数据提交到广东省地震台网中心的jopens 数据库);完成每天观测日志的录入、 输出, 并生成观测日志EXCEL 报表; 完成19个野外子台的维修维护,并填写维修记录表(EXCEL 格式); 完成每月值班表的排班、 输出和上报, EXCEL 格式; 按要求格式完成波形断记统计表(EXCEL 格式)、 地震事件统计表(EXCEL 格式)和震情会商数据(文本格式)转换输出工作; 做为广东省地震局援藏工作的一部份, 新丰江台网还负责西藏波密地区地震事件的分析处理等工作, 并生成每月地震目录(EXCEL格式)和观测报告(WORD 格式)等。
每天主要完成室内跨断层水准观测, 数据处理、 报送, 仪器维护, 报表打印, 值班表处理等工作, 数据格式为文本和EXCEL 格式。
每天主要完成水氡取样, 水氡观测, 数据处理、 报送, 仪器维护, 报表打印, 值班表处理等工作, 数据格式为文本和EXCEL 格式。
每天主要完成地电观测, 地电原始导入, 数据处理、 报送, 仪器维护, 报表打印, 值班表处理, 生成、 上传、 输出地电月报表等工作, 数据格式为文本和EXCEL 格式。
每天主要完成上级文件登记、 查询、 汇总,台站人员(包括在职和退休人员)相关档案资料的管理, 假期全台值班情况的汇总和上报, 网络资料管理, 水电表数据管理等, 数据格式为文本和EXCEL 格式。
从新丰江中心地震台每天要处理的数据来看,工作量很大, 数据格式主要为EXCEL 文件和文本文件。
Visual C++6.0 是微软公司开发的基于Windows操作系统的可视化集成开发环境, 是众多编程语言中最突出的一种, 无论底层的还是高层的操作接口, 它都能够使用, 而不受开发需求的限制, 因此说VC++对数据库访问技术的支持是最彻底的[1]。
MySQL 是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB 公司, 开放源代码。MySQL 数据库系统使用最常用的数据库管理语言――结构化查询语言(SQL)进行数据库管理, 有使用方便、 灵活的特点, 能够满足本开发软件的要求。
ADO 是微软最新的对象层次上的数据库操作技术, 是一种特殊的OLE DB(对象链接嵌入数据库)客户程序, 不依赖于特定的OLE DB 服务器,为OLE DB 数据源提供了一套高层次的自动化接口, 优点是既能发挥OLE DB 的强大功能, 又不用与低级应用程序接口打交道, 容易掌握, 同时支持多种编程语言(包括VC++), 可扩展性高, 能动态创建数据源, 方便应用程序的移植等[1]。
新丰江遥测地震台网前台服务器安装了名为jopens 的MySQL 数据库, 用于存放地震分析软件处理的各种连续波形数据和地震目录数据等。 结合新丰江中心地震台的实际工作需求, 本软件在jopens 数据库中设计了39 张数据库表(见表1),做为存放数据的 “仓库”, 分别存放各部门的相关数据, 同时为了数据显示、 查询的方便, 各数据库表还设计了对应的视图表, 命名方式为数据库表名字后面 “_V”, 如新丰江地震台网观测日志表NetworkLog 的视图表为NetworkLog_V。 NetworkLog数据库表的结构设计如图1 所示, 由于篇幅所限,其它数据库表的结构设计图不一一给出。
表1 数据库表名称及其说明Table 1 Name and description of database table
图1 NetworkLog 数据库表结构设计Fig.1 NetworkLog database table structure design
为了实现自动打印输出新丰江中心地震台各种EXCEL 报表, 设计了16个EXCEL 模板报表文件,同时设计了1个Google 地图KML 模板文件, 用于在Google 地图上画出给定地震事件的震中分布图。 在值班人员需要处理各种报表数据的时候, 能够通过软件完成自动化处理过程, 大大提高了工作效率。相关的模板文件名称和说明如表2 所示。 台网观测日志EXCEL 模板文件结构所图2 所示。 由于篇幅所限, 其它EXCEL 模板文件结构图也不给出。
表2 模板文件名称及其说明Table 2 The name and description of template file
本软件在Microsoft Visual C++6.0 平台上, 利用MFC 可执行应用程序向导(MFC AppWizard(exe)) 生成了基于单文档视图的可执行应用程序框架, 在此基础上设计了地震台网室、 前兆室、 和平地电站、 办公室、 数据转换和设置等应用模块, 完成新丰江中心地震台各部门的日常数据处理工作。
图2 新丰江地震台网观测日志EXCEL 模板文件结构Fig.2 The EXCEL template file structure of Xinfengjiang seismic network log
软件采用ADO 技术访问MySQL 数据库,需要使用#import “C:Program FilesCommon FilesSystemadomsado15.dll” 语句导入ADO 库文件, 需要注意的是, 不同操作系统ADO 库文件的路径会有所不同。 同时, 要在VC++中操作EXCEL 报表,需在程序中使用#include " excel9.h" 和#include "excel9.cpp" 语句导入EXCEL 库文件, 并用以下语句完成COM 库的初始化。
软件设计流程图如图3 所示。
4.2.1 地震台网室模块
主要实现的功能:
(1)观测日志处理。 包括日志数据的录入、查看、 修改和报表打印; 子台波形断记数据登记、入库和查看; 自动从广东省地震台网数据库导入当天地震事件分析数据, 并入库、 查看和打印;自动读取MSDP 分析软件生成的波形断记文件,生成各子台连续率数据并入库等。
(2)子台连续率统计。 从服务器中读取给定时段各子台的波型断记数据, 计算和输出各子台的连续率数据。
图3 软件设计流程图Fig.3 Design flow chart of software
(3)值班表处理。 按照排班则、 人员请假情况等给定条件自动排出每月值班表, 并完成值班表的查看、 调整、 入库、 打印等。 排班规则里设定主班和副班的值班顺序、 值班天数等。
(4)仪器维修登记。 对每次出野外对子台进行维护、 维修事件进行登记和入库, 并支持维修记录的查询和打印等。
(5)子台信息管理。 对新丰江地震台网所管理子台的基础信息、 仪器类型、 传输方式和仪器更新换代情况进行详细的跟踪记录和查询、 修改打印等。
4.2.2 前兆室模块
主要实现的功能:
(1)每日发报数据处理。 按照观测规范要求的格式, 自动完成每日地电、 水氡、 形变和气象等前兆数据的编报和入库工作, 同时按要求完成数据文件的自动保存、 压缩和上传等。 软件中开发了FTP 客户端程序, 用于人工传送数据文件。
(2)形变、 水氡、 库水位数据的日常处理。包括水准钢标、 瓷标数据的入库、 查询和打印;黄子洞水氡、 新丰江水氡每日原始数据及每年标定数据的入库、 计算、 查询和打印; 新丰江水库水位数据的入库、 查询、 计算和打印等。 软件中实现了对水库历史水位EXCEL 数据文件的自动导入功能。
(3)值班表处理。 能够按照前兆室的排班规则自动排好每月的值班表, 支持值班数据入库、调整、 查询和打印功能。
4.2.3 和平地电站模块
主要实现的功能:
(1)观测日志处理。 完成每日地电观测日志数据的录入、 查看、 修改和打印等。
(2)地电原始模拟数据处理。 完成每日地电原始数据的导入、 入库、 查看、 修改、 转换、 上传、 打印等。
(3)地电观测月报数据处理。 自动生成每月地电观测报表数据, 同时支持报表的打印输出。
(4)地电值班表处理。 能够按照和平地电站的排班规则自动排好每月的值班表, 支持值班数据入库、 调整、 查询和打印功能。
4.2.4 办公室模块
主要实现以下功能:
(1)文件处理。 对台站日常收到文件进行登记、 入库、 打印、 查询和汇总, 支持自动生成办文表和领导批文入库等自动化办公功能。
(2)网络资料管理。 对新丰江中心地震台的网络IP 地址等资料进行统一管理, 包括查询、 添加、 修改、 删除、 打印等, 其中的添加、 修改、删除需要密码确认才能操作。
(3)水电表数据处理。 完成新丰江中心地震台所有在职和退休职工水电表抄表数据入库、 修改、 查询、 输出报表, 能够计算每个住户的用水、用电量, 并按不同住户类型(职工、 非职工、 出租等)的水电单价计算住户每月水电费, 输出财务报表给相关人员等。 数据的录入、 修改和删除等操作需要密码认证。
4.2.5 数据转换模块
主要实现的功能:
(1)会商格式数据转换。 按照观测规范的要求, 将新丰江中心地震台的测震、 形变、 流体、地电、 地磁和GPS 数据转换成MapSis 软件可以分析处理的震情会商格式数据, 支持自定义的数据分隔符和文件扩展名, 同时能够对数据进行简单的高值、 低值、 均值、 变化幅度、 均方差的统计和计算。
(2)GoogleEarth 软件格式文件转换。 软件中实现了将给定时段的地震事件数据转换成KML 格式文件的功能, 并能在GoogleEarth 软件自动显示震中分布图和用显著图标标出最大地震的震级,同时自动生成事件统计结果、 观测报告、 地震目录EXCEL 文件等。
4.2.6 设置模块
主要实现的功能:
(1)数据库链接参数设置。 主要实现MySql数据库链接参数设置、 FTP 服务器链接参数设置、MySql 数据库表设置等功能, 设置数据保存在config.ini 文件中。
(2)文件路径设置。 包括软件生成的各种数据文件的保存路径设置和自动生成报表所需要的模板文件路径设置等。 设置数据保存在config.ini文件中。
(3)水电表数据设置。 包括水电表用户数据的查看、 录入、 修改、 打印和水电单价数据的查看、 录入、 修改等, 其中的录入和修改功能需要密码确认。
(4)使用部门设置。 由于本软件涉及的业务工作很多, 结合各部门的实际工作, 软件中为新丰江中心地震台、 办公室、 地震台网室、 前兆室及和平地电站等部门的使用者分别定制了菜单项和工具条, 使软件的操作界面更加简洁明了。
(5)帐户资料管理。 软件中实际了对新丰江中心地震台所有相关的帐户资料数据进行查看、修改、 入库和打印等管理功能。 数据进行了严格加密, 可以按明文和密文进行查看, 修改、 删除、入库和查看明文等操作需要密码确认。
(6)值班人员设置。 主要实现地震台网室、前兆室、 和平地电站3个业务部门的主、 副班值班人员的入库、 修改、 值班顺序调整等功能。
通过在Visual C++6.0 平台上对软件进行调试,最后编译生成了Release 版本的 “新丰江中心地震台日常数据处理软件”。 经过将近两年时间的测试, 软件系统运行稳定, 各功能正常, 达到预定目标。 软件运行界面如图4.3 所示。 使用本软件之前, 需要在电脑上安装MySQL ODBC 5.1 Driver 驱动程序(经测试, 3.51、 5.1、 5.2 版本的驱动程序均能使用), 否则不能正常访问MySQL 数据库,在帮助中有相关说明。
图4 软件运行界面Fig.4 The running interface of software
“新丰江中心地震台日常数据处理软件” 已经在新丰江地震台各部门的日常工作中使用, 从使用效果来看, 到达了提高工作效率、 节省人力资源的既定目标, 新丰江台的很多模拟地震资料也借机完成了入库工作。 当然, 由于经费限制, 本软件是针对特定台站的实际需要进行开发的, 有一定的局限性, 若要推广应用, 则需要具有按照不同地震台的实际需要完成数据库建库、 模板文件定制、 格式文件输出等功能, 使软件能够处理和产出不同地震台站需要的数据。
[1] 夏云庆. Visual C++ 6.0 数据库高级编程[M]. 北京: 北京希望电子出版社, 2002.
[2] 官章全, 刘加明.Visual C++.NET 类库大全[M]. 北京:电子工业出版社, 2002.
[3] 中国地震局.地震及前兆数字观测技术规范(试行)地下流体观测[M]. 北京: 地震出版社, 2001.
[4] 中国地震局.地震及前兆数字观测技术规范(试行)地壳形变观测[M]. 北京: 地震出版社, 2001.
[5] 中国地震局.地震及前兆数字观测技术规范(试行)电磁观测[M]. 北京: 地震出版社, 2001.