震相报告自动下载与服务系统的设计与实现

2021-12-10 02:49张秀萍陈文胜
现代计算机 2021年30期
关键词:邮件节点流程

张秀萍,陈文胜

(中国地震局第二监测中心,西安 710054)

0 引言

震相报告是进行地震活动性分析、地震危险性评价、地下结构成像、构造研究和地震预测的基础资料,记录地震发生后不同地震监测台站的震相到时(多种震相),包含了地震波在地球内部的传播路径,绝大多数的地震学研究都依赖于震相报告数据,如地震定位、走时成像、地球内部结构研究(莫霍面的深度、地壳的厚度、核幔边界的厚度)。

国家地震台网中心统一编目网站拥有丰富的数据资源[1-2],是各科研单位和台站获取震相报告的主要来源。由于震相数据块中包含大量的数据信息,如台网代码、台站、震相到时、震中距、走时残差等,当按年月下载震相数据时,会重复下载过程,文件数据大、下载耗时,导致网站请求超时甚至崩溃[3],使得业务人员无法及时有效地获取震相报告。

为了提高数据获取效率,利用数据专家Datist(多源数据融合专家应用软件,简称“数据专家”)软件结合Python编程,通过可视化的节点组合完成数据处理的有形化表达,不需要掌握复杂的编程技术即可实现对海量多源数据的整合、查询以及报告生成等批量化处理过程[4],方法简单、效率高。

1 功能原理介绍

数据专家Datist平台是长安大学数字油田研究所研发的,服务于大数据时代场景式(Context)数据分析与数据挖掘的软件工具,其特点在于遵循零代码原则,使用者不需要掌握复杂的编程技术,通过排列、组合可视化的功能节点即可实现数据处理过程[5-6]。目前Datist集成了160多个功能节点,内嵌600多个处理函数,极大地缩减了编程工作量。基于Datist的震相报告自动下载与服务系统的原理总框图如图1所示,包括五部分:后台获取震相报告、震相报告数据分析、震相报告数据处理、震相报告数据产出、震相报告FTP上传与邮件推送。

图1 震相报告自动下载与服务系统原理

首先后台获取震相报告通过设计datist流程,结合Python程序访问下载地址得到震相报告文本,并保存到固定目录下。接着对震相报告文本目录分析,目录中有两种文本。一种是非空文本,这种文本是含有数据的震相报告,文件大小一般为Mb量级;另一种是空文本,统一编目系统中并没有按月整理该月份的震相报告,因此下载得到的是空文件。对空文件进行数据处理,然后与非空文件一起转存,得到完整的震相报告产出。

震相报告更新完毕后会通过邮件及时通知用户,用户输入FTP文件共享口令即可下载震相报告,提高了数据安全性,能够更便捷的对外提供数据共享服务。Datist集成了Python、数据劈分、数据筛选、报告生成等功能节点,避免了冗长的代码编写,具体的实现将在第二部分介绍。

2 功能设计与实现

根据图1原理框图,利用数据专家Datist实现震相报告的自动下载和服务系统的业务流程,具体如图2所示。业务流程功能包括后台获取震相报告数据、震相报告文本分析与处理、震相报告文件保存、震相报告FTP上传与邮件推送,下面介绍各功能的设计思路与实现。

图2 震相报告自动下载与服务系统业务流程

2.1 后台获取震相报告数据设计实现

后台获取震相报告数据的功能设计如图3所示,具体功能实现见图2前两行流程。Datist集成了Python节点,首先将登录网站和月震相数据下载的代码放到Python节点中,运行Python节点即可访问下载地址得到震相报告文本。其次对下载地址中的时间参数进行更新替换,通过Datist流程变量实现更新下载地址链接中的时间参数,下载不同时间的震相报告,并将其保存在固定目录下。

图3 后台获取震相报告功能设计示意图

2.2 震相报告文本分析与处理设计实现

震相报告文本分析与处理的功能设计如图4所示,具体功能实现见图2第三行至第八行流程。首先扫描震相报告文件目录,筛选出目录中的空文本。其次提取空文本名称中的月份信息,拼接到震相总条目下载地址中,获取到该月份的震相总条目文本(图2第三、四行流程)。接着对获取到的震相总条目文本的内容进行筛选,过滤经度、纬度、深度、地点等其他信息,保留发震日期和年份等时间戳信息并按月份保存为文本(图2第五行流程)。

图4 震相报告数据分析与处理功能设计示意图

每个文件中记录了当前月份下所有的发震时刻,记录格式为年月日时分,如202101010036,表示2021年1月1日0点36分。将该发震时刻拼接到震相报告下载地址中,获取该时刻下所有台站的震相报告(图2第六行流程)。图2第六行流程中有两个并列的Python节点,第一个放置日期去重和按日期下载震相报告的代码;第二个放置重复日期循环下载震相报告的代码。

2.3 震相报告文件保存功能设计实现

转存的震相报告文本是按照发震时刻保存的独立文件,同一发震时刻会有多个震相报告文件,需要将同一月份下的震相报告文件合并为一个文件。具体功能实现见图2第九行至第十一行,步骤如下:

(1)将震相报告文本头和文本尾分别保存在一个文件中。

(2)选取同一月份下的多个震相报告,筛选删除多个震相报告的文本头和文本尾。

(3)合并文本头文件、处理后的多个震相报告文件、文本尾文件,并按月份保存。

2.4 震相报告FTP上传与邮件推送功能设计实现

震相报告FTP上传与邮件推送具体功能实现见图2最后两行,Datist集成了FTP上传节点和邮件节点,对节点属性进行编辑,即可快速实现震相报告的FTP共享和推送。FTP上传节点属性设置见图5所示,设置步骤如下:

图5 FTP上传节点属性设置窗口

(1)引入“表格数据”节点,设置FTP的上传路径、内容和文件名称。

(2)引入“FTP上传”节点,与表格数据节点连接,选择表格中对应的列项。

(3)在FTP节点属性编辑中,设置FTP的用户名、密码,连通FTP。

3 流程结果

3.1 FTP目录

运行震相报告自动下载与服务系统业务流程,获取震相报告。震相报告获取步骤:

(1)在浏览器中登录FTP服务器,输入用户名和密码。

(2)进入到ftp服务器根目录下,找到要下载的震相报告年份,点击进入。如下载2014年8月的震相报告,点击2014文件夹,进入到2014年的文件夹下,如图6所示。

图6 2014年震相报告目录

(3)点击对应的月份,即可下载该月的震相报告,2014年8月的震相报告如图7所示。

图7 2014年8月的震相报告

3.2 邮件推送消息

运行震相报告自动下载与服务系统业务流程,震相报告下载完成后,邮件提示震相报告更新消息,如图8所示。

图8 邮件推送

4 结语

利用Datist节点流程能够方便快捷地实现自动下载震相报告,极大地提高了震相报告的获取效率,有效地解决了在台网中心服务器端下载数据时,因载荷过多导致下载超时甚至系统崩溃而无法获取数据的情况。此外,二测中心作为国家地震数据灾备中心,目前尚没有地震目录和震相报告数据的备份。通过本系统的设计和实现,探索提供震相数据服务模式,在满足中心相关科研业务人员业务需求的同时,为以后更好地开展地震数据测震服务做准备。

猜你喜欢
邮件节点流程
工星人平台注册流程
基于RSSI测距的最大似然估计的节点定位算法
分区域的树型多链的无线传感器网络路由算法
一种基于能量和区域密度的LEACH算法的改进
来自朋友的邮件
与元英&宫胁咲良零距离 from IZ*ONE
基于点权的混合K-shell关键节点识别方法
四川省高考志愿填报流程简图
“一课四备”磨课流程例说
Outlook和Foxmail邮件互导