• ISSN 1673-5722
  • CN 11-5429/P

地震数据处理系统Earthworm在福建地震预警系统项目中的应用

方伟华 周蓝捷 闫培 李文惠 汪豪

方伟华, 周蓝捷, 闫培, 李文惠, 汪豪. 地震数据处理系统Earthworm在福建地震预警系统项目中的应用[J]. 震灾防御技术, 2018, 13(1): 226-236. doi: 10.11899/zzfy20180121
引用本文: 方伟华, 周蓝捷, 闫培, 李文惠, 汪豪. 地震数据处理系统Earthworm在福建地震预警系统项目中的应用[J]. 震灾防御技术, 2018, 13(1): 226-236. doi: 10.11899/zzfy20180121
Fang Weihua, Zhou Lanjie, Yan Pei, Li Wenhui, Wang Hao. Application of Earthworm on Earthquake Data Processing System in the Fujian Earthquake Early Warning System Project[J]. Technology for Earthquake Disaster Prevention, 2018, 13(1): 226-236. doi: 10.11899/zzfy20180121
Citation: Fang Weihua, Zhou Lanjie, Yan Pei, Li Wenhui, Wang Hao. Application of Earthworm on Earthquake Data Processing System in the Fujian Earthquake Early Warning System Project[J]. Technology for Earthquake Disaster Prevention, 2018, 13(1): 226-236. doi: 10.11899/zzfy20180121

地震数据处理系统Earthworm在福建地震预警系统项目中的应用

doi: 10.11899/zzfy20180121
基金项目: 

福建省简易烈度计项目 2015DZLDY004

详细信息
    作者简介:

    方伟华, 男, 生于1982年。工程师。主要从事地震业务系统运维工作。E-mail:258279496@qq.com

Application of Earthworm on Earthquake Data Processing System in the Fujian Earthquake Early Warning System Project

  • 摘要: 本文介绍了USGS(美国地质勘探局)开发的Earthworm系统在福建地震预警系统项目中的应用。该系统为开源软件,由C语言编写,由不同模块组建而成,每个模块实现不同的功能,主要包括数据接收模块、P波拾取模块、地震定位报告产出模块、地震事件图件绘制模块、地震波存储容器等。同时,用户可以根据自己的需求编写相应的功能模块。文章对该系统的应用进行了介绍,内容包括Earthworm系统的组织架构、业务流程、软件模块的主要功能搭建与配置及软件模块之间的逻辑关系等,目的在于介绍该系统的架构方法与使用心得,促进该系统在地震行业内得到应用与推广。
  • 福建省地震预警项目简易烈度计台网系统用于评估地震对乡镇的影响,每个乡镇布置一个测站,按平均台间距10km左右设置,单台定位精度平均小于5km,最大不超过8km,运行维护率≥90%。目前福建省地震预警系统的总体规划分两期实施:一期在地震活动性较强或者地震影响较大的地区,选择人口较多和经济发达区域进行设备安装;二期在建设地区,如闽西与闽北农村山区等地稀疏布点。地震台网数据处理系统主要采用Earthworm进行搭建,拟在全省布设900台简易烈度计。该数据处理系统由C语言编写,由不同模块组建而成,每个模块实现不同的功能。该系统自从2015年6月正式运行以来,能够正常接收各地震台站的实时波形数据,从而实现地震台网中心地震速报、数据产出、数据管理等各项功能(王喆,2006)。

    本文介绍了由美国地质勘探局开发的Earthworm系统的设计目标、思想和原则,重点介绍了Earthworm框架结构与各模块功能的搭建与配置、Earthworm系统的架构特点、主要工作原理和数据处理流程,以及其应用于福建省地震预警项目的相关情况(吴永权等,2010)。

    Earthworm项目始于1993年,主要目的是为了解决美国地震区域台网出现的问题。当时,区域内的地震台网存在的主要问题有:观测设备陈旧,自动处理系统老化,维修费用逐年增长;仪器性能落后,地震研究的发展需要从精密传感器中获取研究数据;社会公众需要新的、显而易见的实时产品了解详情;最后,经费不足导致大多数台网不再支持区域系统的发展工作。

    为了更好解决服务器老旧与新地震观测仪器相结合的问题,Earthworm项目应运而生。

    Earthworm系统是以避免早期地震处理系统的设计缺陷,保证地震预警的顺利实施为目标而建设的。系统具有以下5个方面的优点:

    (1)模块化:在硬件以及软件方面,系统把所执行的每一个函数封装成一个模块,该模块能独立于其他模块运行。模块化使得系统内的任何一个关键性模块能与系统内的其他模块保持独立。因此,新的试验性需求模块可以在不破坏现有系统的基础上添加并保证良好的性能。

    (2)系统独立性:由于不同的模块可独立运行在不同的计算机硬件和操作系统中,并作为一个系统运转,因此该系统可以无中断、在任意操作系统的计算机之间移植。在实际运用中,只使用各种计算机系统标准化的部分,而不使用任何无法规避的系统特殊功能。

    (3)可扩展性:该系统提供较好的性价比以适应各种类型层次的网络需求。同时,用户可定制个性的需求,编写新的模块运行。

    (4)连通性:该系统能够实现与其它自动实时系统、互动分析系统以及各种发布方式之间快速可靠地通信。其目标是在各层次提供自动和交互式的接口,使系统的配置范围可以从完全单机独立操作到分布式系统单个节点的运行。

    (5)鲁棒性:在地震危机时刻,由于输入数据和电源可能中断、系统负荷急剧增加,只有高鲁棒性的地震报警系统才能向媒体和应急机构提供实时准确信息。该系统针对地震处理数据的错误检测及恢复、恢复时间、故障弱化和负荷控制等问题具有极好的可靠性(马强,2008)。

    Earthworm系统中每个模块都执行特定的任务,如数据采集,震相拾取等。模块之间通过广播和监听(如波形数据包和相位捡拾等)各种消息来通信。消息传递类似于无线电通讯:它由用于传递消息的“传输媒介”和一套标准模块程序组成。这些模块程序类似于运行在传输媒介中的多频率双向无线电设备。在传输媒介上模块可以使用这些标准程序广播并监听。

    福建省简易烈度台网设备一期规模为300台左右,通过中国电信的MPLS VPN组网方式将数据传输至厦门地震勘测研究中心与福建省地震局。每个观测台站提供2M SDH链路带宽供烈度计上报数据使用,省局与厦门地震勘测研究中心分别采用一条10M光纤汇聚专线接入中国电信VPN平台,用于收集各观测台站数据。对于部分未铺设SDH链路的区域,采用3G信号进行辅助接入Earthworm的地震预警软件框架系统。

    基于Earthworm地震数据处理系统的架构采用积木式组合的方式进行搭建(图 1),主要包括:

    图 1  基于Earthworm数据处理系统架构流程图
    Figure 1.  Processing flow-chart of the Earthworm-based data system

    第1部分,数据接收,通过MPLS VPN组网方式将各台网观测的烈度计产生的数据在数据中心进行汇聚,主要采用Paler2ew模块进行功能搭建;

    第2部分,地震波形展示,主要采用wave_server模块进行功能搭建;

    第3部分,地震数据处理,主要采用pick_eew、tcpd、ShakeMap的模块进行功能搭建,pick_eew模块负责自动震相拾取功能,tcpd模块负责地震定位与震级计算功能,ShakeMap模块负责烈度图绘制功能;

    第4部分,地震数据存储,主要采用Tbuf2mseed、Ewmseed Archiver的模块进行功能搭建,Tbuf2mseed模块负责进行数据格式转换功能,Ewmseed Archiver模块负责进行数据文件存档的功能。

    可以通过网址http://folkworm.ceri.memphis.edu/ew-doc/#overview下载最新的Earthworm安装源码包进行安装。目前福建省烈度计系统采用的最新版已更新为v7.9版,版本之间的主要区别在于系统模块功能的差异(Earthworm官方网址,2015)。

    Earthworm源码包目录结构主要有bin,environment,ewdoc,include,include_app,params,src,lib等,下面分别对该源码目录功能进行解释:

    (1)bin目录为系统可执行程序存放位置;

    (2)environment目录为系统环境变量存放位置;

    (3)include目录为系统文件存放位置;

    (4)include_app目录为系统程序应用存放位置;

    (5)params目录为各程序参数配置文件存放位置;

    (6)src目录为软件源码存放位置,可单独重新编译;

    (7)lib目录为程序执行所依赖库文件存放位置。

    (1)安装Earthworm前的环境准备

    在安装Earthworm前,系统需要先安装make、gcc、java这3个软件,用于对Earthworm的程序包进行编译,3个软件的安装均可以通过yum源进行安装,命令如下:

    yum install –y make & & yum install –y gcc & & yum install–y java

    (2)创建安装目录结构

    当前系统采用的是CentOS 7,64位操作系统进行搭建,我们在根目录下创建一级目录xmzk,然后再创建二级目录earthworm,earthworm目录下分别创建run目录与earthworm_7.9源码包,然后在run目录下分别创建params目录与logs目录,目录结构如下所示:

    /xmzk

         /earthworm

            /run

              /params(各程序参数配置位置)

              /logs(各程序日志文件存放位置)

              /data(各台站接收数据存放位置)

            /earthworm_v7.9(源码包)

    (3)拷贝全局参数与环境变量至安装目录

    将/xmzk/earthworm/earthworm_v7.9/environment目录中的earthworm_global.d、earthworm. d、ew_linux.bash这3个文件拷贝至/xmzk/earthwom/run/params中。

    (4)修改安装环境配置文件

    安装Earthworm需要变更第二步拷贝至/xmzk/earthwom/run/params中的ew_linux.bash这个环境配置文件中几处环境变量的值,以适应我们自己的安装环境与配置需求,主要有以下6处需要变更:

    ① export EW_HOME=/home/xmzk/earthworm    #定义Earthworm安装位置的环境变量

    ② export EW_VERSION=earthworm_7.9    #定义Earthworm版本的环境变量

    ③ export EW_RUN_DIR=/home/xmzk/earthworm/run   #定义Earthworm运行位置的环境变量

    ④ export EW_PARAMS=/home/xmzk/earthworm/run/params   #定义Earthworm各模块参数档位置的环境变量

    ⑤ export EW_LOG=/home/xmzk/earthworm/run/logs    #定义Earthworm日志文件存放位置的环境变量

    ⑥ export EW_DATA_DIR=/home/xmzk/earthworm/run/data   #定义Earthworm波形数据文件存放位置的环境变量

    (5)拷贝启动文件

    拷贝Earthworm源码包里params文件夹中的“startstop_unix.d”启动程序至/home/xmzk/ earthworm/run/params中,并根据自己的环境在文件中增加与删除功能模块。

    (6)Earthworm运行与开机自启动

    打开终端命令行,键入“startstop”命令开启Earthworm,如果命令行中提示各模块为alive说明earthworm运行正常,如有些模块出现zoombi的字样说明该模块未正常工作,需单独检查该模块,逐一排错,对其重新加载或编译。

    可以通过以下几个步骤添加任一模块功能:

    第一步:编译该模块的源码,编译模块功能命令:make–f makefile name(模块名称),执行完可生成该模块的可执行程序;

    第二步:将编译完成后的可执行程序拷贝至/xmzk/earthworm/earthworm_v7.9/bin目录下;

    第三步:修改earthworm.d文件,在earthworm.d文档中新增写入该模块名称id与该模块数据类型,使得Earthworm系统可识别出该模块;

    第四步:复制该模块的参数配置文件拷入/home/xmzk/earthworm/run/params中;

    第五步:修改startstop.d文件,增加新的模块,在startstop.d文档中写入该模块的执行文件名称与配置文件名称。startstop.d参数档的作用主要是定义ring的个数与定义需要开启多少模块,需要开启的模块功能均需写入该文件中;

    第六步:执行recon命令,重载startstop_unix.d文件,即可将该模块加载到现在运行的Earthworm环境中。

    该模块主要通过修改/home/xmzk/earthworm/run/params/palert2ew.d的参数文件进行配置,其主要参数设置说明如下:

    该模块主要通过修改/home/xmzk/earthworm/run/params/Wave_serverV.d的参数文件进行配置,其主要参数设置说明如下:

    该模块主要通过修改/home/xmzk/earthworm/run/params/pick_eew.d的参数文件进行配置,其主要参数设置说明如下:

    该模块主要通过修改/home/xmzk/earthworm/run/params/tcpd.d的参数文件进行配置,其主要参数设置说明如下:

    该模块主要通过修改/home/xmzk/earthworm/run/params/shakemap.d的参数文件进行配置,其主要参数设置说明如下:

    该模块的主要通过修改/home/xmzk/earthworm/run/params/ewmseed Archiver.d的参数文件进行配置,其主要参数设置说明如下:

    在Earthworm应用的过程中,对一些常用命令进行了总结,如表 1Earthworm官方网址,2010)。

    表 1  Earthworm常用命令
    Table 1.  Commonly used commands of Earthworm
    序号 命令 作用 示例
    1 startstop 在计算机上启动和停止所有Earthworm模块,这个模块是Earthworm系统的核心
    2 restart 手动重新启动单个模块
    3 recon 允许向正在运行的Earthworm添加新模块或RING
    4 pau 完全关闭Earthworm和所有模块/RING pau startstop_nt.d
    5 stopmodule 给定一个Earthworm模块进程ID,stopmodule停止它,startstop将其标记为“Stop”,以防止statmgr重新启动它 用法:Stopmodule < process_id > < 可选:startstop配置文件 >
    6 quit 关闭earthworm系统
    7 restart 重启系统中任何一支模块 restart module id
    8 status 输出到屏幕EARTHWORM RING和模块的状态。 status < optional:startstop config file >
    9 sac2tb 将sac文档转成tank文档 sac2tb [-n max-samples] infile > > outfile
    10 ms2tb 将miniseed文档转成tank文档 ms2tb [-n max-samples] infile > > outfile
    11 remux_tbu 将地震观测数据资料按时间进行排序 remux_tbuf < demuxed_file > < outputfile >
    12 tankcut 将地震观测数据进行剪切 tankcut -s StartTime [-e EndTime|-d Duration] intank outtank all times for -s and -e options must be in YYYYMMDDHHMMSS format
    13 dumpwave 将tank二进制文档转成ASCII文档 dumpwave < filename > < optional:pinno >
    14 Findwave 查看数据池中是否已接收到地震波形数据 Findwave WAVE_RING 80 1 out.txt w
    15 Sniffwave 显示服务器每秒收到封包值 Sniffwave WAVE_RING L001 HLZ TW–y
    16 getmenu 检查waveserverV是否存活,有哪些资料 Getmenu 127.0.0.1:16001
    下载: 导出CSV 
    | 显示表格

    Earthworm地震数据处理系统可以通过swarm实时波形查看工具实时查看接收到的地震波(图 2),下载地址:https://volcanoes.usgs.gov/software/swarm/download.php

    图 2  地震波形实时查看
    Figure 2.  Real-time seismic waveforms

    福建省地震局Earthworm系统硬件配置采用一台HP DL580 Gen9服务器,4颗Inter至强E7-4820v3型号CPU,内存128GB,从系统截图(图 3)观察Earthworm各模块的资源利用率相对较低。

    图 3  Earthworm硬件资源使用情况
    Figure 3.  Earthworm hardware resource usage

    Earthworm数据录入规则是一秒钟一个封包,采样数据分别录入到各自的RING中,均可通过命令sniffwave查看获取的数据结构,通过sniffwave命令查得RING中每秒钟的数据结构如图 4所示,主要包括台站名称、数据封包时间、封包序列号、包长度、波长电频信号等信息。

    图 4  PICK_RING数据结构信息
    Figure 4.  Information of PICK_RING data structure

    Earthworm系统在地震到来时获取4个台站数据后就可以触发计算,但还需验算,通过pick_eew进行P波拾取,再通过tcpd模块产出地震报告,主要工作流程如下:

    第一步:进行autopicking工作,若autopicking的pa及pv大于执行模块参数文件设定值,则将数据放进PICK_RING里。执行模块的参数文件中提到的其中一个档案就是设定picking条件的档案;

    第二步:tcpd模块会先以PICK_RING的数据进行grouping。采用Geiger method,如果RMS太大,则剔除RMS最大的测站,若小于4个测站则停止计算,若是grouping的触发测站达到6站则继续执行计算;

    第三步:计算震源坐标(xyz)以及发震时间t。利用(xyz)计算到各个测站的理论走时;

    第四步:发震时间加上理论走时,就是理论到时。如理论到时与autopicking的残差residual太大,则回到第三步,重新计算新的震源(x',y',z'),执行后续的步骤。如果residual一直无法收敛,则会将residual最大的测站剔除,再重新计算,若测站数小于4站,则停止计算。

    通过该系统接收数据并进行分析,得到地震报告的产出如图 5

    图 5  地震事件报告
    Figure 5.  Report of earthquake events

    通过系统中产生的数据得到的PGA地震加速度峰值分布图如图 6所示。

    图 6  PGA加速度峰值分布图
    Figure 6.  Distribution of PGA

    Earthworm系统引进了搭积木式模块化架构理念,将地震数据处理功能需求整合为6个软件模块,即数据接收模块、实时波形查看、自动震相拾取、定位与震级计算、数据格式转换、数据文件存档,各模块各司其职又相互关联。各模块之间分工明确,结构简单,具有优秀系统架构的稳定性、跨平台性、安全性、可扩展性、可定制化等特点。Earthworm系统运行稳定,功能强大,深受用户好评。其模块化设计,将庞大的系统功能分布运行于多台服务器,降低软件系统对服务器的性能要求,且架构配置简单,适合在各种不同规模的地震台网进行部署,用户可以根据自己的需求采用不同方法组建系统。

  • 图  1  基于Earthworm数据处理系统架构流程图

    Figure  1.  Processing flow-chart of the Earthworm-based data system

    图  2  地震波形实时查看

    Figure  2.  Real-time seismic waveforms

    图  3  Earthworm硬件资源使用情况

    Figure  3.  Earthworm hardware resource usage

    图  4  PICK_RING数据结构信息

    Figure  4.  Information of PICK_RING data structure

    图  5  地震事件报告

    Figure  5.  Report of earthquake events

    图  6  PGA加速度峰值分布图

    Figure  6.  Distribution of PGA

    表  1  Earthworm常用命令

    Table  1.   Commonly used commands of Earthworm

    序号 命令 作用 示例
    1 startstop 在计算机上启动和停止所有Earthworm模块,这个模块是Earthworm系统的核心
    2 restart 手动重新启动单个模块
    3 recon 允许向正在运行的Earthworm添加新模块或RING
    4 pau 完全关闭Earthworm和所有模块/RING pau startstop_nt.d
    5 stopmodule 给定一个Earthworm模块进程ID,stopmodule停止它,startstop将其标记为“Stop”,以防止statmgr重新启动它 用法:Stopmodule < process_id > < 可选:startstop配置文件 >
    6 quit 关闭earthworm系统
    7 restart 重启系统中任何一支模块 restart module id
    8 status 输出到屏幕EARTHWORM RING和模块的状态。 status < optional:startstop config file >
    9 sac2tb 将sac文档转成tank文档 sac2tb [-n max-samples] infile > > outfile
    10 ms2tb 将miniseed文档转成tank文档 ms2tb [-n max-samples] infile > > outfile
    11 remux_tbu 将地震观测数据资料按时间进行排序 remux_tbuf < demuxed_file > < outputfile >
    12 tankcut 将地震观测数据进行剪切 tankcut -s StartTime [-e EndTime|-d Duration] intank outtank all times for -s and -e options must be in YYYYMMDDHHMMSS format
    13 dumpwave 将tank二进制文档转成ASCII文档 dumpwave < filename > < optional:pinno >
    14 Findwave 查看数据池中是否已接收到地震波形数据 Findwave WAVE_RING 80 1 out.txt w
    15 Sniffwave 显示服务器每秒收到封包值 Sniffwave WAVE_RING L001 HLZ TW–y
    16 getmenu 检查waveserverV是否存活,有哪些资料 Getmenu 127.0.0.1:16001
    下载: 导出CSV
  • 马强, 2008. 地震预警技术研究及应用. 哈尔滨: 中国地震局工程力学研究所.
    王喆, 2006.高速铁路地震预警及快速反应系统研究.世界轨道交通, (6):44-46. http://www.cqvip.com/QK/87550X/200606/22047825.html
    吴永权, 黄文辉, 2010.数据处理系统软件JOPENS的架构设计与实现.地震地磁观测与研究, 31(6):59-63. https://www.wenkuxiazai.com/doc/90776b60e53a580217fcfe49.html
    Earthworm官方网址, 2015. Earthworm Documentation V7. 9. (2015-04-24). http://folkworm.ceri.memphis.edu/ew-doc/.
  • 期刊类型引用(2)

    1. 郭铁龙,闫恩辉,邹立晔. 震相关联方法在国家数字地震台网地震实时监测系统的应用. 地震地磁观测与研究. 2021(04): 200-205 . 百度学术
    2. 李晓锐,常姣,刘国俊,张娜,姚林鹏. Earthworm系统实时数据接入模块的设计与实现. 山西地震. 2019(04): 31-33 . 百度学术

    其他类型引用(0)

  • 加载中
图(6) / 表(1)
计量
  • 文章访问数:  88
  • HTML全文浏览量:  26
  • PDF下载量:  9
  • 被引次数: 2
出版历程
  • 收稿日期:  2017-07-05
  • 刊出日期:  2018-03-01

目录

/

返回文章
返回