解开创
(云南水文水资源局大理分局,云南 大理 671000)
大理水文自动测报系统的遥测终端主要由水位计、雨量传感器、数据采集终端(RTU)、数据传输信道、通信设备、应用软件、数据处理计算机和供电电源等构成。实现了雨量、水位信息的自动采集、存储,并通过通信信道实时或定时自动传送至中心站,实现“有人看管、无人值守”的管理模式。目前,大理水文分局共建成 1 中心站、40 个水文(水位)遥测站和 127 个遥测雨量站。
中心站软件由水情信息接收处理系统、数据转储软件、水情报文编码系统及符合 SL323-2005《实时雨水情数据库表结构与标识符标准》[1]的 SQL Server 2000 数据库组成;遥测站软件由遥测终端RTU、掌上电脑接口系统、笔记本电脑接口系统等组成。水情报文编码系统从 SL323-2005 标准的数据库中读取相应信息,定时自动编制符合 SL330-2005《水情信息编码标准》[2]的水情报文,存储于计算机中供水情工作人员调用并通过网络发送。
由于水情报文编码系统所生成的报文可能会存在的错误,主要表现为报文数据不完整,水位、流量、雨量等的异常数据。因此,必须对自动测报报文进行合理性检查后才能转发。大理水文分局自动测报报文一般每天 8:10 左右生成,要求在8:25 之前通过 VPN 网络报到云南省水文局,前后检查时间只有 15 min。15 min 内,要对 20 个水文站和 5 个水库站的降水、水位、流量等报文数据进行检查,如果采用人工检查,工作量大,很难在报汛规定的时间内发现和改正错误,要解决此问题,只有通过软件对这些数据进行快速、准确检查,及时发现和改正错误。
因此,需要开发水情报文校核系统,对报文进行快速准确检查,并将结果及时反馈给水情值班人员,由值班人员根据提示的错误进行确认,改正。
1) Excel版的报文校核系统。Excel 版的报文校核系统,主要用于对人工报文进行校核,能对日、旬、月报文进行全面校核,并进行编码。
优点:水情报文信息要素自动匹配到对应单元格里面;报文各项水情要素信息形象、直观展现给用户,保证用户能及时检查出错误;建立了图形化界面显示水位过程线、降水柱形图。
缺点:历史数据没有保存在数据库中,只保存在表格里面,当保存的数据累积到一定程度,影响到电子表格的运算速度;表与表之间数据关联程度高,容易产生关联错误,很难及时进行纠正;在报文校核时,1 次只能粘贴 1 条对应站点的报文,用户需自行查找对应站点,不能批量校核报文,从而增加校核工作量。
2)软件版报文校核系统。云南省昆明水文分局开发了类似的报文校核软件。
优点:建立了数据库存放水位流量关系表,实现了应用程序与数据的分层结构;通过下拉列表框动态选择站点进行编码和校核。
缺点:功能单一,校核要素不完整,只能进行水位流量关系等部分水情要素校核;仅能实现单站水情数据编码功能,不能同时对多站进行校核和编码;不能动态添加校核站点,动态设置校核参数;数据分析、汇总、图形显示化功能缺失。
3)大理水情报文校核系统。大理水情报文校核系统充分吸收借鉴上述版本报文校核系统的优点,使其具有报文校核功能为主,其他辅助功能兼有的报文校核系统。
经过对比分析,选择方案 3 实现报文校核。
大理分局水情报文校核系统对 20 个水文站、5 个水库站的自动测报报文进行校核和编码,其中自动测报报文采用 SL330-2005 中的河道水库水情A 格式编码。当水文站自动测报报文出现问题时,采用人工报文编报,要求对人工报文进行校核和编码,所以报文校核系统至少应具有人工和自动测报报文校核功能和人工报文编码功能。经过对报文校核系统的功能进行分析,报文校核系统数据流图如图1 所示。
图1 报文校核系统数据流图
经过具体分析,报文校核系统技术实现原理为:首先根据测站信息表中站码,批量提取文本报文的各项水情要素,然后匹配到对应站码的网格单元里面,这是报文校核系统设计的关键步骤,是实现报文校核的前提条件;报文水情要素提取后,通过提取设置好的校核参数对报文进行校核,水情报文校核流程如图2 所示。
图2 水情报文校核流程
1)自动测报报文编码格式。大理自动测报报文采用 SL330-2005 河道水库水情 A 格式编码。
自动测报日报文编码格式举例:AH 9020050007020800 PD 0.0 WS 9 Z 2059.19 ZS 6 Q 1550 QS 1 NN;人工日报文格式举例:9020330002180800 20.08 2229.666 0.0211。
自动测报、人工旬报文、月报文格式类似,这里不多叙述。
2)报文格式预检查。在进行切割报文前,要对报文进行预检查,主要检查报文各项水情要素是否完整,有没有非上述格式的数据存在,例如:日报文一般由站码、时间、雨量、天气、水位、水势、流量、测法信息构成[2],如果报文不包含或是多于这些要素,就需要对报文进行合理性检查;对报文的站码要素进行检查,判断其是否存在错误的站码,例如:如果报文中站码不在测站信息的站码列表中,则以警示颜色标识对应文本行,提示用户进行检查。
3)文本字符串的处理。完成对报文预检查后,对于正确的报文,就可以开始提取报文各水情要素。通过对上述自动测报报文格式的仔细观察,发现可以通过水情要素标识符号与报文信息相对应原则进行提取,如 AH 与 PD 之间对应站码和时间码,PD 与 WS 之间对应日雨量,其他项以此类推。在实际编程过程中,可以采用字符串字符查找和分割函数[3]相结合的方式对水情要素进行提取,将结果保存到数组中。人工报文处理更为简单,通过空格字符对报文信息进行分割,用数组进行存储。
提取到各站码对应的水情要素后,根据报文中的站码要素与测站信息表中的站码进行比对,然后自动匹配到相应测站网格单元里[1]。通过这样对报文进行处理后,网格单元形象直观的显示报文信息,为下一步软件对各项数据进行校核提供更便捷的处理方式。
为更准确的检查出报文存在的问题,需要为雨量、水位、流量等水情要素设置校核参数。
1)水位流量关系数据导入[4]。水位流量关系数据文件的是整个报文校核系统的关键设计环节,是水位流量相互校核的基础数据。为方便导入水位流量关系线,简化数据录入量,特设计水位流量关系数据文本导入维护功能。同时设计了水位流量关系数据维护界面,包括用户对数据进行添加、删除、修改、查询等功能。
2)雨量、水位流量关系线等校核参数设置。主要通过软件参数设置界面动态设置雨量、水位变幅范围,设置校核水位流量的关系线,然后将设置参数保存到数据库中。
报文水情要素提取到对应站点的单元格,水位流量关系数据导入数据库,各项校核参数设置完毕后,就可以对报文要素进行校核,具体校核原理如下:
1)报文完整性检查,判断其报文编码是否完整,是否有漏项,同时对报文中的站码进行检查,如果有错误,则提示水情值班人员。
2)报汛时间检查[2],根据报汛时间来核对报文编码的时间是否正确。观测时间码应由月日时分组成,编码格式:MMDDHHNN。报汛时间主要是提取当前系统的时间,然后转化成对应格式进行校核,也可以人工输入校核时间。
3)日雨量变幅检查,通过软件的校核参数设置日雨量变幅范围,若日雨量超过规定的范围时,提示值班人员。值班人员对提示信息进行确认,及时发现异常报文。
4)水位变化检查,有 2 种校核方法:设定站点的最高和最低水位值来进行检查;通过与校核数据时间最近的历史水位数据进行比较,将水位变幅信息提示值班人员。本系统的水位校核采用这 2 者相结合的方式。
5)水位流量关系检查,用户通过报文水位数据查询水位流量关系表,获取相应流量数据,再与报文流量数据进行对比来检查错误。
6)旬雨量、月雨量检查,通过对历史的旬、月雨量数据进行汇总,然后与报文旬、月雨量进行比较校核。
7)天气、水势、测法检查[2],主要按照水情信息编码标准,其可能出现的值范围进行编码检查。水情信息编码中,天气的编码只能是 5,6,7,8,9 中的 1 个,水势只能是 4,5,6 中的 1 个,测法只能有 1,2,3,4,5,6,9 中的 1 个(一般测法为 1)。
检查无误或人工修正后的报文,通过软件的报文编码功能对其进行编码,同时保存报文要素形成历史数据,供校核和报文统计分析使用。
结合大理水文分局的工作实际需要,对报文校核系统功能进一步扩展如下:
1)金沙江上游公司水情报文生成。部分站点的报文进行二次加工后形成对金沙江中游公司的报汛报文。
2)华能澜沧江水情报文生成。根据华能澜沧江的报文编码规则,生成相应水情报文。
3)水情报文编码功能。手工输入数据,或批量粘贴人工报文,直接生产水情编码报文。
4)图形化显示。显示降水柱形图和水位过程线,为水情分析及数据合理性检查提供参考。
5)水情分析。通过校核软件对报文再加工,形成降水量月、年统计等水情分析资料。
水情报文校核系统作为其辅助软件,编制完成后,经过近 2 a 的运行,各项功能逐步完善,形成以报文校核功能为主,水情信息编码及其他分析辅助功能兼有的报文信息处理系统,为提高报汛的准确、时效性,减少了工作量,提高工作效率发挥重要作用。同时,鉴于水情报汛都是按照水情信息编码标准编报,所以该水情报文校核系统可供同行参考使用。
[1]水利部水利信息中心. SL323-2005 实时雨水情数据库表结构与标识符标准[S]. 北京:中国水利水电出版社,2005: 7-26.
[2]水利部水利信息中心. SL330-2005 水情信息编码标准[S]. 北京:中国水利水电出版社,2005: 3-44.
[3]求是科技. Visual Basic 6.0 程序设计技术与开发大全[M].北京:人民邮电出版社,2004: 10-123.
[4]明日科技,高春燕,安剑,等. Visual Basic 程序开发范例宝典[M]. 2版. 北京:人民邮电出版社,2009: 225-332.