APP下载

通用测震数据获取软件包的设计与实现*

2011-01-09申学林王文青任海军

地震研究 2011年1期
关键词:中国地震局台站流程图

周 辉,申学林,王文青,马 亮,任海军,程 陈

(1.中国地震局第二监测中心,西安 710054;2.中国地震局地震研究所,武汉 430071)

通用测震数据获取软件包的设计与实现*

周 辉1,申学林2,王文青1,马 亮1,任海军1,程 陈1

(1.中国地震局第二监测中心,西安 710054;2.中国地震局地震研究所,武汉 430071)

在掌握数据源及相关数据格式的基础上,实现了读取 SSS实时流数据、数据库连续波形、事件波形数据以及 SEED文件的通用获取测震数据软件包。该软件包可使应用程序通过统一数据接口获得测震数据。经测试该软件包功能完整、高效易用,提高了地震科技人员的工作效率。

测震数据;SEED;软件包;统一数据接口

0 引言

随着 “九五”和 “十五”项目的建设完成,中国地震局推广的地震监测系统 JOPENS在地震日常工作及大震速报方面发挥了重要作用(孙学军,姚宏,2009;李大辉等,2001;胡星星等,2008;胡华灯,黄文辉,2006;金星等,2007;卫爱民等,2005)。随着我国社会经济的发展,政府和民众对地震行业提出了更高的要求,快速、实时利用数字地震波形开展地震学相关学科的研究、地震预警、震源参数反演、“新参数地震目录”的产生(付虹等,2009;万柯松等,2009;陈运泰,吴忠良,1999)等工作已提上日程。但 JOPENS没有提供二次开发的接口,地震科技工作者在获取地震数据时面临很多难题,尤其是测震数据存在多数据源的情况,如 JOPENS/SSS实时测震流数据、来自 JOPENS数据库的连续波形数据和事件波形数据、SEED波形文件等,并且这些数据的格式繁多复杂,需要了解这些数据的存储方式、格式等。针对这些问题,本研究开发的软件包将提供一个简单、可靠、统一的方案,可读取不同数据源的测震数据,从而方便后期数据的处理。

1 总体结构

本软件包的主要功能是为应用程序提供一个统一的获取测震数据的平台。根据数据源的不同,本软件包分为 3个独立的模块,总体模块图如图 1所示,分别为:SSS流数据处理模块、JOPENS数据库处理模块、SEED文件处理模块。SSS流数据处理模块用来读取 SSS服务器的实时测震数据,JOPENS数据库处理模块用于处理 JOPENS数据库中的连续波形和事件波形数据,SEED文件处理模块用于读取 SEED波形文件。这些模块分别将不同的数据转换为统一数据格式,最终为应用程序提供指定台站、通道、采样率的测震数据。本软件包基于 .NET3.0平台,采用 C#语言开发,具有使用简单、完全面向对象、层次清晰、效率高等优点。

图1 测震数据获取软件开发工具包总体模块图Fig.1 Overall block diagram

2 统一数据接口

为了能够提供统一的数据接口,本软件包自行定义了对外的统一数据接口 S_data。三大模块将获取到的原始数据转换为统一的格式,最后由S_data统一提供给应用程序。下面是统一数据接口S_data相关数据结构的定义。图 2为统一数据接口类的结构图。

图2 统一数据接口类结构图Fig.2 Unified data-interface class diagram

类 S_data用来存放多个台站的测震数据。stations_name用来存储台站名称的数组,stations是存放台站所有数据的数组。本软件包对外提供的所有测震数据都通过这个类来提供。

类 S_Sation_data用来存放单个台站数据。channels_name是存储该台站中所有通道名称的数组,channels是存放该台站所有通道原始数据的数组。

方法 getData_Time()和 getStreamData_Time()根据指定台站名、通道名和采样率获取测震数据。当前测震数据的采样率通常为 100 Hz,数据量很大,同一台站同一通道一天记录的数据达到8 640 000个,存在计算量大的困难,用户可能需要不同采样率的数据来满足不同的需求,因此本软件包提供了自行设定采样率的功能。方法 get-StreamData_Time()用于获取流数据。方法 getData_Time()应用于读取数据库和 SEED文件数据。

3 流数据处理模块

3.1 NetSeis/IP流服务协议

目前 “十五”项目测震台网采用 SSS流服务器来负责接收和分发近实时波形数据,该服务遵守NetSeis/IP流服务协议,默认采用 5000端口提供实时地震数据流。NetSeis/IP协议类似 FTP协议,主要参考了美国 Albuquerque Seismological Laboratory(ASL)的 L ISS协议和 TCP/IP协议,用于传送实时地震波形数据(李卫东,梁兆东,2008)。

3.2 设计思路

本模块共有两个线程——控制线程和接收数据线程。控制线程负责初始化 SSS服务器连接、获取数据端口和创建接收数据线程;接收数据线程负责创建数据连接、接收数据、处理解压缩数据并将其转换为统一格式供应用程序使用。

图3 流数据处理模块流程图(a)控制线程;(b)接收数据线程Fig.3 Stream data processing module flowchart(a)Thread of control;(b)Thread of receiving data

当控制线程连接到 SSS服务器时,服务器将验证用户名和密码,通过身份验证后控制线程发送PASV RT命令,SSS服务器收到命令后,动态分配一个数据端口。接收数据线程连接到此端口上,再发送 RETR命令,SSS服务器收到命令后,验证请求的台站数据可被下载后,通过该数据端口将请求的台站波形数据发送给接收数据线程。本模块的程序流程图见图 3。接收数据线程从 SSS服务器上接收的数据实际上是大小为 512字节的纯数据SEED卷(Mini-SEED数据)。该卷包含有固定头段部分(48字节)和数据部分,总长度 512个字节,主要记录台站名、通道名、记录起始时间、样本数目、测震数据等(中国地震局,2003)。每次接收的纯数据 SEED帧中的样本数目并不完全一致,大约在 500左右,也就是说在采样率为 100的情况下,该帧记录了同一台站同一通道约 5 s左右的测震数据,同一台站同一通道的前后数据帧间隔 5 s左右。

4 JOPENS数据库处理模块

JOPENS系统使用数据库存储系统接收和产出的各种数据。JOPENS系统使用的数据库为开源数据库MySQL,当前使用的版本为MySQL 5.1。

4.1 NET平台连接MySQL

MySQL官方提供了 MySQL Connector/NET数据库驱动(李波,2005),使得在 .NET平台下连接MySQL数据库十分简便。本模块采用 MySQL Connector/Net 6.1.3作为连接 MySQL的驱动。Connector/NET是一个纯 C#语言编写的全面托管的ADO.NET驱动程序,并实现了 ADO.NET所有接口,给开发人员提供了一种安全、高性能的与MySQL数据连接的方案。

4.2 设计思路

JOPENS数据库中有事件波形和连续波形数据,这两种数据存储结构略有不同,但主要的数据格式是相同的,所以把它们的处理整合在一个模块中。首先,根据数据库服务器相应参数创建连接。数据库连接创建成功以后,根据应用程序的不同要求来构建合适的查询语句,接着执行该查询语句。获得相应的数据以后,再进行解压缩并转换为统一的数据格式,最后关闭数据库连接。本模块的程序流程见图 4。

图4 JOPENS数据库处理模块程序流程图Fig.4 Flowchart of JOPENS database processing module program

5 SEED文件处理模块

SEED格式是一个针对数字地震波形数据交换的国际通用格式,它是为地震学界的应用而设计的,主要是用于各个机构之间交换未经处理的地面运动数据(中国地震局,2003)。

5.1 SEED结构分析

以下仅以 JOPENS-MSDP产出的 2.3版 SEED文件进行简单介绍。SEED格式文件包括 SEEDVOLUME文件和 Mini-SEED文件,SEEDVOLUME文件包括控制头段和波形数据两部分,Mini-SEED文件仅包括波形数据部分。在 SEEDVOLUME文件中,控制头段部分以ASCII格式存储,波形数据以二进制格式存储。从物理上划分,文件由若干个逻辑卷组成,每卷为 4 096字节。每个逻辑卷以一个 8字节的 ID子块开始,后跟 4 088字节的不同类型的控制头段及其子块。存储时每个控制头段会根据其长度可能占一个或多个逻辑卷,当一个逻辑卷存放不下时,就开始一个新的逻辑卷存储。图 5为完整 SEED文件的存储结构。

图5 SEED文件的存储结构Fig.5 Storage structure of SEED file

5.2 设计思路

SEED控制头段内容丰富、结构复杂,在实际应用中可按不同要求在需要的卷中根据子块类型读取所需要的内容。例如若需要台站列表,那么只需读取卷索引控制头段中的卷台站头段索引子块;而台站的具体信息可以读取台站控制头段;数据卷的存储采用了压缩策略,在使用数据时需要对数据进行解压缩,具体解压缩算法可参考《地震波形数据交换格式》附录 B(中国地震局,2003)。图 6是 SEED文件处理模块的流程图,已经有资料实现类 Pascal编写读取 SEED数据文件的程序(刘胜国,贾庆华,2004)。

图6 SEED文件处理模块流程图Fig.6 Flowchart of SEED file processingmodule

6 应用实例

6.1 软件包中类及其主要成员介绍

本研究中开发的测震数据获取软件包中有S_data、 clsStreamReader、 cls DatabaseReader、 cls-SeedReader 4个类,其中 S_data为统一数据接口,在前面已经介绍过;clsStreamReader用来读取 SSS流数据,clsDatabaseReader用来读取数据库中的连续和事件波形,clsSeedReader则是用于获取 SEED文件数据。表 1为软件包中类及其主要数据、函数成员介绍。

在 .NET环境中使用本软件包,首先需要添加UDSDAP.DLL文件到 C#工程中引用,使用 using UDSDAP来引用UDSDAP命名空间。UDSDAP.DLL是本软件包生成的动态链接库的文件名。

表1 软件包中类及其主要数据、函数成员Tab.1 Classes and their data and function member in the software package

6.2 读取实时测震流数据实例

本例为读取湖北兴山台(XSH)和房县台(FXI)的实时测震流数据的过程。图 7为本实例的流程图。

6.3 读取 JOPENS数据库实例

从 JOPENS数据库中获取 2010年3月 4日兴山台和房县台一天的连续地震波形数据。图 8为本实例的流程图。

从 JOPENS数据库中获取事件编号为HB.201003091844.0002地震波形数据。图 9为读取 JOPENS数据库地震事件波形的流程图。

图7 读取实时测震流数据实例流程图Fig.7 Flowchart of reading stream data

图8 读取 JOPENS数据库连续地震波形实例流程图Fig.8 Flowchart of reading continuouswaveform Jdata from OPENS database

图9 读取 JOPENS数据库地震事件波形实例流程图Fig.9 Flowchart of reading eventwavefor m data from JOPENS database

6.4 读取 SEED文件实例

本例是读取MSDP产出的 SEED文件,该文件包含了武汉(WHA)台的测震数据。图 10为从SEED文件中获取武汉台 BHE通道的测震数据的流程图。

图10 读取 SEED文件实例流程图Fig.10 Flowchart of reading SEED data file

7 结语

本软件包完全实现了既定功能要求,能方便、准确地获取测震数据,让地震科研人员更方便地进行测震数据应用开发及分析处理工作。为了使它适用于更广泛的领域,应考虑进一步补充完善本软件,支持更多的数据源,如 EVT格式的数据等。另外,在处理中国地震台网中心产出的 SEED文件时,出现过台站索引与数据卷中的台站对应不上的问题,即数据卷中的台站数量比索引中的多,发生这种情况时,只能以索引中的台站为准。

衷心感谢中国地震局地震研究所李胜乐研究员对笔者的悉心指导和对本软件包及论文的宝贵意见。

陈运泰,吴忠良.1999.中国数字地震学的发展战略问题[J].国际地震动态,(5):1-5.

付虹,王绍晋,龙晓帆,等 .2009.利用数字化速度波形和仿真位移波形资料求解震源机制解的比较[J].地震研究,32(1):18-24.

胡华灯,黄文辉.2006.广东地震台网测震数据库管理系统[J].地震地磁观测与研究,26(2):66-71.

胡星星,滕云田,王喜珍,等 .2008.地震波形数据实时监控软件的实现[J].地震地磁观测与研究,29(1):104-108.

金星,陈绯雯,廖诗荣 .2007.区域数字地震台网实时速度系统试运行情况分析[J].地震地磁观测与研究,28(2):50-54.

李波 .2005.ASP.NET与 SQL SERVER、ORACLE和 Mysql数据库的连接[J].内蒙古科技与经济,(19):34-36.

李大辉,韩磊,王文辉 .2001.L ISS系统在中国数字地震台网的应用设想[J].地震地磁观测与研究,22(1):63-67.

李卫东,粱兆东 .2008.使用 Ultra-NMS监控软件扩展测震仪器监控功能的方法[J].震灾防御技术,3(2):204-207.

刘胜国,贾庆华 .2004.首都圈遥测地震台网所采用的 SEED格式及ASCII码格式的转换程序[J].华北地震科学,22(1),27-30.

孙学军,姚宏 .2009.“十五”测震台网数据库的应用程序开发[J].地震地磁观测与研究,30(3):109-113.

万柯松,倪四道,曾祥方,等 .2009.汶川大地震中的应急地震学[J].中国科学 (D辑):地球科学,39(1):1-10.

卫爱民,何家斌,颜其中 .2005.云南省区域数字地震遥测台网远震参数测定[J].地震研究,28(2):144-149.

中国地震局 .2003.地震波形数据交换格式[M].北京:地震出版社.

Design and Realization of the Acquisition Software Package of Un iversal Seism ic Data

ZHOU Hui1,SHEN Xue-lin2,WANG W en-qing1,MA L iang1,REN Hai-jun1,CHENG Chen1
(1.Second CrustM onitoring and Application Center,CEA,Xi'an710054,Shaanxi,China)(2.Institute of Seismology,CEA,Wuhan430071,Hubei,China)

We develop a universal access to seism om etric data-package w hich can read SSS real-tim e stream ing data,database data including continuous w aveform data and earthquake-event data and the SEED w aveform files based on understanding the data sources and related data form ats.Thus,other applications w ill be able to obtain seism ic data through a unified data-interface.This package has full function and is efficient,w hich improves the efficiency of earthquake personnel.

seism om etric data;SEED;package;unified data-interface

TP311.52

A

1000-0666(2011)01-0102-06

2010-02-03.

国家自然科学基金(40674019)和中国地震局地震研究所所基金(IS200856066)联合资助 .

猜你喜欢

中国地震局台站流程图
云的识别指南
基于ETL技术的台站信息同步应用研究
地震台站基础信息完善及应用分析
一种适用于高铁沿线的多台站快速地震预警方法
一种程序源代码的标准化流程图转化方法∗
一种具备干扰台站剔除的多台站定位方法