文章快速检索    
  地震地磁观测与研究  2023, Vol. 44 Issue (6): 138-144  DOI: 10.3969/j.issn.1003-3246.2023.06.020
0

引用本文  

潘国勇, 魏薇, 周伯昌, 等. 基于Python的地震业务自动化处理系统设计与实现[J]. 地震地磁观测与研究, 2023, 44(6): 138-144. DOI: 10.3969/j.issn.1003-3246.2023.06.020.
PAN Guoyong, WEI Wei, ZHOU Bochang, et al. Design and implementation of earthquake business automation processing system based on Python[J]. Seismological and Geomagnetic Observation and Research, 2023, 44(6): 138-144. DOI: 10.3969/j.issn.1003-3246.2023.06.020.

基金项目

上海佘山地球物理国家野外科学观测研究站研究室课题(项目编号:2023SSY06);上海佘山地球物理国家野外科学观测研究站重点课题(项目编号:SSKP202301);上海科技计划项目(项目编号:22dz1200200);上海科技计划项目(项目编号:22dz1201400);上海市财政项目(项目编号:090301)

通讯作者

于海英(1970-), 女, 高级工程师, 主要从事地震学研究工作。E-mail: 6168658@qq.com

作者简介

潘国勇(1988—),男,工程师,主要从事地震监测和仪器运维工作。E-mail:pgycgsyn@163.com

文章历史

本文收到日期:2023-09-08
基于Python的地震业务自动化处理系统设计与实现
潘国勇 1),2)   魏薇 1),2)   周伯昌 1),2)   任烨 1),2)   夏波 1),2)   于海英 1),2)     
1) 中国上海 200062 上海市地震局;
2) 中国上海 200062 上海佘山地球物理国家野外科学观测研究站
摘要:基于实现日常工作由人工处理向自动化智能化转变的目的,采用Python编程语言设计开发地震业务自动化处理系统,实现数据读取、脉冲标定波形的自动截取、相关参数的自动计算以及台基背景噪声的自动分析等功能。该系统的应用,可以使工作人员及时、高效地掌握测震台网整体运行状况,确保资料的准确性和可靠性,不仅降低了值班人员的劳动强度,而且提高了工作效率,对于推进实现台网运维自动化、智能化进程具有重要意义。
关键词Python    自动化    脉冲标定    台基背景噪声    波形截取    
Design and implementation of earthquake business automation processing system based on Python
PAN Guoyong 1),2)   WEI Wei 1),2)   ZHOU Bochang 1),2)   REN Ye 1),2)   XIA Bo 1),2)   YU Haiying 1),2)     
1) Shanghai Earthquake Agency, Shanghai 200062, China;
2) Shanghai Sheshan National Geophysical Field Observation and Research Station, Shanghai 200062, China
Abstract: Based on the purpose of realizing the transformation of daily work from manual processing to automation and intelligence, a seismic business automation processing system was designed and developed using the Python programming language to realize the functions of automatic data reading, automatic extraction of pulse calibration waveform, automatic calculation of relevant parameters, and automatic analysis of base background noise. The application of this system enables the staff to grasp the overall operation status of the seismic network in a timely and efficient manner, ensuring the accuracy and reliability of the data, which not only reduces the labor intensity of the personnel on duty but also improves the work efficiency. It is of great significance to promote the realization of the automation and intelligence processes of network operation and maintenance.
Key words: Python    automation    pulse calibration    base background noise    waveform extraction    
0 引言

标定是检测地震仪性能变化的重要指标,对地震计进行脉冲标定及相关参数计算是测震台网运行维护工作的重要组成部分。脉冲标定幅度和周期变化曲线是参加全国地震观测台网资料评比不可或缺的资料。根据《地震观测技术规范》的规定,台站需要定期进行脉冲标定,并检查其幅度和周期变化情况。当脉冲标定波形的周期发生明显变化或脉冲幅度变化超过5%时,应及时进行检查和修复(廖诗荣等,2002栗连弟等,2007)。在地震业务自动化处理系统开发之前,通常需要从归档数据中手动提取脉冲标定当日数据,然后对每个台站各测项脉冲标定波形的幅度和周期进行人机交互式量取,并将这些数据导入Excel以绘制脉冲变化曲线。这种脉冲标定方式不仅流程繁琐、耗时长,而且容易引入人为误差。

台基背景噪声资料是台址堪选、评估台站观测环境变迁和台站记录质量好坏的重要依据(裴晓等,2012葛洪魁等,2013郑培玲等,2014杨龙翔等,2015许可等,2015李雷等,2017侯颉等,2019姜博等,2020刘光能等,2020潘国勇等,2023)。为确保测震台网数据的高质量产出,需每日进行台基背景噪声数据分析,以及时发现仪器系统和观测环境的变化,采取改进措施来提高数据质量。在开发地震业务自动处理系统之前,主要采用手动截取波形数据来进行分析,无法实现台站和时间范围的自由选择等自动分析功能,不仅效率低而且不便于数据对比和分析。

为了提高脉冲标定和台基背景噪声分析的处理效率和精度,本文采用Python语言,设计开发地震业务自动化处理系统。该系统在测震台网的应用,不仅实现了脉冲标定波形截取、脉冲幅度量取、周期计算以及脉冲变化曲线绘制的自动化,而且实现了台基背景噪声数据时间范围和台站的自由选择,并自动完成波形截取、计算以及功率谱曲线的绘制。

1 开发目的及语言选择

为实现脉冲标定和台基背景噪声分析的自动化、智能化,采用Python语言进行程序设计。

Python作为一种程序设计语言,具有丰富的文档和库、开发效率高、可嵌入性强、面向对象和扩展性强等优点。同时,Python具有易理解(类似于C#)和全面性(类似于Java)的双重优势。随着计算机技术的发展,Python已经成为数据科学和人工智能领域的主导语言。Python具有开源的特点,而且拥有许多针对地震领域开发的第三方库(例如:Obspy库),以及用于数据分析的Pandas扩展程序库,因此选择Python作为开发语言。

开发技术及开发环境介绍见表 1,引用的第三方专业数据处理开源库见表 2

表 1 开发技术及开发环境 Table 1 Development technology and environment
表 2 引用到的第三方专业数据处理开源库 Table 2 Third-party professional data processing open-source libraries used in development
2 功能设计

基于研究目的设计系统功能模块。整个系统主要由数据读取、波形截取、数据分析和图形绘制4大功能模块组成(图 1)。

图 1 功能模块设计 Fig.1 Function module design

(1)数据读取模块:2种读取方式,一种是根据需要直接从本地文件读取,另一种是根据给定的台站、通道、时间等参数直接从上海市地震局服务器读取。

(2)波形截取模块:根据给定的台站、日期、时间范围等参数,可实现脉冲标定波形和背景噪声数据的自动截取。为了日后数据使用方便,截取的数据以SEED、miniSEED和SAC三种国际主流地震数据格式进行保存。脉冲标定波形和背景噪声波形截图以PNG格式保存在指定目录中。

(3)数据分析模块:该功能实现了台站各测项脉冲标定幅度和周期的自动量取和计算。计算结果以Excel格式存入预设的脉冲标定模板,并以“20xx年x月上海市地震局x台的脉冲标定结果”命名。此外,该功能实现了噪声功率谱和地动速度有效值的自动计算。

(4)图形绘制模块:该功能实现了在指定时间范围内指定台站脉冲计算数据从保存目录中的读取,并以时间为横坐标,以脉冲标定参数的数值为纵坐标,绘制脉冲变化曲线。结果以PNG格式输出,并按照设计的命名规则自动生成文件名。此外,为更全面地呈现分析结果,根据噪声功率谱和地动速度有效值计算结果,自动绘制功率谱密度曲线和地动速度有效值曲线,并将结果以PNG格式输出,保存至指定目录中。

3 系统设计 3.1 脉冲标定参数计算及产出 3.1.1 脉冲标定波形截取。

系统根据calibration.ini中配置的脉冲标定数据,输入目录路径及各台站标定时间范围,自动在台站卷的原始观测数据中查找并截取相应数据,作为系统脉冲标定数据处理输入,并保存在脉冲标定数据输出目录中。

CaliProc类实现脉冲标定波形的截取功能。详细设计见表 3

表 3 CaliProc类图 Table 3 CaliProc class diagram
3.1.2 脉冲标定参数计算

系统通过指定的系统输入目录、各台站标定时间范围及标定参数等数据,自动计算脉冲标定相关参数,并以Excel格式文件输出。

PulseProduce类和CalibrationProc类用于脉冲标定计算处理。详细设计见表 4表 5

表 4 PulseProduce类图 Table 4 PulseProduce class diagram
表 5 CalibrationProc类图 Table 5 CalibrationProc class diagram
3.1.3 脉冲变化曲线绘制

系统在保存的目录中读取指定时间范围内指定台站的脉冲标定参数数据,以时间为横坐标,以脉冲参数数值为纵坐标,绘制脉冲变化曲线,并以PNG格式图片输出。

getCalData类用于绘制脉冲变化曲线,其中方法parserPar(parfile)为解析参数文件。绘制脉冲变化曲线的方法代码如下

doCalSin(st0, figfile, outfile, nNetMode, nCalMode, cal_stvt, cal_input, ad_stvt, fTm0, fStart, fEnd, fGain, Freq, nTxtMode=0, language='chinese', nSaveMode=0, pdf=None)

详细设计见表 6

表 6 GetCalData类图 Table 6 GetCalData class diagram
3.2 台基背景噪声数据计算及产出 3.2.1 台基背景噪声波形截取

系统根据给定的截取参数,在台站卷的原始观测数据中自动查找并截取相应数据,生成在台基背景噪声数据输出目录中。

NoiseProc类用于JOPENS产出seed文件中台基背景噪声的截取及计算。详细设计见表 7

表 7 NoiseProc类图 Table 7 NoiseProc class diagram
3.2.2 台基背景噪声数据计算

系统通过指定的系统输入目录、各台站噪声数据时间范围及响应参数等进行台基背景噪声的自动计算,并以Excel格式文件输出。

NoiseProc类为台基背景噪声计算处理类。详细设计见表 8

表 8 NoiseProc类图 Table 8 NoiseProc class diagram
3.2.3 功率谱密度曲线绘制

系统根据噪声功率谱计算结果进行功率谱密度曲线的自动绘制,以PNG格式输出并保存至指定目录。

Produce类和PPSDProduce类用于噪声图产出和PSSD产品的产出处理。详细设计见表 9表 10

表 9 Produce类图 Table 9 Produce class diagram
表 10 PPSDProduce类图 Table 10 PPSDProduce class diagram
4 界面设计

在进行程序界面设计时,秉承简洁实用的原则,以力求实现简单、高效的操作。因此,系统界面仅设计一个窗体,其中设有多个按钮,用于实现不同功能。使用者无需登录即可执行处理操作。

地震业务自动化处理系统的主界面见图 2。考虑到需要连接行业内网才能读取服务器数据,为了方便使用,设计2种读取方式:①本地文件:用户选择已下载的本地文件(标准SEED、miniSEED格式),在本地文件中读取数据,见图 3;②市地震局服务器:根据操作员给定的日期、台站和通道参数,直接从市地震局服务器读取数据,见图 4

图 2 系统主界面 Fig.2 Program main interface
图 3 从本地文件读取数据界面 Fig.3 Interface for reading data from local files
图 4 从服务器读取数据界面 Fig.4 Interface for reading data from servers
5 系统应用评估

地震业务自动化处理系统设计完成后,于2022年4月在上海地震台观测技术研究室部署,目前已投入使用。经测试和试运行,从系统稳定性、脉冲标定分析和台基背景噪声分析3个方面进行系统评估,结果如下:

(1)系统稳定性良好。运行期间,地震业务自动化处理系统工作正常,未出现卡顿或意外终止等故障现象。

(2)脉冲标定分析功能实现。系统能够根据设定的台站、日期和时间范围,截取符合评比要求的脉冲标定波形,并自动量取和计算脉冲标定幅度周期,计算结果准确、真实、可靠。相对于以往手动操作,工作效率大幅提升,人为引入错误大幅下降。

(3)台基背景噪声分析功能实现。系统能够根据设定的台站、日期和时间范围,截取符合要求的波形,并自动计算特定时段某个或多个台站的RMS值,同时自动绘制相应功率谱密度曲线。这一功能的实现不仅提升了工作效率,也确保了台站环境变化的及时发现,促进了改进措施的有效实施。

6 结束语

地震业务自动化处理系统实现了脉冲标定和台基背景噪声波形的自动截取、参数计算以及相关图件的自动绘制等功能,解决了传统分析过程中可能引入的人为错误和效率低下等问题,达到了预期开发目的。为进一步提高工作效率,更快、更准确地完成地震数据处理和分析任务,今后将在此基础上开发正弦标定模块,以实现正弦标定信号的自动处理功能,包括信号的识别、幅度量取和标定参数的确定。

参考文献
葛洪魁, 陈海潮, 欧阳飚, 等. 流动地震观测背景噪声的台基响应[J]. 地球物理学报, 2013, 56(3): 857-868.
侯颉, 余大新, 叶庆东, 等. 北京测震台网台基背景噪声特征[J]. 华北地震科学, 2019, 37(3): 56-61.
姜博, 胡宝慧, 常金龙, 等. 鹤岗地震台台基背景噪声特征分析[J]. 防灾减灾学报, 2020, 36(4): 51-56.
李雷, 钱文品, 邓存华, 等. 昆明地震台地面与井下地震观测背景噪声对比[J]. 地震地磁观测与研究, 2017, 38(5): 86-95. DOI:10.3969/j.issn.1003-3246.2017.05.016
栗连弟, 王建国, 马淑琴, 等. 数字地震台网脉冲标定自动检测软件[J]. 防灾科技学院学报, 2007, 9(1): 29-31.
廖诗荣, 廖春奇, 叶应树. 数字地震台网脉冲标定波形处理系统[J]. 福建地震, 2002(4): 29-31.
刘光能, 巫立华, 林家顺. 大田均溪地震台站台基背景噪声分析[J]. 产业创新研究, 2020(22): 134-136.
潘国勇, 夏波, 刘菲, 等. 上海测震台网数据质量综合分析[J]. 地震地磁观测与研究, 2023, 44(2): 64-72.
裴晓, 尹继尧, 杨庭春. 上海遥测台网各类型台基背景噪声分析[J]. 地球物理学进展, 2012, 27(5): 1897-1903.
许可, 刘瑞瑞, 孔繁旭. 天津地区台基背景噪声特征分析[J]. 内陆地震, 2015, 29(2): 170-175.
杨龙翔, 王志铄, 贾漯昭, 等. 河南省测震台网背景噪声特征分析[J]. 大地测量与地球动力学, 2015, 35(3): 543-546.
郑培玲, 陈力刚, 张亚琳, 等. 河南数字台网子台台基背景噪声分析[J]. 防灾减灾学报, 2014, 30(1): 56-59.