APP下载

水文年鉴复刊中引排水(潮)量数据的快速校核方法

2016-09-02颜小华任晓东唐晓春

治淮 2016年7期
关键词:序列化年鉴校核

颜小华 任晓东 唐晓春

水文年鉴复刊中引排水(潮)量数据的快速校核方法

颜小华任晓东唐晓春

一、引言

由于历史原因,江苏省负责汇编刊印的5卷4册与6卷19、20册水文年鉴从1989~2005年根据上级要求,停止了汇编刊印。为适应水利建设及国民经济发展对水文服务的需求,保持水文资料系列的连续性,江苏省水文水资源勘测局决定对主编卷册停刊水文年鉴进行复刊,苏州分局作为主编单位,承担了6卷20册水文年鉴汇编刊印工作。作为江苏省特有的引排水(潮)量统计表,6卷20册包含了13个水文站的数据,而省局从数据库中导出并提供的CSV中又没有包含这些数据,这就需要在年鉴复刊软件中采用人工方式对引排水(潮)量过程表、旬、月、年统计表进行录入。这其中引排水(潮)量过程表的录入及校核是一项繁重的工作,虽然两人背靠背录入方式能减少入库错误的发生,但最后生成的成果表总会有意想不到的问题出现。通过多年来对引排水(潮)量过程表数据的检查过程的实践积累,尝试将年鉴复刊软件生成的hjs文件通过 VB.NET读取到 Excel中,在Excel中根据引排水推流公式采用Visual Basic forApplication(以下简称VBA)编程方式对提取的引排水数据进行校核。

二、数据提取

分析hjs文件可知,采用年鉴复刊程序生成的hjs文件,是将DataSet记录序列化后,以字符编码为UTF-16,保存的XML文件。因此要完成引排水(潮)量数据的校核,就要首先将hjs反序列化,以下为反序列化部分代码。

MessageBox.Show("反序列化时出错!")

反序列化后,再将数据导出到Excel文件中,以下为导出到Excel部分代码。

图1为将hjs文件中的数据导出到Excel中后的成果表,数据导入到Excel后,就可以用VBA编程方式对导入的数据进行校核。

三、数据校核

江苏沿江感潮堰闸站按潮引水或排水,采用“一潮推流法”定线推流。“一潮推流法”一般以有效波高、开闸开始水位与一次开闸的涨潮流或落潮流流量相关,建立通用关系式:

式中:Q—涨潮流或落潮流流量,m3/s;

根据“一潮推流法”的定义,图1中的第六列一潮水量由第四、五列根据公式(1)乘以第二、三列的历时所得,最后一列一潮最大流量由第四、五列根据公式(1)计算所得。因此,校核录入数据正确与否,就只要看由公式计算出来的结果同最后两列的差值是否为零。具体操作步骤如下:

1.首先在Excel的N、O、P列分别输入引排水平均流量、最大流量的K、α、β系数,如图2所示;

2.然后切换到VBA,点击运行按钮。以下为部分计算代码:

图1 hjs数据到Excel表成果图

图2  引排水系数图

图3  数据检查结果图

3.运行后,在Excel的I、J、K、L列得到相应数据,其中,I、K列分别为水量计算值、最大流量计算值,J、L列为计算值与人工录入数据的差值;

4.最后再检查J、K两列的数值,如果结果不为零,则人工录入数据有可能就有误,图3为检查结果示例。

四、结束语

本文通过VB.NET将年鉴复刊软件生成的hjs导出到Excel中,根据引排水量推流公式,用VBA编程的方法,计算得到水量、最大流量,实现了对人工录入的引排水时间、水位、水量、流量的电算化校核,极大减轻了数据校核人员的工作强度,提高了工作效率,为快速查找人工录入的引排水(潮)量过程表数据的错误提供了一种高效且可行的方法■

(作者单位:江苏省水文水资源勘测局苏州分局215000)

猜你喜欢

序列化年鉴校核
发电机进相试验失磁保护与低励限制配合关系的校核
基于FlatBuffers的机车通信数据序列化方法应用研究
特色·可读·扩展《江苏年鉴(2020)》
如何建构序列化阅读教学
通行费校核分析方法探究
《中国交通运输年鉴(2019)》征订单
基于卫星遥感图像的收费站位置自动识别与校核
《中国交通运输年鉴(2019)》征订单
FPSO火炬塔海运绑扎方案及强度校核
《中国交通运输年鉴(2018)》征订单