西安必信达软件技术有限公司
地震与台风信息采集WEB应用方传极
「为满足前兆台网地震目录数据和台风信息的需求,构建了基于Django框架的WEB应用,通过采集互联网上地震和台风信息资源,重新格式化信息,为后期的信息录入提供了方便。(2020-9-20)」
关键词:Django;地震;台风;python
  中图分类号:P315.75         文献标志码:A         文章编号:2095-2945(2020)05-0161-03
  Abstract:In order to meet the needs of earthquake catalogue data and typhoon information of precursory networks, a web application based on Django framework is constructed. By collecting the information resources of earthquake and typhoon on the Internet and reformatting the information, it provides convenience for later information entry.
  Keywords: Django; earthquake; typhoon; python
  引言
  地震前兆观测仪器,容易受到地震、台风、人为等干扰因素的影响,反映在曲线上。而在数据预处理的过程中,通过人为判断反映在曲线中的地震、自然等干扰因素,需要获取地震目录、台风等外部信息作为判断依据。对于前兆数据处理业务,迫切需要一套自动化信息采集和显示系统进行服务。
  1 系统框架
  本系统基于B/S架构,应用python语言和Django框架作为后端服务器开发,采用sqlite3数据库;前端应用HTML+CSS+JAVASCRIPT呈现信息,采用apache进行部署。
  Django作为web系统的核心框架,采用了MTV的框架模式,即模型M,视图V和模版T,是python语言驱动的开源框架,在此基础上,增加信息采集层Collect,使此系统能够自动运行。总体框架见图1。
  客户端发送请求,服务器收到请求后,解析URL地址,根据地址查找VIEW视图,VIEW视图根据请求的内容,通过Model与关系数据库进行交互,将数据与Template模板进行数据封装,产出html网页返回到客户端。通过自动采集地震目录、台风信息汇入数据库中,提高了信息的实时利用率。
  2 系统实现
  2.1 采集层的实现
  提供地震速报的网站有很多,如美国地震信息中心USGS、中国地震台网中心CENC、国际地震中心ISC等,根据业务需求以及国际和地区上的权威地震信息发布,选取USGS和CENC作为主要地震目录采集网站。另外福建靠近台湾,采集台湾气象局地震信息作为补充。台风信息采集了中国天气台风网。
  通过分析网站数据传输机制,需要采集的4个网站中有3个采用了json格式数据包,分别为USGS、台湾气象局、中国天气台风网,JSON 是一种轻量级的数据交换格式,属于javascript程序语言标准下的一个子集,易于被javascript解析。Python语言对JSON格式数据有很好的转换和解析模块,直接通过python的requests模块下载json文档,通过json模块解析入库即可。
  而中国地震台网中心网站把数据直接封装在html页面中,通过requests模块获取到html文档,使用正则表达式进行字符串匹配查找,在python语言中,内嵌了正则表达式模块re,匹配的字节码如(u’<td.*>(.*)</td>’),re.findall函数获取了html页面表格内的所有数据。
  2.2 Model层的实现
  Django Model层实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过ORM(关系映射模型),把表映射成类,把行作实例,把字段作为属性, 建立模型类和表之间的对应关系,允许我们通过面向对象的方式来操作数据库。好处是封装了底层的数据库实现,支持多个关系数据库引擎,包括流行的MySQL、 PostgreSQL和SQLite,可以非常轻松的切换数据库。
  根据程序需要,设计了几个模型,有地震目录表、台站信息表、台风表、台风细节表,以下是地震目录表模型。采集的地震目录与台站进行震中距计算,把影响因子小的地震过滤,放入isFilter字段中。
  2.3 VIEW视图层的实现
  在Django的MTV架构中,所谓视图层其实是进行业务处理(包括接受和响应http请求),是模板(Template)和模型(Model)的“桥梁”,当请求页面时,执行URL映射,根据URL映射调用视图函数,Django就会创建一个包含本次请求原信息的 HttpRequest 对象,然后 Django 会将这个对象自动传递给相应的视图函数,每个视图都负责返回一个 HttpResponse 对象,响应可以是一张网页的HTML内容,一个404错误,或者一张图片等。
  网站首页展示了三天的地震信息和活跃的台风信息,根据网页中的过滤开关、地震网站开关、时间选取,把最终需要的地震目录和台风信息呈现在用户眼前。
  2.4 Template层的实现
  Templates,在Django其实是HTML文件,它使用了Django模板语言引擎(Django Template Language,DTL),或者采用第三方引擎(如Jinja2)來进行模板页面的渲染,可以把数据填写到模板网页中,产出html,实现动态效果。
  在模板中,变量放入{{}}中,标签用{%%}的形式,实现判断、循环的等多种动态效果。
  3 结束语
  地震前兆台网在日常业务处理中,应用到了大量的地震信息和台风信息,通过此地震目录和台风信息,可以实现一站式服务,产出的地震信息可以便捷的复制到业务处理系统中,最终提高了业务效率。
  参考文献:
  [1]梁灿,等.从地震目录的变化论“十五”数字测震台网拾震能力[J].东北地震研究,2008,24(4):76-80.
  [2]何琳,等.地震目录更新软件[J].中国科技信息,2017,24:61-62.
  [3]马宝君,等.地震目录快速转换软件[J].地震地磁观测与研究,2005,26(3):87-90.
  [4]张卫华,等.地震目录资料自动搜索、下载软件的实现[J].地震,2007,27(1):131-141.
  [5]马士振,等.基于Django框架的可视化地震目录服务系统[J].震灾防御技术,2015,10(3):695-699.
  [6]马士振,等.基于Django框架的两种Web地震目录分页方法[J].地震地磁观测与研究,2015,36(1):135-139.
  [7]许云廷,等.开发基于Web的地震目录数据库查询系统[J].地震学刊,2002,22(2):61-66.
  [8]熊志强,等.用CSS样式动态整形地震目录查询结果[J].华南地震,2002,22(4):74-78.
  [9]胡卫,等.自动任意下载网页上的地震目录资料[J].地震地磁观测与研究,2005,26(6):105-110.
(泄qO)
点击进入「必信达创业合作论坛」
Copyright © 1999-2020 西安必信达软件技术有限公司