2024年4月8日发(作者:)

洪水预报水文数据预处理方法探讨

陈光

【摘 要】洪水预报系统建设过程中,将水文整编数据转换为历史洪水资料的过程是

个关键步骤,涉及异构数据库转换和水文摘录数据时段化插补。以西苕溪流域实时洪水预

报系统开发为例,总结分析了现状条件下该系统历史洪水资料的获取途径,探讨雨量、蒸

发、水位、流量等整编数据异构库表转换方法和水文摘录数据时段化插补算法,为快速构

建洪水预报系统打好基础。

【期刊名称】《浙江水利科技》

【年(卷),期】2012(000)006

【总页数】2页(P62-63)

【关键词】洪水资料;整编数据;异构库表;时段化

【作 者】陈光

【作者单位】湖州市水文站,浙江湖州313000

【正文语种】中 文

【中图分类】P337

1 问题的提出

历史洪水资料是洪水预报模型参数率定的基础,建立水文预报方案的洪水资料基本由

水文整编数据转换而成[1]。位于湖州市境内的西苕溪流域防汛任务十分艰巨,为提高流域

内水库和河道代表站洪水预报的时效性,湖州市水文部门申报建设西苕溪流域实时洪水预

报系统。该系统降雨径流计算主要采用新安江模型,系统建设初期,首要的任务是将dBASE、

FoxPro、Sybase等不同格式存储管理的基础水文数据库相关记录转换为统一的数据库格

式,然后对所需的历史雨量、蒸发、水位、流量等数据进行库表结构转换、摘录数据时段

化转换插补等,最终形成洪水资料库。

水利行业标准SL 324—2005《基础水文数据库表结构及标识符标准》[2]贯彻实施的

时间不长,浙江省基础水文数据库经历了dBASE到FoxPro数据库开发管理的阶段,目前绝

大部分历史数据以.dbf文件格式存储。近几年,水文基础数据采用了南方片 《水文资料整

汇编软件》SHDP1.0进行整编,成果数据以Sybase SQL Anywhere 5.0格式存储(默认数

据文件为)[3];升级版SHDP2.0即将投入使用,成果数据改为SQL SERVER

2000(个人版)存储,数据库主文件为MDF格式。

SQLSERVER2000数据库管理程序实用性较好,西苕溪流域实时洪水预报系统采用其

作为后台数据库。因此,以MDF格式存储历史洪水资料即能满足生产要求。

2 历史洪水数据转换方法

采用SQL SERVER 2000的DTS(导入和导出数据)功能,分别将dBASE或FoxPro不

同版本的.dbf文件、Sybase版本的.db文件导入到新建的历史洪水数据库中,通过

DELPHI编程技术,实现相关数据库表结构转换和摘录数据时段化插补功能(见图1)。

图1 预报系统数据预处理功能列表图

应用DTS,需预先检查WINDOWS操作系统内置的管理工具ODBC数据源管理器中

是否存在Microsoft Visual FoxPro Driver和Sybase SQL Anywhere 5.0驱动程序,否则

需下载安装相应的驱动程序。

2.1 数据库格式转换

2.1.1 .dbf导入MDF

浙江省基础水文数据库以.dbf格式存储,由于数据管理程序开发升级,在库表结构上存

在2种版本 (3.0和4.0版,推荐应用后者),并且在dBase和FoxPro 2种不同环境下生成

的.dbf文件不完全兼容,导致无法采用单一数据源类型完成数据导入,导入步骤如下:

首先采用DTS以数据源类型为OLE DBProvider for Visual FoxPro、连接数据类型

为Free Table Directory,可以将大部分.dbf文件自动导入SQL SER VER 2000数据库中,

其余部分不能成功导入的.dbf文件,依次采用数据源类型为Microsoft dBase Driver、

dBase 5、dBase IV完成数据导入。

2.1.2 导入MDF

南方片《水文资料整汇编软件》SHDP1.0数据文件存储近几年的水文基础

数据整编成果,采用DTS以数据源类型为Sybase SQL Anywhere 5.0、添加和配置应用

DSN,即可完成数据导入。

2.1.3 统一库表结构

转换后的基础水文数据库和南方片整编成果库表结构不完全相同,在应用前需将相关

表进行再次转换,使之符合水利行业标准SL 323—2005《实时雨水情数据库表结构与标识

符标准》[4]。

2.2 时段化转换与插补

2.2.1 日累积量与日均值转换

蒸发、雨量属于累积量,日蒸发与日雨量数据表选取关键字段分别导入即可。日均水

位、流量分属不同的表,应用编程或SQL SER VER 2000查询分析器查询语句将同一测站

同期数据合并后插入新表。

基础水文数据库3.0版日表类表结构与实时雨水情库有很大不同,数据转换的目的是将

月记录转换成日记录。以某站逐日降水量表 (DP)雨量记录转换为例,说明日表类数据转换

编程要点:首先将 YR,MO,P1,...,P28,P29,P31等字段某年记录查询输出到二维数组,根据年

份(YR)数据判断是否为闰年以确定2月份的天数以及根据月份(MO)数据判断其他月的天

数,然后将逐日数据分离出来。表1表示二维数组中逐日数据的相对顺序号,逐日数据分离

的关键是生成日期数据的同时将序号为2至32、35至62(闰年为63)、……、365至395

的数据分别作为记录。

表1 日表类数据转换辅助表YRMOP1…P28P29P30P31 0 1 2 … 32 33 35…6263

66 68 … 98 99 101 … 130 132 134 … 164 165 167 … 196 198 200 … 230 231 233 …

263 264 266 … 295 297 299 … 329 330 332 … 361 363 365 … 395

2.2.2 摘录数据逐时转换

新安江模型次洪率定需要逐时蒸发量、雨量、流量等数据。逐时蒸发量数据的生成,

采用简化的蒸发与气温、日照的关系,按正态分布曲线将代表站逐日蒸发量分解到逐时,其

中,逐时蒸发量最大值分配在14∶00。

逐时雨量数据采用先分配后插补的方式进行。先将不等时间间距的雨量摘录数据平均

分配到时段内逐时 (当小时内有分钟雨量摘录数据时要进行累加),并对时段外逐时数据插

补为0(相邻记录时间相隔超过24 h时不补0)。预报站区域逐时平均雨量还可用加权平均

算法预先计算存储在自定义表内。

河道站和水库站洪水水文要素摘录数据逐时转换方式一致,对不等时间间距摘录的洪

水要素(水位、流量或蓄水量、出库流量等)按直线插值到逐时。在程序中以同时间轴方式

显示预报站年内逐时平均雨量水位流量过程线,就能判断次洪摘录的起讫时间,为次洪样本

的起讫时间确定提供方便。

2.2.3 其他相关数据转换

水库站水位—库容曲线采用最近年份的“水库控制运用计划”编报的数据,在应用时

将水位级差为1.0 m(或0.5 m)的水位库容曲线转换为级差为 cm的关系线存储,以方便程

序调用。在水库库容曲线、次洪逐时洪水要素完整的情况下,根据水量平衡原理,可反推逐

时入库流量,作为水库站降雨径流模型计算入库流量的实测值。

2.2.4 重复记录清理

经过上述转换,历史洪水数据库相关表中有可能出现重复记录,在SQL SERVER 2000

查询分析器中运行以下程序可以清理重复记录。

USE历史洪水数据库

SELECT DISTINCT*INTO#TMP FROM表名称

DROP TABLE表名称

SELECT*INTO表名称FROM#TMP

DROP TABLE#TMP

3 结 语

通过阐述西苕溪流域实时洪水预报系统建设前期历史洪水资料由各类异构库表转换的

方法以及相关水文摘录数据时段化插补算法,探讨了洪水预报水文数据预处理方法。通过

水文数据库异构库表转换统一,可以改进浙江省基础水文数据库管理方式;采用推荐的洪水

预报水文数据预处理时段化转换与插补方法,可以为快速构建洪水预报系统打好基础。

参考文献:

【相关文献】

[1]中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.GB/T

22482—2008水文情报预报规范 [S].北京:中国标准出版社,2009.

[2]中华人民共和国水利部.SL 324—2005基础水文数据库表结构及标识符标准[S].北

京:中国水利水电出版社,2005.

[3]梅军亚,张潮,赖厚桂.南方片水文资料整汇编软件系统开发与应用 [J].水

文,2006(2):73-75.

[4]中华人民共和国水利部.SL 323—2005实时雨水情数据库表结构与标识符标准 [S].

北京:中国水利水电出版社,2005.