区级气象自动站信息系统设计与实现
2022-09-07郑清杰郑智健林永强
郑清杰,郑智健,林永强
(莆田市气象局 福建 莆田 351100)
0 引言
随着计算机的发展,利用已存在的技术手段对数据进行自动化处理,是气象局内重点研究的方向之一,因为预测天气情况需要多而繁杂的数据,从而导致拥有众多气象观测设备,因此,相关的设备管理的信息化建设也成为气象局的重点需求之一[1]。随着气象局业务的不断扩展,气象观测设备、信息网络设备、机房环境监控等日益增加导致数据信息的增多,而气象观测设备的稳定运行又与气象业务的正常开展密不可分[2]。建设气象观测设备信息化平台可以有效提高工作效率,实况展示气象观测设备信息有助于维保人员及时维护,保障气象数据传输的稳定性,对气象业务稳定展开提供有效的支撑,因此目前气象局投入大量人力物力在气象观测设备信息化平台建设上,与实际业务相结合构建一个气象观测设备信息化管理体系,提高气象观测设备安全性、稳定性,以此来保障气象工作的顺利进行[3]。
目前全国各个气象局都已经开展关于气象观测装备保障管理系统的设计研究相关课题,有些成果已经实际应用在气象业务当中[4],但是气象局中气象自动站观测设备信息管理系统是以省来布局,由各市级的气象设备管理部门统筹,在系统内区级自动站信息并未统一规划,虽然拥有一些基本的功能,如查询气象观测设备信息、登记观测设备信息等,但信息分类不够详细,无法灵活适应区级不同的业务需求,无论是查询自动站观测设备信息或者是业务上的需求,特别是区自动站观测设备信息,区气象局查询不够方便,都需要花费额外的时间来完成。此外,传统的气象装备保障管理采用手写登记,这种方法存在一定弊端,如不同笔迹的识别问题、设备查询麻烦等问题[4],在统计气象观测设备信息方面也不够快捷,需要人工手动添加,无法一键导入导出相关设备信息。为了减少不必要的工作量以及更加直观地显示区自动站的信息,方便区级人员业务运行,提高工作效率,本文根据实际业务需求搭建合适的区级气象自动站信息系统。
1 需求分析
根据实际业务中维保人员需要查询每个区域自动站的气象观测设备信息,系统初步设计由两个功能模块组成:区级模块、用户管理模块。区级模块主要存储区级信息,用户模块存储用户信息。该系统的具体结构功能见图1,其中一区、二区代表区级,可根据所在市拥有的区个数添加,方便各市使用,有助于推广使用,其目录下展示出该区所有区域自动站站名。xx自动站则根据所在区气象局登记的自动站命名,该功能模块包含点击的自动站下所有气象观测设备的信息,如投入使用的时间、维修时间、设备检定时间、该站气象观测设备的备件情况等。用户管理即管理可登入该系统的用户信息权限,可设置用户查阅菜单栏的权限,方便市级气象局统筹管理人员以及增加保密性。
2 系统设计与实现
本文根据莆田市气象局所拥有的电脑性能配置以及维保人员的人数,选择前后端分离搭建系统,一是为了降低维护成本,二是方便后期加入其他功能。前后端分离构建系统的优点是摆脱两者之间的相互依赖,前后端面向不同要求具有不同功能,后端主要需求在三高、业务存储等,而前端则对界面展示效果、应用流畅程度、用户体验等有较高的要求,通过对其进行单独的项目部署从而实现系统的优化以及提高项目的开发效率[5]。
2.1 总体设计
本系统采用B/S结构,该结构的特点为拥有成本不高、维护较容易、开发简单,任何一台气象局内网计算机都能进行访问操作,方便区级气象局自主进行相关业务处理以及添加功能。信息系统采用Java技术,有利于系统功能模块的移植,方便后续业务的扩展、版本升级等。后端采用Spring Boot、Mybatis等流行的系统开发框架,前端采用Vue.js框架以及Element-UI等第三方库,这种组件化开发模式有助于区级气象自动站信息系统的快速构建以及系统维护,实现信息系统的功能需求[6]。
2.2 系统前端
系统前端采用Vue.js框架构建用户界面,Vue.js是一套构建用户界面的渐进式框架,通过简洁的代码与各种模块化应用实现数据交互绑定以及页面展现[1]。Vue.js的与众不同之处在于其开发思想是自底向上,其目的是构建由数据驱动的组件系统。Vue.js代码的变化可快速实时响应在视图层,融合性强,可以轻松融合其他库,插入现有项目较简单,有助于信保人员的快速入门学习。同时Vue.js框架本身也可采用单文件组件以及支持的组件库开发信息系统[1]。
Element-UI是由某团队开发的一个用户界面库,与Vue.js匹配度较高,可高效简洁地开发出用户界面框架,以其代码一致性、良好的反馈性、高效率反馈以及可控性得到了广泛应用[1]。
2.3 系统后端
后端采用由Pivotal团队提供的一个Spring Boot框架,该框架通过自动定义配置、模块化各种组件去支持常用的集成框架来降低开发的复杂性以及难度,减去重复的代码布置,减少不必要的工作量。Spring Boot是在Spring的基础上开发的新开源框架,通过减少了Spring与其他框架之间的代码整合,实现Web应用的快速部署,通过“约定大于配置”的要求简化了 Spring 应用各方面的配置,从而减少程序员样本化的配置工作以及重复性代码[7],易于新手的学习与入门,较容易入手的框架便于气象局的维保人员学习以及修改相关配置,可读性强的代码有助于理解。数据存储方面采用MySQL,主要原因在于维保人员较熟悉,且在Web应用方面MySQL是最好的关系数据库管理系统应用软件之一,以其安装便捷、使用简单方便、安全性能高、稳定性强以及可移植性好等性能被广泛使用[1]。采用MyBatis进行气象观测设备信息数据处理,MyBatis是一款优秀的持久层框架,安装简单且没有第三方依赖,通过XML实现对数据库的增删改查等一系列操作,便于统一管理以及优化。在构建系统后端过程中,采用了lombok、Hutool等工具简化开发,降低代码繁琐程度,使得代码更加简洁明了,阅读性更强。
2.4 系统实现
根据上述的系统设计以及功能需求,使用相关程序框架,本文构建了如下的区级气象自动站信息系统,本系统的用户登录界面见图2,包含用户登入信息显示、登入名、登入密码以及登录按键。为了方便市级管理以及系统安全性、保密性等原因,没有创建用户注册功能,由市级单位统一创建用户。
登入区级气象自动站信息系统后,该系统的界面主体显示效果见图3。
由图3可知,区级气象自动站信息系统的主体显示界面左边为侧边栏,可选择功能用户管理或者区级,区级列出各区气象局如一区、二区,下拉会显示该区存在的所有区域自动站名,供使用员点击查看指定自动站观测设备信息。点击进入用户管理后,可查看当前所有用户名以及密码,其中管理员可以设定角色拥有的查看菜单栏的权限,如设定某区级人员只有查看所属区级自动站的权限,更加灵活管理功能,便于市级管理员的管理以及系统的稳定性、安全性。界面的右上角显示当前登入角色,角色分为管理人员以及区级人员,其拥有查看个人信息以及退出两个功能,具体显示效果见图4。
关于系统数据库表的设计,本文的自动站信息表结构见表1,按照区级自动站气象观测设备信息表设计,表中包含设备序号、设备名称、使用时间、检定时间、维修时间4个数据,后续根据具体业务可再添加需要的数据。用户人员信息数据库表结构见表2,表中主要为用户序号、用户姓名以及用户密码。
表1 自动站信息表结构
表2 用户人员信息数据库表结构
自动站观测设备信息在浏览器上为表格显示,其具体显示效果见图5,表格上表头名称显示数据库设定的序号、设备名称、使用时间、检定时间、维修时间,额外增加操作。表上方有两个功能,分别为新增设备按键与查询按键。新增即为添加当前区域自动站观测设备信息,弹出表格填写设备信息。查询为通过查询设备名称获得当前目录该自动站所查询的设备信息。
在表中的操作一栏下,拥有编辑和删除两个功能按键,编辑即为弹出表格修改当前行气象观测设备信息内容。删除即为删除当前气象观测设备信息,点击删除会弹出确定按钮,以防误删,其在浏览器上具体显示效果见图6。
2.5 运行结果
该信息系统目前尚在运行测试中,能够初步实现设计的要求,如区级气象局自主查看相关设备信息、添加以及修改气象观测设备信息,但依然存在一些问题,如显示的界面不够美观、画面不够协调,菜单栏的功能还需要添加导出气象观测设备的Excel功能,供业务一键导出使用,气象观测设备信息显示不够完整。在实际运行中,菜单栏中选择某区后应该先跳转显示全部区域自动站情况,再供业务人员点击选择某自动站,在此基础上还应添加气象数据实时显示功能,以便查看自动站运行情况。为了向非气象人员介绍气象系统内的运行情况,该系统后续还应做成可视化界面,让人更加清楚内部流程。
3 结语
根据区级气象局的业务需求以及日常工资需要,设计并搭建了区级气象自动站信息系统,采用B/S结构开发,界面显示简洁、功能易于操作[8],初步实现气象观测设备区级情况自动站信息显示、设备检定信息等功能,通过该系统,各区级人员可以清楚获悉区级自动站设备信息,管理人员查看各区域自动站气象观测设备维修检定情况,降低了业务人员工作的繁琐程度,提高了自动站气象观测设备管理效率。除此之外,该信息系统对菜单栏进行权限管理,设置了用户查看自动站信息的范围。