基于Datist的地震目录资料自动下载与数据存储

2020-04-03 07:21张秀萍
防灾减灾学报 2020年1期
关键词:专家资料流程

张秀萍,李 君,袁 林,李 杨,周 辉

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

0 引言

地震目录是地震活动构造和震害分析研究等科学研究[1-3]和震情信息服务的重要资料[4-6],及时有效地获取地震目录资料对开展相关地震科学研究和数据服务具有重要的研究意义和应用价值。国家地震台网中心作为全国地震编目最终产出单位,拥有丰富的数据资源[6-7],其统一编目系统是各科研单位和台站获取国家地震目录资料的主要来源之一。

国家地震台网中心统一编目网站提供多种常用格式的地震目录下载接口,在一定程度上满足了研究人员的下载格式需求。但由于不同的地震目录格式对应不同的下载接口,当按年月下载不同格式的目录并分别保存时,会重复操作下载过程,耗费时间。此外,下载的地震目录因为格式固定,数据以文本形式或其他文件形式进行保存,使得其应用范围比较受限[8]。

为了提高信息获取效率,利用Python编程访问下载网址并将脚本代码放在数据专家Datist(多源数据融合专家应用软件,简称数据专家)中,设置定时运行流程,即可自动获取地震目录资料。为了更加灵活的对外界提供地震目录数据,同时保证数据的安全性,利用Datist将数据存入MySQL数据库,并提供对外的数据接口,实现地震目录资料的按字段存储、管理与服务,具有效率高、使用方便、数据获取灵活等特点。

1 功能原理介绍

地震目录资料自动下载与数据存储的原理总框图如图1所示,包括三部分:下载文本数据、文本数据拆分入库和获取数据信息。下载文本数据通过程序访问下载地址得到地震目录文本,并将其保存在固定目录下。程序在访问下载地址时,通过更新下载地址链接中的时间、震级、经纬度等参数性,可下载不同时间段、震级以及经纬度的地震目录。本文使用Python语言访问下载地址,该脚本语言拥有强大的支撑库,能够实现跨平台移植且节省运算资源,可集成在数据专家Datist中使用。

文本数据拆分入库和获取数据信息这两部分主要利用数据专家Datist实现数据处理过程。首先读取地震目录文本保存目录,之后对文本数据拆分处理得到字段数据,最后将字段数据过滤筛选后写入数据库。为了保证数据安全,最大程度的对外提供数据共享服务,选择MySQL数据库存储数据。地震目录数据存储到数据库后,使用“接入数据库”节点连接到对应的数据库,通过Datist数据专家提供的各类报告与软件接口来获取需要的数据信息。

基于Datist的地震目录资料自动下载与数据存储通过可视化的节点组合完成数据处理的有形化表达,不需要掌握复杂的编程技术即可实现对海量多源数据的整合、查询以及报告生成等批量化处理过程[9],方法简单,可操作性高,有效地提高了数据处理效率。

图1地震目录资料自动下载与数据存储原理框图Fig.1 The principle diagram of automatic downloading and data storage of seismic catalogue data

2 功能设计

2.1网站下载地震目录文本

中国地震台网中心统一编目系统提供了统一快报目录、统一正式报目录等地震目录的下载接口,下载格式包括txt、wkf和xls等格式。使用Python脚本登录网站后调用下载地址接口,然后将下载的文本(.txt)保存在固定的目录下。脚本主要代码如下所示,下载链接地址参数比较多,介于文章篇幅,此处省略了一些其他参数,只保留了时间参数。

from urllib import request #加载request模块,用来访问网址地址

from http import cookiejar #加载cookiejar模块,保存cookie

url =‘http://10.5.160.18/export/download.action?type=PHASE_WK_TXT&type1=

UniteWeek&type2=UniteWeekTxt&catalogw.t2Start=2018/01/01%2000:00:00&catalogw.t2

End=2018/02/01%2000:00:00’ #下载链接地址(省略了请求头的部分参数)

startdate=[‘2018/01/01’]#地震目录开始时间

enddate=[‘2018/02/01’]#地震目录结束时间

response=opener.open('url')

filename=startdate.replace("/","")+"_"+enddate.replace("/","") #保存下载的地震目录

uniteWeekCatalogDatafile = open('E: /Data/+filename+'.txt','w')

uniteWeekCatalogDatafile.write( response.read().decode('gbk'))

uniteWeekCatalogDatafile.close()

上面的脚本代码实现登录地震编目系统获取下载地址的功能。脚本中没有循环更新地址参数的代码块,因此脚本运行结果只能得到固定参数(如地震目录时间是2018/01/01-2018/02/01)的地震目录文本。下面将结合Datist流程更新地址参数,动态更新地址链接,灵活获取地震目录。

2.2 Datist处理文本数据并写入数据库流程设计

数据专家处理文本数据并将处理数据写入数据库的流程如图2所示,首先更新Python脚本中的日期变量,将更新后的变量传入到链接地址对应的变量中并保存地震目录文本到固定的目录(前两行流程),扫描该目录并对文本进行处理然后存到数据库(第三行流程),最后从数据库获取字段数据(最后一行)。

图2地震目录资料自动下载与数据存储流程图Fig.2 The flow chart of automatic downloading and data storage of seismic catalogue data

地震目录文本处理的关键在于文本数据拆分,数据专家的“列辟分”节点通过设置锚点,可以快速地对文本进行辟分操作,如图3所示。与利用程序代码实现数据辟分与合并操作相比较,节点辟分过程简单、效率高,图形用户界面操作实现数据处理过程可视化,便于及时快速地更改需求。辟分完成后,数据将会根据设置的锚点拆分成一列列的数据,过滤节点可以设置新列的名称。在对数据存入数据库之前插入了一个初始化时间节点,用来给数据库插入初始化时间字段,记录数据变更时间。利用数据专家“写入数据库”节点将数据存入MySQL时,流程会根据过滤条件自动建立数据表和表字段。

图3文本数据辟分示意图Fig.3 The dividing diagram of text data

3 流程结果

3.1文本数据处理及写入数据库结果

运行数据专家地震目录资料自动下载与数据存储流程,获取2018.01.01至2019.01.01的统一正式报目录,并按月份保存数据的流程下载结果如图4所示,显示的是2018.01.01到2019.01.01按月保存的全部事件文本目录。从下载地址链接获取地震目录时,可以按年、月分别保存数据,同时可以通过Python脚本自定义下载的文件名称,便于识别保存的文本数据。

图4运行数据专家流程自动获取文本目录结果Fig.4 The dividing diagram of text data

图5是对下载的地震目录文本数据进行数据处理后,存入到MySQL数据库的结果。由图5看出MySQL按字段存储数据,使得数据的使用更为灵活和安全。利用数据专家流程下载12个月的统一正式报目录全部事件文本,并按月保存文本数据以及处理数据写入数据库,整个过程共耗时4分钟,实现了高效高质量的完成地震目录的下载和存储过程。

图5地震目录数据存入MySQL条目Fig.5 The results of running datist process to automatically obtain text catalog

3.2接口获取数据结果

地震目录资料数据存储到数据库后,可以根据需求获取数据库字段数据,“接入数据库”节点支持MySQL语句,能够直接对数据库的数据进行增删改查操作;然后使用“浏览报告”节点查看具体的数据信息。例如需要获取2018.12.01至2019.01.01发生的地震值大于5级的数据信息,从数据库得到的数据如图6所示,包括发生地震的具体时间、地震的经纬度、震级深度以及参考地名等信息。

Datist提供了很多接口,除了各种数据库接口,还有文本接口如PDF、word、Excell等以及可视化接口,不需要单独定义接口,利用数据专家提供的接口即可方便快捷的对数据进行查看和使用,实现对外提供数据服务的功能。

图6地震值大于5级的数据(2018.12.01—2019.01.01)Fig.6 The data with an earthquake value greater than 5(2018.12.01—2019.01.01)

4 结论

利用Datist节点流程能够方便快捷地实现自动下载地震目录和数据存储功能,具有高效性和便捷性,同时以MySQL数据库的方式保存地震目录数据,具有一定的灵活性和安全性等,极大地提高了地震目录资料的获取效率,为进一步的地震数据共享应用奠定基础。此外数据专家节点流程支持多种数据库(MySQL、Access、Oracle)的写入和接入,也支持文件如Word和Excell操作及数据可视化应用,可根据实际需求提供地震目录资料的数据接口,能够为地震科研和业务监测应用提供方便快捷的地震目录数据服务,给地震数据自动化获取服务提供参考方法,对促进地震科研信息化服务的发展具有一定的应用的价值。

猜你喜欢
专家资料流程
致谢审稿专家
吃水果有套“清洗流程”
Party Time
PAIRS & TWOS
JUST A THOUGHT
违反流程 致命误判
四川省高考志愿填报流程简图
析OGSA-DAI工作流程
请叫我专家
专家面对面