何 健,王 娇,李 凯,朱得糠,冯胜男,刘金雨
(1.江苏省水文水资源勘测局,江苏南京 210029;2.北京金水信息技术发展有限公司,北京 100053)
国家“十四五”规划纲要明确要求,构建智慧水利体系,以流域为单元提升水情测报和智能调度能力。建设数字孪生流域是推进智慧水利建设的核心和关键,以数字孪生流域建设带动智慧水利建设,通过数字化、网络化、智能化的思维、战略、资源、方法,来提升水利决策与管理的科学化、精准化、高效化能力和水平。
“十四五”时期,为应对智慧水利工作新要求,水文工作的目标中提到基本实现水文全要素、全量程自动监测,水文数据处理、预测预报和分析评价全流程自动化和智能化[1]。水情作为水文工作的窗口,承担着水文服务防汛抗旱减灾及经济社会发展的重要任务,是开展信息化、智能化的前沿和载体,通过水情的信息化实现水文的信息化,从而助推水利的智慧化[2]。
报汛是水情工作的一项重要内容,其主要任务是:按照报汛任务(委托)书要求,对监测数据进行接收、处理、存储和转发,不错报、不迟报、不缺报、不漏报。报汛质量直接关系到水情分析评价与预测预报的准确性,进而影响防汛抗旱指挥决策的科学性,历来受到高度重视。2021年,水利部信息中心正式印发《水情信息报送考评规定(试行)》,通过统一考评指标、规范考评流程,进一步强化报汛质量管理。
为更好支撑数字孪生流域建设,升级改造的报汛软件应充分考虑空天地一体化水利感知网中地面监测增加的监测要素与频次需求,考虑应急监测水位、流量等信息快速报送需求,实现实时更新重要站点水雨工灾等监测信息。
目前,江苏省水情报汛实行人工和自动相结合的模式,报汛流程见图1。人工报汛针对流量、引排水量、工情等人工监测或计算的数据,通过“移动报汛系统”实现。移动端报汛APP人工提交的数据在分中心因特网区落地,再由同步软件定时抓取至分中心水情库;分中心水利专网与因特网之间架设网闸进行安全隔离。自动报汛针对降水量、水位、墒情等遥测自动采集的数据。遥测数据经移动专线入水情分中心原始库,再由“统一数据交换平台”完成向分中心应用库的同步;分中心遥测报汛系统按照报汛任务书要求,从分中心应用库取数,编报(时段统计、基面改正、质量控制等)入分中心水情库。自动和人工报汛数据在分中心水情库汇集,13个地市水文分局和6个厅属工程管理处,采用水情信息交换系统传输水情数据[3],进而完成与省中心,与水利部、流域机构、外省的数据交换。
图1 江苏省水情报汛流程现状
目前水情报汛存在问题主要表现在3个方面。
(1)人工报汛经由因特网存在一定安全隐患。人工报汛数据从移动端APP发出,经因特网传输,在分中心因特网区落地,全程因特网环境,数据安全无法得到充分保障。面对日趋严峻的网络信息安全形势,分中心有时不得不在一段时期内关闭移动报汛系统,人工报汛受到较大影响,尤其是在大量水利工程相关站点。
(2)报汛系统分散式部署,运行维护难度较大。江苏省现有19个分中心,每个分中心均有至少4套与报汛相关的系统同时运行,包括遥测报汛系统、移动报汛系统、水情信息交换系统、统一数据交换平台。随着报汛工作强度的不断加大,分中心有限的专业力量难以有效应对各系统及相关服务器、数据库的运维任务。此外,在江苏省范围内,原始库、应用库的同步与汇集采用自主开发的统一数据交换平台,而水情库之间的交换则采用水利部信息中心下发的水情信息交换系统,全省水文数据尚未实现统一交换。
(3)报汛系统功能不完善,与业务需求不匹配。现有遥测报汛软件2013年开发完成,其间没有大的升级改造,主要功能和技术指标已不能完全满足水文情报预报工作新需求。例如:在水位陡涨陡落地区,系统最高每小时一次的报汛频次明显不足;时段特征值自动统计、流量在线推算等功能,系统暂未提供支持,仍需依靠人工处理。
针对现行报汛流程中存在的问题,提出调整方案,如图2所示。
图2 调整后水情报汛流程
2.3.1 人工报汛功能整合
“湖泛人工巡查与信息监测预警平台”建立了符合网络信息安全要求的数据通道,开发了移动端APP,实现水文巡测、湖泛巡查、应急监测成果的随测随报。在湖泛巡查APP中整合报汛相关功能,彻底解决目前人工报汛的安全隐患。人工报汛数据按照与遥测数据完全相同的流程,最终在省中心原始库和应用库汇集。
2.3.2 全省集中统一编报
去除分中心遥测报汛功能,改由省中心集中统一编报。调整后,分中心可取消水情库,不再维护遥测报汛系统、水情信息交换系统,运维压力大大减轻。省中心部署遥测报汛系统,从汇集全省遥测数据和人工报汛数据的省中心应用库取数,编报入省中心水情库。这样,江苏省范围内的数据交换均由统一数据交换平台承担,与水利部、流域机构和外省的数据交换仍通过水情信息交换系统。
2.3.3 遥测报汛系统升级
按照全省集中统一编报要求,升级遥测报汛系统。新增5分钟报、变动加报等报送频次设置功能;新增日、旬、月等时段均值和极值的自动统计功能;新增水工建筑物推流、水位流量关系线推流等流量在线计算功能。
针对水情报汛流程优化中的遥测报汛系统升级,开发了江苏省水情报汛管理系统。软件开发后端采用Spring Boot框架、前端采用Vue框架,采用Shiro安全框架,开发语言为Java Script。软件核心业务功能为报汛站点管理、报汛项目管理、报汛任务管理和报汛过程管理。
3.1.1 总体框架
系统总体框架包括承载层、数据资源层、业务支撑层、用户层、标准规范体系和信息安全体系(图3)。承载层是系统的基础,主要包括系统的基础设施和网络环境,可充分应用水文局已有基础设施;数据资源层可实现数据的调用、生成和存储,从应用库读取遥测和人工报汛数据,从特征库读取特征值等信息,报汛数据入实时雨水情数据库;业务支撑层通过业务功能的构建,实现对报汛站点、报汛项目、报汛任务和报汛过程的管理;用户层包括省级用户和市级用户2级用户,省级用户侧重报汛实时监控、报汛统计、访问日志查看、人员账号管理功能的实现,便于掌握报汛详情和管理市局用户,市级用户主要通过系统实现报汛测站管理、报汛任务书配置、实时监控报汛详情、管理本级用户及查看访问日志等。
图3 总体框架
3.1.2 业务流程
根据报汛任务书,针对每一个报汛测站进行报汛任务配置。首先,实现报汛测站的基本信息维护,包括配置测站的基本信息、站码对应、关系曲线、特征值、阈值、信息采集方式、监测方式等;其次,配置站点报汛任务,选择报送的任务,任务的报送频次、算法以及是否加报等信息。完成以上配置后,进入报汛环节,报汛前会对数据进行质量控制,如是否有数据、是否能计算数据,如有数据或数据能正常计算则进入下一步判断数据是否超警,如果无数据或数据不全无法计算数据,则进行数据缺失或数据不全的报警,判定数据为漏报,启动5分钟轮询。业务流程见图4。
图4 业务流程
正常报汛和异常报汛的数据统一纳入实时监控,此外针对需人工处理的数据支持在线报送。以上从任务配置到质量控制到报汛整个环节相应的操作、报警、轮询等都会进行痕迹记录并生成日志。
3.1.3 系统安装与部署
系统采用省中心集中部署,一主一备保存数据。
本次升级改造的江苏省水情报汛管理系统有如下特点。
3.2.1 安全易维护
基于经典技术Spring Boot、Apache Shiro、MyBatis、Thymeleaf、Bootstrap的统一权限后台管理系统开发,使开发人员可以节省开发时间,降低技术难度,专注核心业务,提升软件安全质量,软件更易维护。(1)内置了部门管理、角色管理、菜单及按钮授权、数据权限、系统参数、日志管理、通知公告等功能模块,一键生成控制器、模型、视图、菜单等功能,节省了开发成本,缩短了开发周期;(2)支持多数据源,简单配置即可实现数据源切换,支持按钮及数据权限,可自定义部门数据权限,降低了技术难度;(3)完善的XSS防范及脚本过滤,彻底杜绝XSS攻击,使软件更安全;(4)对常用的js插件进行二次封装,使js代码变得简洁;(5)Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块,更易维护。
3.2.2 简单易操作
系统按照核心业务分为了四大管理模块,即报汛站点管理、报汛项目管理、报汛任务管理和报汛过程管理。报汛站点管理主要用于维护站点相关信息,对测站相关的信息如基面修正值、阈值、关系曲线等一站式配齐,统一维护;报汛项目管理,便于用户快速了解系统支持的现有报汛项目并根据项目情况配置报汛任务;报汛任务管理,用户可根据报汛任务书要求配置报汛站点报汛项目、报汛频次、报汛算法;报汛过程管理,用户针对配置好的报汛任务,实时查看正常报、迟报、漏报、奇异报情况,通过在线报汛补报或修正报汛数据,保证报汛时效性和质量。
报汛站点和报汛任务信息维护时的增加、删除、修改等操作直观。检索工具个性化、多样化,便于快速定位测站和任务。报汛实时监控可动态灵活展示各报汛单位、任意时段、不同报汛等级测站的报汛情况,便于用户快速发现报汛问题并及时处理。
3.2.3 项目全而新
报汛功能升级,报汛项目新增日、旬、月、年时段均值和极值的自动统计和上报,报汛频次上新增5分钟和变动报的报汛频次设置,新增水工建筑物推流、水位流量关系线推流、水位库容曲线推算水库蓄水量等在线计算功能,新增潮位特征值自动编报功能,具体支持的项目情况见表1。
表1 报汛项目汇总
3.2.4 多线程并发
目前水利部下发到江苏省报汛任务的站点总计458个,江苏省下发到分局及管理处报汛任务的站点总计619个,去掉重复的站点,总计有814个站点报汛,每个站点报汛项目1~20个不等。同一时间每个站有多个项目同时报送,随着报汛项目和报汛频次的增加,单线程不能满足多个报汛项目同时入库的需求。针对报汛未到数据采用5分钟轮询机制,在轮询上进行报汛项目分类的多线程并发处理,对于报汛站点多、报汛频率高的项目如雨量、瞬时水位、瞬时流量等各开启一个线程,其他项目根据任务情况可以几个项目一个线程。对每个线程进行梳理,分析主次线程逻辑关系,并行交叉的线程尽量并行交叉,按照优先级划分,采取避让原则,保证线程尽早工作,提升运行效率,避免线程相互争夺资源[4]。
3.3.1 报汛站点管理
报汛站点管理,实现报汛站点的新增、编辑和删除,维护测站基本属性表各类数据、设置遥测码和报汛码对应关系、设置超阈值告警的阈值、维护水位库容关系曲线信息等。
3.3.2 报汛项目管理
报汛项目管理,查看系统支持的报汛项目,包括降水量、(潮)水位、蒸发量、流量、蓄水量、引排水量、土壤墒情、工情和风力风向9大类,每个项目都有简介和报汛流程,介绍项目的计算方法、报送规则、轮询机制和告警规则等,便于用户快速了解报汛项目。
3.3.3 报汛任务管理
报汛任务管理包括任务配置和任务分组。任务配置通过选择报汛项目、配置项目报汛频次、项目算法、报汛起讫时间实现报汛项目的统一在线配置。任务分组,通过定义分组、设置分组报汛任务,实现向不同管理单位定制化报汛需求。
3.3.4 报汛过程管理
报汛过程管理包括实时监控和在线报汛。实时监控可自定义查询某段时间内和每小时不同管理单位中央报汛站、省级报汛站、其他报汛站3种类型站点正常报、迟报、漏报和奇异报4种报汛状况报汛信息。在线报汛可根据实时监控中发现的漏报和奇异报等情况进行补报和报文修正。
以数字孪生流域建设带动智慧水利建设,打造数字孪生流域坚实基础,基本实现水文全要素、全量程自动监测,水文数据处理、预测预报和分析评价全流程自动化和智能化,提升水情测报能力。分析江苏水情现有报汛流程,并对该流程进行了优化,实现人工报汛功能整合、遥测报汛系统升级、全省集中统一编报。升级改造后的江苏水情报汛管理系统基于统一权限后台管理系统二次开发,开发更快捷、系统更安全;包含报汛站点管理、报汛项目管理、报汛任务管理、报汛过程管理四大核心业务,业务功能清晰,操作简单方便;报汛项目更多、报汛频次更密、报汛项目算法更新;为提升报送效率,数据报送采用多线程并发处理技术。通过系统建设,增加报汛要素、报汛频次,改进报汛算法,一定程度上提升了江苏水情测报能力,为建设数字孪生流域、推进智慧水利建设打下坚实信息基础。