APP下载

基于Java的地震速报信息服务系统设计

2018-11-28刘方斌曲均浩苗庆杰周少辉

电子科技 2018年12期
关键词:速报震级界面

刘方斌,曲均浩,苗庆杰,周少辉

(山东省地震局,山东 济南 250102)

地震速报是地震监测预报中最为基础的一项工作,同时也是非常重要的环节之一[1]。地震速报要求速报人员能够在第一时间准确的确定地震发震时刻、震中位置及震级等相关信息。准确收集地震信息不仅可以为后续开展地震监测工作提供基础数据,还可为政府、社会的震后救灾、应急救援提供有效决策[2]。目前各省测震台网主要承担着本省的地震速报、编目、月报产出、台网软硬件的维护以及包括日、月频次的地震短信的发送等任务,日常工作繁杂、技术人员少;另外,地震速报目录仅能从EQIM[3]平台浏览,不能下载,信息分享不便。针对上述问题,本文利用Java开发技术结合数据库以及World Wind设计实现了一款符合测震工作的地震速报信息共享系统。

Java是目前使用人数最多、范围最广的软件开发技术之一,具有简洁、精干、面向对象、多线程、面向网络、安全、自律、跨平台等诸多特点[4]。本研究基于Java语言编程优点,设计实现了系统各个功能模块界面,其应用程序在异构环境之间可用,显著降低了开发成本[5]。

1 系统总体设计

根据工作要求,设计了一款C/S模式[6]的地震速报信息服务系统。它可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器端进行实现,充分发挥客户端的处理能力和响应速度。

如图1所示,服务器端通过网络通信与省台网中心建立数据连接,调用MySQL数据库[7],并将数据库数据通过SyncNavigator软件同步到本地服务器上,这样可以避免过多用户访问源数据库所导致得数据库异常。客户端根据功能分类划分为实时目录、目录查询、月报产出、最新地震以及其他等5大模块,具体功能如下:

图1 地震速报信息共享系统构架图

(1)系统登录模块。用于校验用户信息,当用户名和密码正确时,成功登陆主系统;

(2)实时目录模块。主要用于实时展示地震目录、检查地震速报结果的准确性;

(3)目录查询模块。对历史地震按照搜索时间、经纬度、震级大小、事件类型、震中位置以及目录类型等信息进行查询、打印和导出;。

(4)月报产出模块。对某月地震事件进行分析,获取月报信息并通过Word文档的形式导出;

(5)最新地震模块。主要获取最新地震信息(发震时刻、震中位置及震级大小),并以警报的形式提醒值班人员;

(6)其他模块。主要提供了大震速报流程、震级转换表等方面的内容。

2 数据库设计

一个数据库结构的好坏将直接影响着整个系统的运行效果,合理搭建数据库将会大大提高数据的储存速度[8]。本系统将JOPENS5.2[9]中MySQL的Catalog表同步备份到本系统服务器中,然后调用本系统数据库信息。Catalog表中存在多个字段,根据系统需求选取所需的字段和属性来构建地震事件信息表,如表1所示。

表1 地震事件信息表

3 系统界面GUI实现

系统GUI界面是基于Java的Swing组件设计的,该组件是Java中重要的窗口工具组,可在程序运行时指定组建的外观风格[10-11]。

3.1 用户登录界面

当用户进入地震速报信息服务系统程序时,首先弹出登陆对话框,其中用户名和密码需要在配置文件中配置,输入用户名和密码点击登录就可以打开该系统,进入主界面。登录界面如图2所示。

图2 登录界面

3.2 系统主界面

根据用户需求及功能模块设计编写用户主界面窗口。主界面主要基于JTabbedPane[12]组件进行总体设计,将系统5大功能模块加入其中,各模块间可以通过快捷键进行切换。

实时目录模块窗口主要用于展示地震目录和检查地震速报结果的准确性,窗口如图3所示。本模块主要通过读取并将数据库中的Catalog表数据添加到JTable里,然后通过线程[13]方式刷新数据库以获取最新地震,从而提高CPU利用率,加快运行速度。

图3 实时目录模块

目录查询模块窗口如图4所示,该模块使用JSplitPane分割面板将界面分为左右两部分,左侧主要显示相关参数的配置,右侧以JTable的形式显示符合条件查询结果。实际操作时,先对左侧参数进行配置,然后点击查询按钮即可在右侧显示查询结果。由于参数配置中存在多种条件,而通常情况下并不需要对每种条件都要满足,仅按照某些条件进行设置即可,因此通过if语句进行实现,根据条件要求进行判断,搜索用户所需数据。另外,搜索结果会以Excel的形式导出,导出的数据格式与其他画图软件兼容,可直接用于图件绘制,避免二次输入的麻烦,点击打印按钮则可以打印相应结果。

图4 目录查询模块

月报产出模块窗口如图5所示,该模块替代了以往以传统人工统计及绘图方式编制的月报。该模块通过调用数据库获取某月某地发生的地震事件个数、事件的类型(天然地震、爆破、塌陷等),并分析当月各地震类型所占的百分比以及日频次,以便用于月会商及月短信服务中,有效提高了工作效率。另外,还可将所获信息按照预先制定好的模板以Word文档的形式导出到本地,以供官方发布使用。

图5 月报产出模块

如图6所示为最新地震模块窗口,该模块基于World Wind Java技术实现[14],界面共分为内容显示区、测量工具区、图层控制区以及地图展示区4部分。读取最新地震数据后将其显示在内容显示区的文本框内,当震级达到设定下限时,报警按钮启动,以提醒值班人员。另外3部分则是通过AWT组件中的World Window GL Canvas功能来显示。AWT组件是独立式的,能为应用程序提供三维地球和图层的渲染[15],包含了基础图像层(Basic Tiled Image Layer)、罗盘层(Compass Layer)、比例尺层(Scalebar Layer)、世界地图层(Wor1d Map Layer)和测量工具层(Measure Layer)等,同时还可根据需求增加全国断层、各省市行政区划等shp文件图层[16]等。测量工具层主要负责获取测量点之间的距离、高程剖面等。

图6 最新地震模块

其他模块窗口如图7所示,主要提供大震速报流程、震级转换表等方面的内容。

图7 其他模块

4 结束语

本文详细的分析了基于Java的地震速报信息服务系统的设计与实现,并对软件数据库及各功能模块的界面设计做了详尽的阐述。该软件自投入使用以来运行稳定,地震速报信息读取准确及时,共下载数据数百次、生成月报7次、报警多次,能够及时提醒值班人员并快速获取相关地震信息,提高了工作效率,减少了工作压力。该软件具有操作简单、管理维护方便等优点,通过数据共享打破了各部门间的信息闭塞,有利于信息交流和防震减灾事业的发展。

猜你喜欢

速报震级界面
基于累积绝对位移值的震级估算方法
地震后各国发布的震级可能不一样?
国企党委前置研究的“四个界面”
新震级国家标准在大同台的应用与评估
每月速报
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
每月速报
人机交互界面发展趋势研究
每月速报
手机界面中图形符号的发展趋向