基于Python开发的地震余震序列统计程序

2024-05-18 13:01:04孟令升刘爱华张雁翔马龙辰徐建权
科技创新与应用 2024年14期
关键词:发震主震余震

孟令升 刘爱华 张雁翔 马龙辰 徐建权

摘  要:我国是世界上地震活动最严重的国家之一。地震活动频次高、强度大、灾害重、影响广,2008年汶川地震给人民群众生命财产造成严重损失,给整个国家的经济社会发展造成深远影响。汶川地震后,中国地震局深刻总结与反思,要求地震行业提高为社会各界提供地震专业信息服务的能力。余震序列作为震后紧急会商的重要资料,其统计的时效性要求也相应提高。近年来,Python语言在数据库处理、数据统计处理、程序开发方面已成为新的趋势。余震序列统计程序基于Python语言开发,利用该程序,对地震编目数据库数据进行筛选、导出、整理,并产出符合上报要求的Word文档,实现对地震余震序列的即时产出。利用该程序进行余震统计,可极大地减轻地震一线工作人员工作量,为科研人员判断地震趋势和政府部门制定救援方案提供更加及时准确的数据,有效助力开展地震应急救援工作。

关键词:Python;余震统计;程序研发;地震余震序列;地震监测

中图分类号:P315.61      文献标志码:A          文章编号:2095-2945(2024)14-0046-04

Abstract: China is one of the most seismically active countries in the world. Seismic activity has high frequency, high intensity, serious disasters and wide impact. The 2008 Wenchuan earthquake caused serious losses to people's lives and property, and had a far-reaching impact on the economic and social development of the whole country. After Wenchuan Earthquake, the China Earthquake Administration made a profound summary and reflection, requiring the earthquake industry to improve its ability to provide professional earthquake information services for all sectors of the community. Aftershock sequence as an important data for emergency consultation after the earthquake, the timeliness requirement of aftershock sequence statistics is also improved accordingly. In recent years, Python language has become a new trend in database processing, data statistical processing and program development. The statistical program of aftershock sequence is developed based on Python language. Using this program, the data of earthquake cataloging database are screened, exported and sorted out, and the Word documents that meet the reporting requirements are produced, and the immediate output of earthquake aftershock sequence is realized. Using this program for aftershock statistics can greatly reduce the workload of earthquake front-line workers, provide more timely and accurate data for researchers to judge earthquake trends and government departments to formulate rescue plans, and effectively assist the development of earthquake emergency rescue work.

Keywords: Python; aftershock statistics; program development; earthquake aftershock sequence; earthquake monitoring

地震又稱地动、地振动,是地壳快速释放能量过程中造成的振动,期间会产生地震波的一种自然现象。地球上板块与板块之间相互挤压碰撞,造成板块边沿及板块内部产生错动和破裂,是引起地震的主要原因。地震会造成各种破坏和灾害,包括建筑物倒塌、土地滑坡、火灾和海啸等。地震的发生通常会伴随着余震的出现,这些余震可能会对地震灾区造成进一步的破坏。

余震信息是地震趋势研判的重要依据,利用余震目录的参数信息,可有效反映震区的地震活动、地震周期、序列及发震构造等情况。根据《测震台网运行管理细则(2015 修订版)》要求,主震震中所在省级台网中心负责余震序列与震群快报目录和正式目录的处理与报送。2021年中国地震局下发《关于进一步规范余震信息统计报送和发布工作的函》,对余震信息统计报送工作做了进一步规定。根据相关规定时限要求,人工编制余震序列目录并编写报告,已无法满足应急工作需求。如2017年8月8日21时19分46秒在四川阿坝州九寨沟县(北纬33.2°,东经103.82°)发生7级地震,至2017年8月17日14时,共记录到地震总数4 799个(余震总数4 798个)。其中7.0~7.9级地震1次,6.0~6.9级地震0次,5.0~5.9级0次, 4.0~4.9级3次,3.0~3.9级28次。编目人员整理、汇编、复核后产出并上报,工作量大、耗时长、效率低,还极易产生错误。这就需要能够自动编辑并快速产出余震序列目录,才能按时完成余震序列报告上报,及时提供给科研人员和政府部门参考。

1  程序设计与实现

1.1  程序功能设计

程序GUI界面采用PyQt5設计开发。Qt是一个跨平台的应用程序开发框架,提供了丰富的GUI组件,可以用于创建桌面应用程序、移动应用程序和嵌入式应用程序。友好的操作界面,使得工作人员可以通过相对简单的操作即可实现数据的下载、处理和生成报告等功能,软件开发流程如图1所示。

程序基于地震编目数据库,利用Python的数据分析模块(pandas)、文档编辑模块(docx)、表格编辑模块(openpyxl)等功能模块,实现以下功能。①数据采集:程序从数据库获取地震数据,包括主震和余震在内的全部地震事件信息,采集到的信息将以Excel表格格式保存,并将筛选出来的主震信息以下拉菜单的形式在程序主界面上展示。②数据处理:程序将对获取的地震数据进行处理,根据主震发震时间、位置等信息,提取出相应余震序列,余震序列主要信息以列表形式在程序主界面展示。使用者可根据需要对余震列表进行增、删、改等操作。③统计分析:程序将对余震序列进行统计分析,包括计算余震的总数、最大震级、震级分布等情况。这些统计结果将有助于评估地震活动的强度和趋势。④报告生成:程序将根据统计分析的结果,生成余震统计报告。报告中包含标题、余震情况描述和地震参数列表组成。余震情况描述需详细地描述主震地震三要素,到截止时间记录余震总次数,并按照不同震级统计次数。地震参数列表需包含截止时间、发震时刻、震中经纬度、震源深度、震级和参考地名等信息。报告最终以Word和Excel格式保存相关信息。

1.2  实现代码

根据中国地震局余震统计相关要求,主震需筛选震级在3.0级以上的本省地震,余震根据主震震级不同,筛选2.0级或3.0级以上地震。并以正式编目结果为准。因此,在事件筛选过程中,将编目类型、中文地名、发震时间、经纬度等信息均作为筛选条件。为方便使用者快速修改目录,本程序增加了对余震序列列表增、删、改的功能。余震统计报告需对各震级余震分段统计。程序采用如下代码实现相应功能。

1)连接服务器数据库并筛选符合条件的主震事件,主要选取了数据库中事件类型代码Auto_flag、震级M、震中中文地名Location_cname、发震时刻O_time等信息作为筛选条件。筛选出来的主震信息以Excel存储,并实现存储事件信息在GUI下拉菜单中显示,测试结果如图2所示,部分代码如下。

for sh_name in data.keys():

sh_data = pd.DataFrame(pd.read_excel(‘./*.xlsx, sh_name))

for ll in sh_data[‘Cata_name]:

self.comboBox.addItem(ll)

self.comboBox.currentIndexChanged.connect(self.selchange)

2)为方便余震信息核对、修改,将筛选出的余震信息在GUI界面显示,并实现增、删、改功能,测试结果如图3所示,部分代码如下。

#余震信息显示

self.tableWidget.setRowCount(dataYZa.shape[0])

self.tableWidget.setColumnCount(dataYZa.shape[1])

self.tableWidget.setHorizontalHeaderLabels(dataYZa.columns)

for i in range(dataYZa.shape[0]):

for j in range(dataYZa.shape[1]):

self.tableWidget.setItem(i,j,TableWidgetItem(str(dataYZa.iloc[i, j])))

#余震信息修改

row = self.tableWidget.rowCount()

self.tableWidget.insertRow(row)

msg = QMessageBox()

msg.setWindowTitle('提示')

msg.setText('生成报告前请保存修改内容')

msg.setStandardButtons(QMessageBox.Ok)

rows = self.tableWidget.selectionModel().selectedRows()

for i in rows:

self.tableWidget.removeRow(i.row())

msg = QMessageBox()

msg.setWindowTitle('提示')

msg.setText('生成报告前请保存修改内容')

msg.setStandardButtons(QMessageBox.Ok)

图3  余震信息修改功能测试

3)按照余震统计报告内容,需统计出各震级区间地震数量,如4.0~4.9级、…、2.0~2.9级等,以方便分析人员使用,测试结果如图4所示。部分代码如下

data_score3 = dataS[dataS[‘M] > 3]

if len(data_score3) >= 1:

num3 = int(len(data_score3) - 1 - num4)

else:

num3 = len(data_score3)

2  軟件功能及测试

本程序设计了GUI人机交互界面,实现了余震序列统计报告产出所需的相应功能,如图5所示。①主震功能区,通过选择需要处理分析的主震事件,提取显示发震时刻、二级地名2项主要信息,并根据选择的主震自动筛选相应的余震信息。②余震筛选条件功能区,通过设置余震筛选条件,确定余震选取的截止时间、震级下限、经纬度范围。③余震列表功能区,显示筛选出来的余震列表,包括发震时刻、震中经纬度、震源深度、震级和震中地名等信息,并提供人工修改余震列表功能,可增加或删除余震条目,确定余震列表后产出余震统计报告。

程序开发完成后,选取了2021年1月24日发生在黑龙江讷河的3.0级地震事件,对程序各项功能进行测试。程序按照设计在编目服务器数据库获取地震编目结果,截止日期修改为2021年4月1日0时,震级下限1级,经纬度范围1°,与人工校核对比,余震列表产出完整,符合余震统计需求,分震级统计余震个数准确,余震统计报告产出符合规定要求,产出报告如图6所示。经过测试,并与人工校核、编辑报告相比,产出速度更快、结果准确可靠、程序功能设置合理、使用便捷,能够满足地震余震序列统计的相关要求。

3  总结

通过开发这款地震余震序列统计程序,黑龙江地震台可以实现更快速、准确地产出余震统计报告。该程序的研发,满足了地震发生后余震统计工作的切实需求,提高了余震目录的产出效率,提高了业务自动化水平,为提升黑龙江地震台地震监测和速报能力提供了必要的技术支撑。当然程序设计还存在一些不足,将在后续的工作中进一步完善。

参考文献:

[1] 赵杰,郑树平,王飞剑.基于遥感影像的区域房屋抗震能力评估——以山西省忻州市为例[J].山西地震,2022(1):17-20.

[2] 谢君.多灾背景下档案馆建筑安全风险评估体系研究[J].中国档案,2013(12):55-57.

[3] 陈经纶,李杰飞,苗春兰,等.基于泸定MS6.8地震的应急余震序列自动统计程序研发[J].地震地磁观测与研究,2022,43(5):193-198.

[4] 金艳,张佑龙,刘川琴,等.安徽省数字化地震编目工作[J].地震地磁观测与研究,2017,38(2):168-171.

[5] 吕永清,向涯,周云耀,等.地震计阶跃标定信号去除方法研究[J].大地测量与地球动力学,2020,40(7):761-764.

猜你喜欢
发震主震余震
基于构造应力场识别震源机制解节面中发震断层面
——以盈江地区为例
“超长待机”的余震
哈哈画报(2022年5期)2022-07-11 05:57:48
基于钻孔应变观测约束的2016年新疆呼图壁M6.2地震的发震断层研究
地震研究(2021年1期)2021-04-13 01:05:08
生死之间的灵魂救赎——《余震》和《云中记》的伦理问题
阿来研究(2019年2期)2019-03-03 13:35:00
芦山地震发震构造及其与汶川地震关系讨论
三次8级以上大地震的余震活动特征分析*
地震研究(2015年4期)2015-12-25 05:33:44
多塔斜拉桥在主震-余震序列波下地震位移研究
结构工程师(2015年5期)2015-06-28 05:54:18
龙卷流旋转与地震成因
利用深度震相确定芦山地震主震及若干强余震的震源深度
地震研究(2014年3期)2014-02-27 09:30:46
1950年察隅8.6级巨震序列的时空分布特征