美章网 资料文库 云计算的强震预警软件开发范文

云计算的强震预警软件开发范文

本站小编为你精心准备了云计算的强震预警软件开发参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

云计算的强震预警软件开发

摘要

依托专业地震监测台网,采用云技术环境,利用Java开发平台,开展地震早期预警软件系统集成关键技术研究,研制一套具有自主知识产权的地震早期预警软件系统,并在中国地震重点监视防御区和试验场开展系统试验,建立信息平台,实现预警参数和地理信息的近实时动态。该软件在地震事件触发准确率、误触发判断及信息速度等方面具有一定创新,从而提高地震预警信息的时效性和准确性。

关键词

强震预警;云计算;多线程技术;功能模块

地震预警(EarthquakeEarlyWarning,EEW)技术作为震灾预防的新手段,已经在多个地震多发国家和地区引起重视并得到应用(赵纪东等,2009)。地震预警系统的基本硬件组成(袁志祥等,2007)为:地震监测系统(数字化实时强震仪)→通信系统(电话线、无线拨号上网、中继站)→控制中心(计算机和专业软件)→警报系统(手机、电子媒体、政府)。整套地震预警系统的特点应该是高度集成、实时监控、飞速响应,尤其是飞速响应至关重要。地震预警作为一种以秒计的“超级地震速报”,每1s均是决定地震预警成败的关键。地震预警信息的过程涉及数据传输、处理、信息确认等环节,每个环节均会消耗一定时间(殷海涛等,2012;张晁军等,2013;张红才,2013)。由于地震动参数获取的速度和精度直接影响到地震预警系统运行的效率和准确度,因此数据传输处理系统也是需要重点保障和维护的子系统。本文基于云计算技术开发强震预警软件,并在示范区开展系统试验,建立信息平台,实现预警参数和地理信息的近实时动态。在地震事件触发准确率、误触发判断以及信息速度等方面有一定创新,从而进一步提高预警信息的时效性和准确性。

1总体构架

本文所涉及的强震预警软件系统由参数管理、数据汇集服务、事件触发判断、自动震相拾取、自动定位、震级估算、烈度估算、Web信息等模块组成。系统集成后分为用户层、应用层、数据层。搭建环境采用云技术,利用Java平台开发编制各功能模块及集成模块,程序编制注重系统运行的快速、自动处理和实用化功能,尽量实现智能化,减少人机操作,提高产出速度。图1为强震预警软件系统构架示意图。其中,数据层主要是数据获取,从设备或离线数据文件中获取数据,通过TCPSOCKET提供后续模块使用。台网基础信息可通过TCPSOCKET,从数据服务模块获取。应用层主要是系统业务功能模块,包括误触发判断、事件触发判断、震相拾取、事件定位、震级估算、烈度估算等功能模块。在应用层中采用多线程技术和分布式计算技术,以共享数据区动态震相数据为耦合点,提高系统运行效率,缩短计算时间,充分利用CPU资源。用户层主要包括面向专业用户的参数管理模块和面向公众用户的预警信息模块。预警信息模块通过WebService服务与后台模块进行数据交换。

1.1分布式云计算环境搭建物理机网络拓扑中云环境搭建采用5台高性能服务器,通过2个网口分别连接2台千兆交换机。5台服务器中的1台做控制节点,其他4台做计算节点兼存储节点。2台交换机中1台与行业网相连,用于外部通讯,另1台进行私有云内部通讯;台式机作为监控用机。图2为物理机网络拓扑图。OpenStack是一个开源的云计算管理平台项目,以Apache许可证授权,由美国国家航空航天局和Rackspace合作研发,该项目由几个主要组件组合完成某些具体工作。UbuntuLinux是OpenStack的主要操作系统,本软件采用最新的64位版本UbuntuServer安装、配置OpenStack,搭建私有云环境。

1.2多线程技术应用线程是程序运行的基本执行单元。操作系统(不包括单线程操作系统)执行程序时,在系统中建立一个进程,且必须至少建立一个线程(此线程称为主线程)作为该程序运行的入口点。合理的使用线程,可充分利用CPU资源,简化编程模型及异步事件的处理,减少开发和维护成本,使GUI更有效率,改善应用程序性能。Java是纯面向对象语言,通过Thread类将线程必须的功能封装起来。有3种方法可以实现多线程:①继承Thread类实现多线程;②以Runnable接口方式实现多线程;③使用ExecutorService、Callable、Future,实现有返回结果的多线程。

2功能模块接口封装

2.1数据汇集服务数据汇集服务分为3部分:①实时数据汇集服务程序,提供测震、强震与GPS波形数据;②离线数据服务程序,将数据文件转换为模拟实时数据流,模拟实际台网观测环境;③客户端读取接口程序,以TCPSOCKET方式从数据汇集服务器获取台站的信息和数据,采用Java语言开发,方便与系统集成。数据汇集服务在运行前需进行台网参数、速度结构模型等配置,服务框架见图3。客户端接口模块采用双数据缓冲方式,两个缓冲区的作用分别是:①存储从流服务接收到的数据,缓冲区中各通道循环队列长度为10s;②为事件触发检测模块提供数据,循环队列长度为事件触发检测模块数据分析总长度。程序创建单独线程,每间隔20ms对1号缓冲区进行检查,有新数据时将新数据追加到2号缓冲区,然后启动事件触发检测模块。采用双缓冲区的优点是,在事件触发检测模块占用缓冲区进行计算时,不影响数据接收。

2.2地震波形实时显示基于Web页面的地震波形实时显示模块,在浏览器中使用HighChartJS组件,显示地震实时波形,后台应用服务器通过Servlet从波形服务器获取实时波形数据,利用Ajax技术,将波形数据传递到前台展示。波形显示界面提供波形显示时间长度控制、通道控制、纵轴放大等功能。波形显示时间长度分为30s、60s和120s等3种模式,可通过下拉菜单选择控制。波形显示长度为120s时,因需要缓存的数据包较多,需要工作站具有较高性能。通道控制菜单可以单独控制垂直、东西、南北3个通道的显示情况,未选中则相应通道图形不显示。图4为基于Web的波形实时显示框架。

2.3地震事件触发检测震相分析是波形数据中提取数据的主要手段,快速确定地震参数是地震预警系统的关键技术环节之一,关系到预警时间的长短。地震事件触发检测模块的功能是,从实时数据流中计算提取台站震相信息,包括P波、S波的触发时间、位移幅度、卓越周期。提取时间的时效性关乎全局预警时间,因此本模块采用Java多线程和分布式计算技术,以缩短每次计算时间。模块采用全局动态数组存放提取的震相信息,作为与其他模块交互的接口,减少与其他模块的耦合,提高程序的灵活性。地震事件触发检测模块主要有管理线程和识别计算线程2部分。管理线程负责初始化相关参数、轮询台站数据和创建启动计算线程;识别计算线程负责将波形数据进行分布式计算分析,将最终震相结果返回管理线程。图5为地震事件触发检测管理线程流程。

2.4误触发判断模块误触发判断采用2种方法:①基于V图和走时,找出其中不合理的台站;②根据台站与周边台站的距离、波速及周边台站的触发情况,判断该台是否为误触发。对于1组触发台站,根据Delaunay三角网空间分布,对相邻台站进行分组,每组台站中,根据两两走时差判定此台站是否满足走时原理,从而为台站误触发检测提供依据。程序流程见图6。对于动态触发的1组台站,根据台站间距和P波波速计算周边台站的传播时间,如果传播时间与台站触发后的时间差超出预设值,则认为台站是误触发,判断流程见图7。具体判断检测流程如下:从动态震相数组中获取震相信息进行V图分组;对组内震相做走时检验,删除不符合走时的震相;对组内震相做Pd、τc检验,未通过检验则删除该组震相;如果组内有一个或两个台站,计算每个台站距周边台站的最大距离内P波走时T1,并计算P波触发时间到目前的时间差T2;如果T2>T1,则删除该组震相,否则进行定位、震级计算、烈度计算、信息等操作;如果组内有3个以上台站,确认为地震事件,从震相数组中清除其他组的震相后,进行定位、震级计算、烈度计算、信息等操作。

3系统离线测试

选取山东省内7个震例(2≤M<5)、国内17个震例(4≤M≤8.2)、日本陆地6个震例(5.9≤M≤7.0),共计30个震例用于强震预警系统离线测试,其中国内震例中有2个震例前3个触发台站既有测震台又有强震台。测试结果表明,强震预警软件可在地震监测能力一定条件下,最大程度地提高预警信息的时效性和准确性,中强地震(M≥5)触发率为100%,随着触发台站增多系统不断对震中位置、震级及震中最大烈度进行修订,预警信息通过信息平台实时。同时发现,因建立震级计算关系式时缺少MS7.0以上地震数据样本,导致较大地震(MS7.0以上)的震级测定偏差较大。

4结束语

搭建环境采用云技术,利用Java开发平台,开展地震早期预警软件系统集成关键技术研究,并在山东省示范区开展系统离线测试,建立信息平台,实现预警参数和地理信息的近实时动态,以期在强震预警实践中取得实效。

参考文献

殷海涛,刘希强,李杰,等.现今地震预警技术及其在国内发展状况的探讨[J].中国地震,2012,28(1):1-9.

袁志祥,单修政,徐世芳,等.地震预警技术综述[J].自然灾害学报,2007,16(6):216-223.

赵纪东,张志强.地震预警系统的发展、应用及启示[J].地质通报,2009,28(4):456-462.

张晁军,李卫东,林捷,等.关于地震预警的几个问题[J].中国地震,2013,29(2):198-209.

张红才.地震预警系统关键技术研究[D].哈尔滨:中国地震局工程力学研究所,2013.

作者:赵银刚 王晨 谭婧 刘庆杰 单位:安丘地震台  中国地震局地球物理研究所 沈阳炮兵学院 防灾科技学院