APP下载

电磁波数据台站日常处理程序的应用

2016-08-03刘晓萍杨世英孟彩菊赵春华靳玉贞

山西地震 2016年2期
关键词:处理程序祁县台站

刘晓萍,杨世英,孟彩菊,赵春华, 靳玉贞

(1.山西省祁县地震局,山西 祁县 030900;2.山西省地震局太原基准地震台,山西 太原 030025;3.太原大陆裂谷动力学国家野外科学观测研究站,山西 太原 030025)



·技术交流·

电磁波数据台站日常处理程序的应用

刘晓萍1,3,杨世英2,3,孟彩菊2,3,赵春华2,3, 靳玉贞2,3

(1.山西省祁县地震局,山西祁县030900;2.山西省地震局太原基准地震台,山西太原030025;3.太原大陆裂谷动力学国家野外科学观测研究站,山西太原030025)

摘要:简要介绍电磁波数据库的结构,阐述电磁波数据台站日常处理程序要实现的功能并列出实现功能所用的编程方法。研发程序在多个台站应用后,效果良好,其编程方法对台站工作者具有一定的参考借鉴价值。

关键词:地震台站;电磁波数据;处理程序

0引言

地震前电磁波现象逐渐受到地震学家的关注,监测并分析电磁信号异常已成为一种重要的地震短临预测方法。山西电磁波台网自2007年建设完成并投入使用至今已有数年,网内台站达数十个,多数由地市局或企业承担。电磁波系统配备相应的客户端软件,可对仪器进行相应的设置和简单的数据下载浏览。但这些功能较为简单,仍存在以下不便:部分台站人员仍需手工下载当天数据编成模拟日报进行发送;进行分析时下载数据较慢,需将下载后的数据转换成行业内常用的MapSIS软件数据格式;每月需手工生成月报表等。因此,在了解电磁波台网数据库结构的基础上,编写电磁波日常处理程序,可以简化繁琐的手工操作,满足日常工作需要。

1电磁波数据库

查阅电磁波台网数据库服务器可大致了解电磁波数据结构,采用oracle数据库,方案名为“JZ”,所有表均置于该方案内。包括数据表、日志表、基础数据表和数据字典表等,其中主要的表有台点信息表TZSTUTA和数据表(分钟值表MI、时均值表HH、日均值表DD)。台点信息表和数据表通过台站号TZH关联,数据表中,分钟值表为原始数据表,表中台站TZH、台站名称TZMC、时间SJ、A1、A2、A3、A4分别为NS、EW向的频度与强度的观测数据。表中每分钟每个台点的观测数据为一条记录,时间SJ为该分钟时刻的DATE类型数值,A1、A2、A3、A4为相应分钟值的NUMBER类型数据,缺数用“NULL”表示。

2程序的使用

程序需要.Net Framework2.0以上版本支持,安装oracle8.7以上版本客户端及Office 2000以上版本。

运行程序ElectroMagneticWave.exe后,点击菜单“连接数据库”,连接成功后可运行各项功能。连接数据库的账号保存在程序目录下的EMW.txt中,一般由电磁波台网管理人员提供,可根据需要进行修改。

程序主界面有4个选项卡:文本输出、日报发送、表格数据、生成月报。

2.1文本输出

文本输出主要用于下载文本格式的电磁波数据,在成功连接数据库后,文本输出选项卡下(见第15页图1)“台站选择”框中列出了所有可供选择的入网台站,将需要下载数据的台站进行勾选,在“时间选择”下拉框中选择开始日期和结束日期,然后点击“均值选择”框中需下载的均值。该程序下载的数据符合MapSIS格式,可以勾选是否带日期列,是否对数值取对数,以及指定缺数标志。

需要注意的是,分钟值是原始数据,由各台站的电磁波仪器通过GPRS等通信方式准实时地将数据传送到电磁波应用服务器,再由服务端程序存入数据库。而时均值和日均值数据是由数据库中定时执行的“存储过程”从分钟值表MI中生成到时均值表HH、日均值表DD。下载数据前,可能还有最新的时均值或日均值未能生成,故在下载数据前需点击“重算均值”,程序向oracle数据库发送执行一次生成时均值、日均值的命令,然后“导出文本”,将程序根目录下的txt目录生成所需数据。文件名体现了台站名称、起止时期、均值类型和观测项目的信息。如“祁县红领巾电磁波站_20151201_20151216_MI_NSQ.txt”表示祁县红领巾电磁波站20151201至20151216的分钟值,测项是NS向强度。一个生成的文本数据及通过此文本数据形成的Mapsis图形示例分别见图2、图3。

图1 文本输出选项界面Fig.1 The interface of text output options

图2 生成的文本数据Fig.2 The text data generated

2.2日报发送

目前,部分台站每天需通过FTP按规定的模拟日报格式,向上级部门发送前一日电磁波观测数据的日均值。在“日报发送”选项卡下(见图4),选择台站、日期,程序会自动将日期设为前一日。与“文本输出”的操作相同,选择“重算均值”,再点击“获取数据”,窗口下方即列出需发送模拟日报的测项均值及报送文件链接,最后“上传到Ftp”日报文件,即发送至FTP服务器中指定位置,并显示“发送成功”确定框。

FTP的账号保存在程序目录下的EMW.txt中,根据需要可进行修改。

图3 通过使用生成的文本数据形成的Mapsis图形Fig.3 The Mapsis graph based on text data

图4 日报发送选项界面Fig.4 The interface of daily report delivery options

2.3数据表格

数据表格用于实时显示某台站的分钟值数据,一般用于调试仪器或调整观测采集“门坎”后观察数据的变化(见第16页图5)。

2.4生成月报

生成月报表是电磁波台站日常工作之一,月报表中包含一个月各测项的时均值、日均值、其对数值,及其他与观测相关的信息。

程序根目录下包含月报模板.xls文档,其结构与格式符合有关规范对月报的要求,各台站也可根据需要对此模板进行修改,但注意不要更改存放数据单元格的相对位置。

生成月报前先下载时均值文件,在生成月报选项卡下(见图6)“打开”时均值文件,文件的台站名、测项分量名、起止年月均根据时均值文件中数据自动进行填充。正确无误后点击“生成月报”,即在程序根目录下的xls文件夹中生成所选月报表。一个已生成的月报表(见图7)。

图6 生成月报选项界面Fig.6 The interface of monthly report options

图7 生成的月报表格式Fig.7 The monthly report generated

3程序主要功能的编程实现方法

该程序采用微软Visual Basic .NET作为编程工具。

3.1从oracle数据库获取数据

程序采用ADO.NET方式进行数据库编程,ADO.NET是.NET平台中的一种封装的数据库访问技术,拥有.NET Data Provider(数据提供程序)和DataSet(数据集)两个核心组件。以下代码演示ADO.NET从电磁波数据库查询数据的最基本步骤。代码中采纳了用于Oracle的.NET Framework数据提供程序,并使用System.Data.Oracle Client命名空间[1]。

(1) 建立到数据源的连接。

Private dcbConn As New OracleConnection(connectionString)

’connectionString变量为连接字符串

dcbConn.Open()

(2) 建立适配器并向数据集“填充”数据

Private dcbAdapter As New OracleDataAdapter(″″, dcbConn)

Private dcbDataSet As DataSet

dcbAdapter.SelectCommand.CommandText = sqlQueryStr

’connectionString 变量为SQL查询命令字符

dcbAdapter.Fill(dcbDataSet, atableName)

(3) 关闭连接。

dcbAdapter.Dispose()

dcbDataSet.Dispose()

dcbConn.Close()

3.2通过FTP上传文件

该程序采用“Win32 API”编程方式,调用“wininet.dll”的资源进行FTP编程,使用“wininet.dll”前须对其各函数进行声明。上传文件函数的声明如下:

Public Declare Function FtpPutFile Lib ″wininet.dll″ Alias ″FtpPutFileA″ _

(ByVal hFtpSession As Integer, _

ByVal lpszLocalFile As String, _

ByVal lpszNewRemoteFile As String, _

ByVal dwInternetFlags As Integer, _

ByVal dwContext As Integer) As Boolean

声明后可在代码中使用FtpPutFile()函数上传文件。一个完整的FTP上传过程分为5个步骤:打开链接;打开FTP服务;上传文件;关闭FTP服务;关闭链接。

3.3生成Excel格式月报

生成Excel格式的报表可方便对报表文档进行后期编辑与交换。Visual Basic.NET操作Excel可采用ActiveX方式,一般分为3个步骤:(1) 创建Excel对象的引用;(2) 对Excel对象进行编程(如方法、属性、事件等);(3) 完成使用后,将Excel对象释放。下面给出部分代码[2]。

Dim xLapp As Excel.Application = New Excel.Application

Dim xLbook As Excel.Workbook = xLapp.Workbooks.Open(Application.StartupPath & ″Temp.xls″)

Dim xLsheet As Excel.Worksheet = xLbook.Worksheets(1)

…………

xLsheet.Cells(Int((1 + j) / 2) + 1, 2 + k).value = VAll(k, j)

…………

xLapp.Quit()

xLsheet = Nothing

xLbook = Nothing

xLapp = Nothing

4结束语

电磁波台站日常处理程序已在多个台站应用,减少了人工操作,有效提高了工作效率,文中介绍的编程方法对有类似需求的人员具有一定参考借鉴价值。

参考文献:

[1]赵春华,孟彩菊,杨世英,等.太原基准地震台测震资料的电子化管理及拓展应用[J].山西地震,2016(1):46-48.

[2]杨世英,王新胜,张亮娥,等.基于G856F的地磁野外测量处理程序[J].山西地震,2008(1):18-20.

文章编号:1000-6265(2016)02-0014-04

收稿日期:2015-12-17

第一作者简介:刘晓萍(1970—),女,山西省祁县人。2006年毕业于山西省委党校,助理工程师。

中图分类号:TP311

文献标志码:A

Application of Daily-processing Program in Electromagnetic Wave Data Seismic Station

LIU Xiao-ping1,3, YANG Shi-ying2,3, MENG Cai-ju2,3, ZHAO Chun-hua2,3, JIN Yu-zhen2,3

(1.Earthquake Administration of Qi County, Jinzhong, Shanxi 030900, China; 2.Taiyuan Referential Seismological Station of Earthquake Administration of Shanxi Province, Taiyuan, Shanxi 030025, China; 3.State Key Observatory of Shanxi Rift System, Taiyuan Shanxi 030025, China)

Abstract:The electromagnetic wave database is introduced briefly in this paper. The functions implemented by the daily-processing program and the programing method are elaborated. The process program has been well used in several stations. So the programing method can be used for reference for other station workers.

Key words:Seismic station; Electromagnetic wave data; Process program

猜你喜欢

处理程序祁县台站
中国科学院野外台站档案工作回顾
晋中市祁县:倾力打造中国茶文化旅游第一城
高速公路工程变更与计量支付处理程序的优化方法
山西祁县贾令村狐神庙及其舞台题记考述
一种适用于高铁沿线的多台站快速地震预警方法
图片新闻
晋中祁县种植黄芪 开辟农民致富新路
基于C++的数控加工通用后处理程序的开发应用研究
企业危机公关管理问题分析
处理房地产纠纷中行政与民事交叉问题的正当程序