APP下载

基于ECharts 的库区水文及气象数据监测系统的设计与应用

2021-07-25黎颖智李有华史彩霞

气象研究与应用 2021年2期
关键词:实况雨量图表

黎颖智,李 勇,李有华,史彩霞

(1.广西壮族自治区气象信息中心,南宁 530022;2.广西壮族自治区气象灾害防御技术中心,南宁 530022)

引言

暴雨洪涝灾害是广西影响范围最广、持续时间最长、造成损失最大的自然灾害之一,近年来呈现多发态势。洪涝造成洪水源短流急,陡涨陡落,汇流快,洪峰高,水量大,不利于水电站的电网调度,常造成巨大的损失。水电站库区流量预报是一个跨学科、交叉的研究领域,气象预报与水文预报的结合能为防洪和水库调度提供有力支撑,是水文预报发展的必然趋势[1-10]。

以前水文气象资料查询方式主要是通过表格向用户进行反馈,此数据呈现方式的优点是将研究指标或统计指标及其取值以特定表格的形式列出,方便计算机下一步对数据进行存储、筛选等操作。但缺点是数据不够直观,不利于人工分析判断和对比不同变量之间的关系。数据太多时,则此方式可能使用户对数据本身或数据的含义感到难以研判而导致无法有效地向服务对象传达信息。

统计图是根据统计数字,用几何图形、事物形象和地图等绘制的各种图形,它具有直观、形象等特点。统计图可以使复杂的统计数字简单化、形象化,使人一目了然,便于理解和比较。此外,统计图可以为用户提供快速参考,通过大尺度时间范围的水文气象数据图表可以很好地揭示表格难以呈现的趋势、模式或关系。百度开发的ECharts 可通过增量渲染技术支持Cavas 或svg 的形式渲染图表,从而能更直观地展现数据。中科院的刘斌等利用Echarts 实现了FerryBox 水文数据的可视化,从而使多种水文参数能在同一时间统计图表中进行直观的折线展示[11]。ECharts 在气象方面也有应用,但用于同时监测水文数据和气象数据的系统方案尚未报道。本文通过HTML5、ECharts 的新技术设计开发出同时具有表格和图表数据显示功能的库区水文及气象数据监测系统,方便用户对同样的数据既可进行计算机分析,也可进行人工研判,为进一步提高水文气象科技服务提供有益的参考。

1 技术路线

1.1 系统开发环境与框架

基于B/S 架构进行模块化设计,IIS+ASP.NET+Oracle.ManagedDataAccess 建设模式,利用成熟的WEB 技术,通过VS2010、html5 等开发工具,结合浏览器支持的C#、JavaScript、ActiveX 技术等多种语言进行程序开发,采用多层服务结构体系,表示层、业务层、服务层、组件层、数据层分开,以满足系统松耦合性、位置透明性以及协议无关性的要求,提高系统结构的扩展性和柔韧性,方便系统迁移、修改和升级。

1.2 ECharts 可视化技术

通过引入ECharts 开源可视化库,可以流畅的运行在PC 和移动设备上,兼容当前绝大部分浏览器,ECharts 的底层依赖矢量图形库ZRender,能为用户提供直观,交互丰富,可高度个性化定制的数据可视化图表,ECharts 由数据驱动,数据的改变驱动图表展现的改变。因此动态数据的实现也会变得简单,只需导入所获取的数据,ECharts 会找到不同组别数据之间的差异然后经由合适的动画去展现数据的变化。配合组件能够在更高的时间维度上去表现数据的信息[11-14]。从而实现为用户提供各库区气象、水文信息的数据查询、图表生成、数据导出、在线统计分析、数据的展示等功能。

1.3 Oracel 数据库与相关开发技术

采用成熟的Oracel 数据库作为系统后台的数据库管理引擎,并支持对各种类型数据库的访问和存储;实现严格的安全身份认证和授权管理,保证系统完整性与安全性;采用先进的开发平台和技术,确保系统环境的先进性。早期C# 项目都使用.Net Framework 自带的System.Data.OracleClient 对Oracle数据库进行访问。此方式在.Net4.0 中被认为已过时,且Oracle Client 安装包有600 多M,如果用户数量巨大的时候,会导致工作量过大,耗费资源。在查阅网上的资料后,发现Oracle 官方推出的驱动Oracle.ManagedDataAccess.dll,该动态链接库的优点是可随oracle 数据库更新,不必考虑过时无法使用问题;安装方便,从网上下载后直接引用即可,无需安装Oracle Client,耗费资源少,运行时的文件小于4M。

2 系统设计与实现

2.1 系统功能模块设计

结合广西水利气象服务行业的实际情况,构建各流域水库径流量的实时监测与预测情况,实现对降水量、径流量的实况数据,降水量、径流的预报数据,按照时间轴的方式进行查询、分析等全方面的信息系统。能使用户快速查询相关数据,通过相关的统计分析,径流量实时计算,用户能有更明确的工作方向,做出有针对性的决策,减少灾害,加强防范。系统结构如图1 所示,分为5 大模块,具体设计如下:

图1 系统结构图

(1)系统登录模块。该模块采用分级管理模式和严格的安全身份认证,用户通过用户名密码方式登录系统,并根据权限进入到相对应的功能页面:管理用户进入后台管理页,前台用户则进入数据显示页面,并且将该前台用户关联的水库以Cookie 的形式传送到数据显示页面中,当网站中用户需要跨多个页面表单时可以用它来保持用户状态。模块可自动生成随机验证码图片,可防止恶意程序的暴力破解登录。

(2)日数据展示模块。该模块位于数据显示页面下,通过引入ECharts 开源可视化库,建立可动态显示的曲线/柱状图表。该模块可根据登陆用户所关联的水库生产列表,用户选择需要查看的水库、起始日期后点击“查询”按钮,可显示该时间段内的该水库每天的雨量实况、预报(柱状)和入库流量实况、预报(曲线)。界面分成上下两个显示区,上部为雨量,下部为流量,数据的时间间隔以日为单位。上下显示区的数据按日期同步联动,鼠标在任一显示区滑动时,其右下角会有一浮动标签显示当前鼠标所在日期上的实况和预报数据。在最底部设置有独立滑动条的区域放缩组件,可进行拖动或缩放操作,能任意查看细节的数据信息,或概览数据的整体走势。点击工具栏中的数据视图选项可将数据以表格形式呈现。

(3)小时数据展示模块。该模块通过引入ECharts开源可视化库,建立可动态显示的曲线/柱状图表。可根据选择时间段显示该时间段内的所选水库每小时的雨量实况、预报(柱状)和入库流量实况、预报(曲线)。其界面设计与日数据展示模块基本一致,只是时间选择组件需要精确至小时位,数据的时间间隔以小时为单位。

(4)系统用户管理模块。该模块主要为系统管理用户使用,采用表单形式提供对用户的添加删除、角色设置、权限设置(为用户关联一个或多个水库)、密码修改、日志查看等功能。

(5)后台数据传输模块。该模块与前台网站不直接对接,对用户是透明的。可自动获取大唐公司传输过来的流域流量实况数据并自动入库,可自动获取气象局雨量实况及制作的相关流域预报数据并入库。由于雨量数据来自气象局内部,而流量实况数据来自外部门,两者获取渠道不同,且数据生成时间具有不确定性。为解决此问题,模块采用控制台程序作为开发模式,优点是比较节省系统资源,处理大量数据时,不会因线程被阻塞而停止响应,可全天候自动监控数据。

2.2 数据库设计

信息库采用Oracel 数据库,包含逐小时流量预测表、24h 流量预测表、水电站日表、水电站小时表、大唐传输对应数据点号表、91 个流域面雨量实况表、91 个流域面雨量7d 预报表、91 个流域逐时面雨量预报数据表(如表1)、用户信息表。

2.3 提取预报功能的设计与实现

由于预报员每天做未来7d 的雨量和流量预报,一天对应一组数据,表结构如表1,所以当查询某起始日X1至终结日Xm(Md)内的预报数据时,数据库返回的数据其实是一个M 乘以7 的一个矩阵:[X00,X01…X06;X10,X11…X16;……;X(M-1)0,X(M-1)1…X(M-1)6;]。当Xm小于或等于用户进行查询操作当日时,程序返回结果为各行第一个元素所组成数组:[X00,X10,X20,…,X(M-1)0];当Xm大于用户进行查询操作当日Xj 时,程序返回结果为各行第一个元素及最后一行前(Xm-Xj)个元素所组成数组:[X00,X10,X20,…,X(M-1)0,…X(Xm-Xj) 0],操作过程如图2。

表1 91 个流域面雨量7d 预报表结构

图2 提取预报查询结果流程图

ECharts 提供了包括折线图、柱状图等常规图表,这些图表以构建文件的形式引入项目后可直接使用,但为了符合用户实际需求,有些功能的实现需开发者自定义编码进行配置,本系统为了实现两个图表显示区可联动操作的解决方式:在Echarts 代码设置项中添加axisPointer:{ link:[ {xAxisIndex:[0,1],}]},表示所有xAxisIndex 为0\1 的坐标轴联动;在series 中将实况降水、预测降水的xAxisIndex、yAxisIndex 均设为0,实况流量、预测流量的则设为1;最后将dataZoom 中 的xAxisIndex 设置为[0,1]。这样上下显示区的数据就能按日期同步联动,并且在最底部设置有区域放缩组件。在toolbox 设置项中添加dataView:{show:true,readOnly:true},则工具栏中可添加数据视图按钮,点击按钮可将图表数据转换为表格数据,方便下载保存。关键代码如下:

3 结论与讨论

通过探讨ECharts 在库区水文及气象数据监测系统设计当中对数据可视化方面的应用,形成可在同一时空分布图表中展示多个参数,从而更加灵便地表达水文气象数据的解决方案,帮助用户能快速地从不同的维度和角度观察雨量及流量数据的相互关系,发现特殊的现象,挖掘有用信息,总结出气象对水文影响的相关规律,进一步提高水电气象服务的质量和水库水情监控能力。广西是水电大省,境内拥有大量水电站,本系统可向全区推广。ECharts 还提供了地理数据的可视化功能,但尚未应用到本系统当中,在今后的系统扩展中有待进一步完善和提高。随着广西省级“天擎”的部署完成,未来可探索本系统如何接入“天擎”系统,利用其“数据、算力、算法”三位一体的平台化服务,实现广西水文气象服务模型的智能化发展,进而取得更好的服务效益。

猜你喜欢

实况雨量图表
宁夏红柳沟流域水沙变化及产沙分析
乡村小学的愿望与现实——宜君乡村教育实况
基于小波去噪的称重雨量数据分析
天舟一号货运飞船发射实况掠影
可爱潮咖们的独门彩妆实况直播
双周图表
双周图表
双周图表
图表
SL—1 型雨量传感器故障分析排除和维护