目前,山西地震台网包含57个测震台站和57个强震动台站,而正在进行的国家地震烈度速报与预警工程(山西子项目)将建成包含1096个台站的观测系统。在日常工作中维护人员需每天查看台站故障、上报日志信息、进行噪声标定,且目前大部分工作停留在手工整理阶段,信息化管理程度较低,台站设备更换参数不能及时在JOPENS系统中同步,且更换记录整理不全或者不及时的情况时有发生,这都导致波形的可用率降低,进而影响到地震产出的准确度。目前,已有地震工作者在运行监控及噪声计算方面进行了一些研究,姜博等(2017)、张华等(2017)采用B/S模式或C/S模式实现了对台站和设备的信息管理及对台站运行状态的监控。
本文设计了山西地震台网运维与管理系统的数据库,并实现了山西地震台网运维与管理系统的各功能模块。该系统根据目前地震台网运维的日常工作实现了台站信息管理、设备信息管理、运行状态监控、自动更新JOPENS系统中的台站日志和仪器参数、实时监控并计算台站噪声记录等功能,并可根据需求进行统计,导出图表。
1 系统开发 1.1 需求分析目前,山西地震台网台站及设备运行的监控管理、噪声计算都是分开单独实现的,参数更新的及时性较差,这给台网维护、数据分析工作带来很多不便。山西地震台网运维智能管理系统将整合台网运维方面的日常工作,其中包括台站信息管理、设备信息管理、运行状态监控、自动更新JOPENS系统中的台站日志和仪器参数、实时监控并计算台站噪声记录、导出图表等。该系统可以规范各级维护的工作流程,提高工作效率,保证数据质量。UML(unified modeling language,统一建模语言或标准建模语言)系统用例见图 1。
(1)系统处理流程。山西地震台网运维智能管理系统根据山西地震台网台站日常维护工作流程分析系统处理流程(图 2)。系统启动后自动连接JOPENS数据库,监控台站通讯连路及实时数据流,判断台站状态,通知维修人员台站故障信息;维修人员处理故障后,上报台站维修记录及设备维修记录,如果更换设备,则将台站及设备参数自动同步至JOPENS数据库,同时更新JOPENS数据库的台站日志记录;另外,系统自动定时计算台站噪声功率谱概率密度及噪声均方根幅值;用户可以根据以上数据,统计台站及设备维修记录、台站月评比报表、设备更换路线图、台站噪声月报图及月报表。
(2)系统结构。系统采用B/S结构(Browser/Server,浏览器/服务器模式),使系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护、使用过程。系统在MyEclipse开发环境中构建,以Java作为后台开发语言;MySQL作为后台数据库管理系统;Geoserver作为地图服务器,结合高德地图API进行地图显示。
系统采用经典3层架构框架进行模型建立和交互处理控制,通过com.entity建立实体,com.dao中包含dao及dao的实现,com.servlet通过request和response处理浏览器的请求及响应,com.util实现与数据库建立连接及查询、修改等操作,com.filter实现过滤器功能,在jsp页面中进行视图显示。
(3)功能模块。根据设计的需求,可将山西地震台网运维智能管理系统分为信息管理、运行监控、日志维护、参数同步、噪声计算、图标产出等6个部分,具体功能模块如图 3所示。
(4)数据库设计。系统采用MySQL 5.6建立名称为snms的数据库,系统中使用的数据库实体分别为用户实体、台站实体、地震计实体、数据采集器实体、通信单元实体、台站日志实体、设备日志实体、链路状态实体、数据流实体等,根据这些数据实体对象,可以得到数据表结构的基本模型,形成完整的数据结构,该数据结构共包含9张数据表,其中,台站信息表、台站日志信息表的表结构见表 1、表 2。
针对系统的功能模块及数据库的9张数据表,在com.entity中定义User、Sta、Seismo、Dataco、Dcm、Logsta、Logequ、Linkstatus、Recordlogsta及Recordlogequ等实体类,在com.dao中建立各实体对应的Dao及DaoImpl方法类,实现各种算法及对数据库进行查询、修改等操作,通过com.servlet实现各实体对应Dao方法的调用及参数传递,在com.util中建立数据库连接及操作类DBconn类,在com.filter中建立过滤器类EncodingFilter,实现Filter接口,使其成为Servlet过滤器。部分功能的详细设计如下。
(1)设备更换路线图显示。设备更换路线通过调用Servlet读取设备更换记录及对应地点,利用高德地图JS API实现地图展示,直接在jsp的 < script > 标签中编写代码,部分源代码如下
< c:forEach items="${fadd}" var="item1" varStatus="status1" >
var x=${status1.index};
array[x][0]=${item1.lng};
array[x][1]=${item1.lat};
< /c:forEach >
var map = new AMap.Map('map');
var path1 = array;
var polyline1 = new AMap.Polyline({
path: path1,
showDir:true,
strokeColor: '#3366bb',
strokeWeight: 10
});
map.add([polyline1])
map.setFitView()
(2)监测台站通讯链路。系统通过Java调用控制台执行ping命令,判断该台站通信链路是否正常,部分源代码如下
String pingCommand = "ping " + ipAddress + " -n " + pingTimes + " -w " + timeOut;
try {
Process p = r.exec(pingCommand);
if (p == null) {
return false;
}
in = new BufferedReader(new InputStreamReader(p.getInputStream()));
int connectedCount = 0;
String line = null;
while ((line = in.readLine())!= null) {
connectedCount += getCheckResult(line);
}
return connectedCount == pingTimes;
} catch (Exception ex) {
ex.printStackTrace();
return false;
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
(3)台站维修记录统计。用户选择需要查询的时间段及台站,从数据库调取相应记录显示至浏览器,同时可以导出记录,部分源代码如下
LogstaDao lsd = new LogstaDaoImpl();
List < Logsta > record = lsd.search2(t1, t2, staname);
XSSFWorkbook workBook = null;
workBook = new XSSFWorkbook();
XSSFSheet sheet = workBook.createSheet();
workBook.setSheetName(0, "info");
for(int i=0;i < dataList.length; i++){
XSSFRow row = sheet.createRow(i);
String[] oneRowData = dataList[i];
for(int j=0;j < oneRowData.length; j++)
{
row.createCell(j).setCellValue(oneRowData[j]);
}
}
File file = new File("E:\\输出\\"+fileName+".xls");
2 系统展示山西地震台网运维智能管理系统主要功能包括信息管理、台站状态监控、工作日志、噪声监控和图表产出等。
2.1 台站状态监控系统通过服务器轮训检查台站通讯链路状态、数据库自动记录故障台站信息,服务器监控界面见图 4。
用户在工作日志部分可以处理台站、设备维修日志,包括新增、修改和删除日志。台站日志列表界面见图 5,新增台站维护日志界面见图 6,新增设备维护日志见图 7。
(1)台站分布图。台站分布图通过按钮切换分别显示地理位置图及影像图。当鼠标滑过各台站点位时,可以弹出信息框显示台站基本信息,其中包括经纬度(小数点后2位)、台站名称、代码、IP地址、地震计型号、数据采集器型号等,以使管理人员对各台站基本情况有直观的了解;影像地图便于管理人员查看各台站周边地形地貌及断层分布情况(图 8-图 9)。
(2)设备更换路线图。用户可以根据仪器序列号在右侧列表中进行选择,查看某仪器设备在哪些台站使用过,按照顺序在地图上显示该设备的更换路线,以便维护人员查询某仪器的流转情况,方便仪器设备的管理查询(图 10)。
(3)维修记录统计。用户可以在界面右侧栏根据时间段及台站名称查询对应的维护记录,并可以选择导出excel表格,以方便维护人员整理月报(图 11)。
目前,山西地震台网运维智能管理系统已实现了台站运行监控、台站及设备维修日志处理、台站及设备分布图产出等部分功能,简化了维护的日常工作流程,并提高了效率。今后,需继续开发该系统其他的功能模块,实现从JOPENS数据库读取台站数据流,进而计算台站噪声,监控台站数据质量。
姜博, 邹志超, 杨闯, 等. 2017. 黑龙江省地震监测设备信息运维管理系统研发[J]. 地震地磁观测与研究, 37(1): 136-140. DOI:10.3969/j.issn.1003-3246.2017.01.023 |
张华, 郑建志, 郑永通, 等. 2017. 地震仪器维修中心信息管理系统[J]. 黑龙江科技信息, (9): 174. DOI:10.3969/j.issn.1673-1328.2017.09.162 |