APP下载

基于Python的地震烈度速报软件的设计与应用

2019-10-22薛蕾王遹其付萍

科技与创新 2019年19期
关键词:速报烈度作图

薛蕾,王遹其,付萍

基于Python的地震烈度速报软件的设计与应用

薛蕾,王遹其,付萍

(厦门地震勘测研究中心,福建 厦门 361000)

烈度速报是利用强震台网的地震记录,由计算机自动生成地震烈度图的应用系统。相比传统宏观烈度评定,能在很短的时间内了解震情信息,为政府决策和救灾工作提供指导。利用Python环境下的地震学专业软件包Obspy以及图形工具Matplotlib编写了烈度速报的软件。该软件可实现自动触发、计算分析、作图和推送等功能。

Python;ObsPy;烈度速报;软件设计

地震烈度是衡量地震影响程度大小的重要参数,传统的宏观烈度评定需要在震后依靠技术人员进行现场调查后确定。在发生影响范围广破坏性强的地震后,烈度评定可能要花费数天时间才能完成,但政府决策和救灾工作的现实需要往往需要在震后第一时间了解这方面的信息。

基于这些现实需要,烈度速报系统应运而生。它是利用强震台网记录到的地震观测数据,由计算机自动生成地震烈度图的应用系统。近年来国内外在这方面开展了很多研究和应用,如美国的Shakemap系统、福建省地震局烈度速报系统、云南省地震局烈度速报系统[1]等。

1 系统设计与实现

本文依托国家地震烈度速报和预警工程建设的简易烈度计台网,采用Python编写了烈度速报软件,可实现自动触发计算,作图并推送用户。

1.1 编程语言和平台

软件使用Python语言编写,主要使用面向地震学应用的ObsPy软件包进行地震数据的分析计算,应用面向科学绘图的Matplotlib软件包对计算结果进行图件绘制。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python是由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。近年来,由于互联网、大数据及人工智能等方面的发展,Python以其简洁、优雅、易用等特性越来越受到各行各业研究人员的青睐。

为使地震学的研究能应用Python中功能强大的Numpy和Scipy的数值处理和分析工具,ObsPy在Numpy的基础上实现了特定领域的时间序列库,使地震学研究进入Python生态[2]。ObsPy能够读取多种地震学文件格式,自带多种地震学处理工具,并能利用Python强大的科学计算生态系统,用简单的代码实现复杂的分析和计算。

Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台交互式环境的出版物质量数据。Matplotlib只需几行代码即可生成绘图,如直方图、功率谱、条形图、误差图、散点图等。

1.2 软件设计

1.2.1 设计思路

软件拟实现的功能:在秒级尺度上对地震信息服务器进行监控,当有地震发生时,进行分析计算和作图,最后把计算成果和图件生成报告推送给用户。地震发生后,软件利用地震速报目录中的地震三要素信息作为触发源,在数据服务器请求地震发生时段的台网数据;根据一定的算法,做仪器烈度分布的计算成图和信息推送。

1.2.2 系统架构及功能实现

系统架构如图1所示,烈度速报软件采用模块化设计,根据要实现的功能分割为相应的独立模块。

图1 系统架构图

监控和触发判定功能由监控和触发判定模块实现:监控模块每秒监控地震信息服务器,当地震发生,有新的地震报告生成时,按照预设条件进行判断,则触发下一模块。

计算成图功能由解析发震信息模块、请求数据模块、计算模块和作图模块实现:前序模块触发后,由发震信息解析模块从地震信息服务器提取该地震事件的报告进行解析,获取发震信息;数据请求模块按照发震时间从地震数据服务器请求该时段的波形数据;而后计算模块根据仪器烈度算法,计算每个台站各个方向和三方向合成的pga、pgv,最后得出仪器烈度,生成烈度报告;作图模块根据各个站点的仪器烈度值绘制站点仪器烈度图,同时在站点展布区域上对各个台站的仪器烈度值进行内插,绘制区域仪器烈度等值线图。

推送功能结果推送模块实现:将以上模块得到的文字报告和图件进行分析,提取重要信息。利用微信企业号中开发者工具生成图文报告,发送至用户手机。

1.3 算法

在国家地震烈度速报和预警工程福建示范区建成试运行后,为烈度速报提供了高密度的台网数据支持。福建处于国家地震烈度速报和预警工程的重点预警区,平均台间距约为12 km。由于台间距很小,不用插值已基本可以得到地震的分布情况[3-4]。本文采用中震测发〔2015〕18号《仪器地震烈度计算暂行规程》中推荐的算法对每个台站进行计算。计算流程如图2所示。

2 实际应用

本文依托福建省简易烈度计台网部署了上述软件,数据源来自Palert Advance(共计320台);数据服务器为freeBSD11.1系统和JOPENS6.08流服务器,数据存储格式为miniseed;地震信息来源为地震速报目录(eqim);计算服务器为Ubuntu18.04.2LTS系统,应用软件包主要为Python3.7.2,obspy1.1.0,matplotlib3.0.3。

2.1 响应时间

软件从2019-04开始部署并运行,截至2019-07,福建台网内的28次地震事件均能自动触发,计算作图和推送结果。系统触发后,一般在90 s(平均)后可运行完毕。其中用时最少的是2019-06-04台湾台东6.4级地震,用时76.1 s;用时最多的是2019-04-01台湾新北3.7级地震,用时111.6 s。地震事件处理时效性统计如表1所示。

图2 地震仪器烈度计算流程图

表1 地震事件处理时效性统计表

序号时间地震事件获取报告/s读取数据/s计算/s作图/s推送/s总耗时/s 12019-04-01台湾新北3.7级地震30.13.235.537.75.1112 22019-04-03台湾台东县5.7级地震30.13.519.731.94.790 32019-04-04台湾台东县5.1级地震30.43.319.934.94.993 42019-04-08台湾台东县海域4.4级地震30.15.119.427.94.987 52019-04-09台湾花莲县海域5.0级地震30.25.219.633.24.793 62019-04-10台湾花莲县海域4.3级地震30.44.519.731.94.691 72019-04-10台湾花莲县海域4.0级地震30.44.719.833.34.793 82019-04-16台湾海峡3.5级地震30.56.219.136.44.397 92019-04-18台湾花莲县海域6.7级地震30.58.918.635.24.698 102019-04-20广东南澳县海域2.2级地震30.24.719.633.84.993 112019-05-09台湾宜兰县海域3.8级地震30.15.720.334.65.196 122019-05-13台湾宜兰县海域3.9级地震30.45.919.735.64.696 132019-05-22台湾花莲县海域4.0级地震30.46.119.945.94.7107 142019-05-23台湾花莲县海域4.1级地震30.13.719.629.95.289 152019-05-23台湾花莲县海域4.5级地震30.1619.621.26.884 162019-05-31台湾高雄市4.2级地震30.211.519.528.17.297 172019-06-04台湾台东县海域5.8级地震30.34.219.215.96.576 182019-06-06台湾花莲县海域3.8级地震30.36.519.420.66.984 192019-06-18台湾海峡3.8级地震30.33.518.720.26.880

表1(续)

序号时间地震事件获取报告/s读取数据/s计算/s作图/s推送/s总耗时/s 202019-06-30台湾台东县海域4.5级地震30.56.719.823.26.987 212019-07-12先岛群岛5.1级地震30.22.919.726.86.886 222019-07-19巴坦群岛4.2级地震30.44.419.520.66.882 232019-07-22台湾屏东县海域4.2级地震30.45.319.927.96.690 242019-07-23台湾东北4.6级地震30.44.719.819.87.182 252019-07-26台湾宜兰县3.5级地震30.46.220.131.26.995 262019-07-26巴坦群岛海域4.1级地震30.54.520.119.97.282 272019-07-27巴坦群岛海域5.3级地震30.5520.120.36.883 282019-07-27巴坦群岛海域5.1级地震30.53.82019.56.781

2.2 运行效果展示

近期福建地区未发生破坏性地震,为验证软件运行效果,本文以2018-11-26台湾海峡6.2级地震事件作为模拟,触发软件计算,微信接收地震报告如图3所示。

3 结论与讨论

使用Python语言和其提供的ObsPy、Matplotlib软件包编写地震烈度速报软件,可以实现自动触发、分析计算作图和推送功能。通过在福建省简易烈度计台网中的测试发现,该软件可以稳定可靠运行,并实现预设的功能。该软件可完全实现自动触发、无人值守。当有地震发生时,立即触发运行。在软件收到触发信息后,平均90 s左右可完成全部步骤,保守估计2 min内可收到地震烈度速报信息;成果推送到微信,可精准投放到目标用户。

问题和讨论:目前的触发依赖于地震速报目录,如果地震速报有延迟,也会造成结果产出延迟;软件部署运行以来,主要受台湾及周边地震影响,震级小距离远。在极端情况下的可靠性尚需验证。因此下一步要提高极端条件下整个运行系统的稳定性,继续优化容量和性能;寻找更加快速稳定的地震速报作为触发源,继续提升时效性;并在此基础上,针对不同用户定制更加精细化差异化的产品。

[1]杨黎薇,段洪杰,林国良,等.基于JavaEE设计模式的烈度速报建设与应用[J].世界地震工程,2018(2):147-156.

[2]KRISCHER L,MEGIES T,BARSCH R,et al.ObsPy:将地震学引入科学Python生态系统的桥梁[J].世界地震译丛,2016,47(4):344-357.

[3]王士成,金星,张红才,等.台网密度对地震烈度速报的影响研究[J].地震工程与工程振动,2017(6):162-168.

[4]张红才,王士成.地震烈度速报产品可靠性分析[J].地震工程与工程振动,2016(5):65-75.

P315.7

A

10.15913/j.cnki.kjycx.2019.19.062

2095-6835(2019)19-0146-03

〔编辑:严丽琴〕

猜你喜欢

速报烈度作图
烈度速报子系统在2021年云南漾濞MS6.4地震中的应用
2021年云南漾濞MS6.4地震仪器地震烈度与宏观地震烈度对比分析
高烈度区域深基坑基坑支护设计
不一样的角平分线作图
来自2019年天津市中考作图题的挑战
作图题答题技巧
尺规作图检测题