1.本发明属于水利工程技术领域,尤其涉及洪水预报技术领域,具体为一种基于深度学习框架的洪水预报模型及洪水预报方法。
背景技术:
2.我国洪涝灾害频发,严重危害人民的生命财产安全。洪水预报是主要的防洪非工程措施之一,常用的洪水预报模型主要包括经验模型、概念性模型、分布式模型以及数据驱动模型等。其中数据驱动的洪水预报模型包括基于数理统计理论的时间序列模型,如arma、arima等,和基于机器学习算法的模型,如ann、svr、dt和fis等。基于机器学习算法的数据驱动模型还有待改进,以期提高预报精度并延长预见期。
技术实现要素:
3.本发明的目的在于提出一种基于深度学习框架的洪水预报模型构建方法,区别于以往的方法,克服现有技术的缺陷,从而提高预报精度并延长预见期。本发明的目的是通过以下技术方案实现的:
4.一种基于深度学习框架的洪水预报模型,其构建方法包括以下步骤:
5.1)收集和整理流域降雨、流量数据:收集流域内雨量站及水文站观测数据,处理获得等时段时间序列,包括:流域各个雨量站的点雨量时间序列、流域面雨量时间序列及流域出口流量时间序列;
6.2)洪水场次划分并关联降雨过程:根据流域出口流量时间序列划分洪水场次;将场次洪水与场次降雨进行匹配关联,依次寻找每个场次洪水序列所关联的降雨事件,筛选掉无法找到关联降雨事件的洪水事件,从而得到元素一一关联的降雨事件集合与洪水事件集合;
7.3)确定模型的输入时长t
in
、输出时长t
out
;
8.4)数据归一化处理:采用线性归一化方法对步骤2)中获得的所有场次洪水数据及关联的点、面雨量数据进行预处理;
9.5)场次降雨洪水划分和训练样本构建,包括以下步骤:
10.5-1根据步骤3)中计算的模型输入时长t
in
、输出时长t
out
,对归一化处理后的场次降雨洪水数据进行样本提取,方式为:
11.对于场次洪水数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个洪水样本;此样本分为两部分,其中滑动窗口提取序列的前部大小为t
in
的子序列为模型的输入序列,后部大小为t
out
的子序列为输入序列的标记序列;
12.对于点雨量数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个点雨量样本;在此样本基础上,进一步将滑动窗口提取序列的前部大小为t
in
的子
序列提取出来,作为模型的输入序列;
13.对于面雨量数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个面雨量样本;在此样本基础上,进一步将滑动窗口提取序列的后部大小为t
out
的子序列提取出来,作为模型的输入序列;
14.5-2样本构建:从步骤5-1中提取的所有样本中随机选取10%作为验证集样本,其余作为训练集样本;
15.6)预报模型构建:
16.模型结构采用双阶段注意力机制,两阶段注意力机制分别作用于encoder和decoder部分;第一阶段为输入注意力,在encoder部分通过注意力机制在多个驱动因素中进行自适应选择,模型的输入数据为流域内各雨量站的点雨量和流域出口流量,模型在各个时刻通过注意力机制为各点雨量和出口流量分配权重,获得加权输入向量第二阶段为时间注意力,在decoder部分,通过注意力机制为encoder各时刻的隐藏状态分配权重,并获得加权特征向量c
(t)
;
17.7)模型训练及超参数调整,包括以下步骤:
18.7-1设置模型训练样本,训练样本包含三部分内容:第一部分为encoder部分的输入,为各站点雨量和流域出口流量拼接的向量;第二部分为decoder的输入,包括当前时刻的面雨量和出口流量拼接向量,以及未来时刻的流域面雨量,用于与预报流量组成拼接向量;第三部分为模型的输出,为未来时刻的流域出口流量;
19.7-2模型的超参数包括神经元个数、批大小、损失函数、优化器、激活函数,超参数的选择方式为:通过调整超参数,对基于验证集的损失函数进行调优,从而获得合适的超参数。
20.进一步的,步骤1)包括如下步骤:
21.1-1采用线性内插法进行等时段处理,获得流域出口等时段流量时间序列数据;
22.1-2采用降雨量累积曲线插值进行等时段处理,获得各雨量站等时段点雨量时间序列数据;
23.1-3采用泰森多边形法进行面雨量的计算,获得面雨量时间序列,具体的计算方法为:对流域进行泰森多边形划分,根据站点对应的多边形面积占流域总面积的百分比计算雨量站的权重;设流域内共有m个雨量站,其中第i个雨量站对应的多边形面积为areai,对应的降雨时间序列为{p
i1
,p
i2
,...,p
ij
,...p
in
},则流域面雨量时间序列{p1,p2,...,pj,...,pn}的计算方法如式(1)所示:
[0024][0025]
式中,i为雨量站索引,j为降雨时间序列的长度索引,m为流域内雨量站点个数,n为雨量时间序列的总长度,area为流域总面积。
[0026]
进一步的,步骤2)包括如下步骤:
[0027]
2-1根据流域出口流量时间序列划分洪水场次,方式如下:
[0028]
划分流量序列中的基流部分和洪水部分,采用数字滤波法得到流量过程的基流部分,如公式(2)所示:
[0029][0030]
式中,b
t
为时刻t的基流,q'
t
为时刻t的流量,β为滤波系数;
[0031]
通过调整滤波次数和滤波系数来控制滤波效果,获得基流序列后,利用式(3)分离洪水序列{q1,q2,...,q
t
}:
[0032]qt
=q'
t-b
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0033]
2-2关联降雨过程:将场次洪水与场次降雨进行匹配关联,依次寻找每个场次洪水序列所关联的降雨事件,筛选掉无法找到关联降雨事件的洪水事件,从而得到元素一一关联的降雨事件集合与洪水事件集合;以洪水序列开始、结束时间点为基准进行关联降雨的提取;基于提取的降雨开始、结束时刻,分别从流域面雨量时间序列和各个雨量站的点雨量时间序列中截取降雨事件,并与洪水事件相关联。
[0034]
进一步的,步骤3)包括如下步骤:
[0035]
3-1基于步骤2)中获得的场次洪水数据和对应的面雨量数据,分析流域单位线,基于单位线获得流域洪峰滞时t
p
,净雨发生时刻至单位线最大流量出现时刻即为洪峰滞时;
[0036]
3-2制作流域出口流量时间序列自相关图与偏自相关图,基于相关性确定时段数tr;
[0037]
3-3选取步骤3-1中计算的洪峰滞时t
p
和步骤3-2中计算的tr中的大值作为模型的输入时长t
in
,即t
in
=max(t
p
,tr),t
out
不大于t
in
。
[0038]
进一步的,步骤4)包括如下步骤:
[0039]
采用线性归一化方法对步骤2)中获得的所有场次洪水数据及关联的点、面雨量数据进行预处理,方式如下式所示。
[0040][0041]
式中,x
norm
为归一化数值,x为观测值,x
max
和x
min
分别为观测值的最大最小值。
[0042]
一种基于所述的洪水预报模型进行洪水预报的方法。
[0043]
进一步的,通过获取实时雨水情数据及未来降雨数据,输入训练后的所述洪水预报模型进行洪水预报,包括如下步骤:
[0044]
步骤1:流域雨量站点及水文站点实时数据的准备:收集流域内所有雨量站和流域出口水文站当前时刻向前t
in
个时刻的雨量和流量数据,拼接成为输入向量;
[0045]
步骤2:流域预报面雨量数据的准备:通过栅格面积加权平均获得流域面雨量,获得当前时刻向后t
out
个时刻的面雨量数据,组成decoder部分的输入数据;
[0046]
步骤3:将步骤1和步骤2中的数据输入至训练的所述洪水预报模型中,获得未来预报流量序列。
[0047]
本发明的优点和有益效果是:
[0048]
本方法构建的模型以流域内雨量站的点雨量、流域出口水文站的流量数据和流域的预报面雨量作为输入,能够实现将前期降雨与流量过程同时作为模型输入,并能够实现将预报降雨数据作为模型输入,能够充分利用水雨情信息,从而提高预报精度并延长预见期。
附图说明
[0049]
下面结合附图和实施例对本发明作进一步说明。
[0050]
图1为本发明方法模型构建流程示意图。
[0051]
图2为局场次洪水提取参数示意图。
[0052]
图3为关联降雨事件提取参数示意图。
[0053]
图4为流域单位线示意图。
[0054]
图5为流量时间序列自相关图(偏自相关图)。
[0055]
图6为洪水预报模型结构示意图。
[0056]
图7为实施例2中马渡王流域单位线。
[0057]
图8为实施例2中流量自相关图与偏自相关图。
[0058]
图9为实施例2中训练集及验证集损失率。
[0059]
图10为实施例2中20110905场次洪水预报结果。
具体实施方式
[0060]
实施例1:
[0061]
一种基于深度学习框架的洪水预报模型,其构建方法包括以下步骤,如图1所示:
[0062]
1)收集和整理流域降雨、流量数据:
[0063]
1-1采用线性内插法进行等时段处理,获得流域出口等时段流量时间序列数据;
[0064]
1-2采用降雨量累积曲线插值进行等时段处理,获得各雨量站等时段点雨量时间序列数据;
[0065]
1-3采用泰森多边形法进行面雨量的计算,获得面雨量时间序列,具体的计算方法为:对流域进行泰森多边形划分,根据站点对应的多边形面积占流域总面积的百分比计算雨量站的权重;设流域内共有m个雨量站,其中第i个雨量站对应的多边形面积为areai,对应的降雨时间序列为{p
i1
,p
i2
,...,p
ij
,...p
in
},则流域面雨量时间序列{p1,p2,...,pj,...,pn}的计算方法如式(1)所示:
[0066][0067]
式中,i为雨量站索引,j为降雨时间序列的长度索引,m为流域内雨量站点个数,n为雨量时间序列的总长度,area为流域总面积。
[0068]
2)洪水场次划分并关联降雨过程。
[0069]
2-1根据流域出口流量时间序列划分洪水场次,方式如下:
[0070]
划分流量序列中的基流部分和洪水部分。采用数字滤波法得到流量过程的基流部分,如公式(2)所示。
[0071][0072]
式中,b
t
为时刻t的基流,q'
t
为时刻t的流量,β为滤波系数。
[0073]
通过调整滤波次数和滤波系数来控制滤波效果,获得基流序列后,利用式(3)分离洪水序列{q1,q2,...,q
t
}:
[0074]qt
=q'
t-b
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0075]
对洪水序列进行平滑处理,消除噪声项和异常点的影响,平滑公式如下式所示:
[0076][0077]
识别序列中的转折点:计算洪水序列的一阶差分序列{d1,d2,...,di,...,d
t
},根据一阶差分序列的正负变换判断序列转折点的位置,并对极大值与极小值加以区分。对于序列首尾处,若首尾值为极大值,则将其去掉;设定阈值th
min
,若首尾值小于序列均值除以阈值th
min
,则设定其为极小值。记录转折点序列及各值对应的峰(极大值)、谷(极小值)标记。
[0078]
识别洪水事件的开始、结束点:设定阈值th
slp
,选定第一个极小值作为开始点并向后搜索另一极小值,依据转折点数组的一阶差分序列进行判断,寻找满足公式(5)要求的极小值点mini作为结束点。
[0079]
min
i-min1<th
slp
·
max(|d1|,|d2|,...,|di|)
ꢀꢀꢀꢀꢀꢀꢀ
(5)
[0080]
对上一步中提取的洪水事件进行筛选与处理:设置阈值th
peak
,对于一次独立的洪水事件,若峰值与序列起始点或结束点的差值小于阈值th
peak
,则认为本次洪水过程量级不足以纳入考虑范围;设定动态坡度阈值th
dy
,对于一次独立的洪水事件,动态坡度为阈值th
dy
与极差的乘积,依据动态坡度删除洪水事件前部与后部的平坦部分;设定时间阈值th
δt
,对于一次独立的洪水事件,如持续时间小于阈值th
δt
,则认为本次洪水过程不足以纳入考虑范围,如图2所示。
[0081]
2-2关联降雨过程。将场次洪水与场次降雨进行匹配关联,依次寻找每个场次洪水序列所关联的降雨事件,筛选掉无法找到关联降雨事件的洪水事件,从而得到元素一一关联的降雨事件集合与洪水事件集合。以洪水序列开始、结束时间点为基准进行关联降雨的提取;具体步骤如下:
[0082]
设定阈值ths,基于流域面积确定ths的值,如公式(6)所示。
[0083][0084]
式中,f为流域面积(km2),阈值ths(h)为以洪水开始时刻t1为起点向前考虑降雨的最大时间范围。以t
1-ths为开始时间,以洪水结束时刻t3为结束时间,初步提取降雨序列。
[0085]
以步骤1)中计算的流域面雨量时间序列提取降雨开始、结束时间。首先,对降雨开始时间进行检查,去除前部的无效降雨。首先去除降雨序列前端的零值,然后计算t1时刻前无雨间隔,若无雨间隔δt≥6h,则只考虑无雨间隔后的降雨时段,有效降雨开始时刻记为ts。
[0086]
对降雨结束时间进行检查,去除后部的无效降雨。利用洪水序列的差分序列提取最后一个洪水峰值q
lastpeak
,以0.3q
lastpeak
为阈值,由洪水结束时刻t3向前搜索得到有效降雨结束时刻,记为t'e,最后一个有效降雨时刻记为te。关联降雨事件提取参数如图3所示,其中ts至te时刻为有效降雨,其余降雨为初步提取但被去除的无效降雨。
[0087]
基于提取的降雨开始、结束时刻,分别从流域面雨量时间序列和各个雨量站的点雨量时间序列中截取降雨事件,并与洪水事件相关联。
[0088]
3)确定模型的输入、输出时段数。
[0089]
3-1基于步骤2)中获得的场次洪水数据和对应的面雨量数据,分析流域单位线,基于单位线获得流域洪峰滞时t
p
,如图4所示,净雨发生时刻至单位线最大流量出现时刻即为洪峰滞时。
[0090]
3-2制作流域出口流量时间序列自相关图与偏自相关图,形式均如图5所示,设定阈值thr,当相关系数绝对值大于thr,认为相关性较强,thr的取值建议为0.5至0.8范围内选取,基于相关性确定时段数tr。
[0091]
3-3选取3-1中计算的洪峰滞时t
p
和3-2中计算的tr中的大值作为模型的输入时长t
in
,即t
in
=max(t
p
,tr),输出时长t
out
可根据实际需求设定,一般建议不大于t
in
。
[0092]
4)数据归一化处理。
[0093]
采用线性归一化方法对步骤2)中获得的所有场次洪水数据及关联的点、面雨量数据进行预处理,方式如下式所示。
[0094][0095]
式中,x
norm
为归一化数值,x为观测值,x
max
和x
min
分别为观测值的最大最小值。
[0096]
5)场次降雨洪水划分和训练样本构建。
[0097]
5-1根据步骤3)中计算的模型输入、输出时段数,对归一化处理后的场次降雨洪水数据进行样本提取,方式为:
[0098]
对于场次洪水数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个洪水样本。此样本分为两部分,其中滑动窗口提取序列的前部大小为t
in
的子序列为模型的输入序列,后部大小为t
out
的子序列为输入序列的标记序列。
[0099]
对于点雨量数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个点雨量样本。在此样本基础上,进一步将滑动窗口提取序列的前部大小为t
in
的子序列提取出来,作为模型的输入序列。
[0100]
对于面雨量数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个面雨量样本。在此样本基础上,进一步将滑动窗口提取序列的后部大小为t
out
的子序列提取出来,作为模型的输入序列。
[0101]
5-2样本构建。从步骤5-1中提取的所有样本中随机选取10%作为验证集样本,其余作为训练集样本。
[0102]
6)预报模型构建。
[0103]
模型结构采用双阶段注意力机制,结构如图6所示,两阶段注意力机制分别作用于encoder和decoder部分。第一阶段为输入注意力,在encoder部分通过注意力机制在多个驱动因素中进行自适应选择,模型的输入数据为流域内各雨量站的点雨量和流域出口流量,模型在各个时刻通过注意力机制为各点雨量和出口流量分配权重,获得加权输入向量第二阶段为时间注意力,在decoder部分,通过注意力机制为encoder各时刻的隐藏状态分配权重,并获得加权特征向量c
(t)
。
[0104]
6-1具有输入注意力机制的encoder部分;
[0105]
如图5所示,encoder部分为包含注意力机制的单层lstm结构,输入数据为x={x
(1)
,x
(2)
,x
(3)
,...,x
(n)
},其中代表i时刻的输入向量,由流域内雨量站i时刻点雨量数据和流域出口水文站点i时刻流量数据组成,k代表驱动序列的数量。对于第k个驱动序列基于感知机构建相似度函数计算其权重,如公式(8)和公式(9)所示。
[0106][0107]
式中,为encoder中lstm循环单元i-1时刻的隐藏状态与内部状态的拼接向量,和为权重矩阵,n和n分别为隐藏状态大小和输入序列的长度。
[0108][0109]
式中α
ik
为i时刻第k个驱动因素的权重。
[0110]
由i时刻的输入向量x(i)加权获得新的输入向量如公式(10)所示。
[0111][0112]
进而通过公式(11)至公式(16)计算i时刻的隐藏状态。
[0113][0114][0115][0116][0117][0118][0119]
式中,为encoder在i-1时刻的隐藏状态与i时刻的加权输入向量的拼接向量,和分别为encoder在i时刻的隐藏状态、候选状态和内部状态,和分别为i时刻的遗忘门、输入门和输出门,wf、wi、wo和为权重矩阵bf,bi、bo和为偏置项,σ为sigmoid函数。
[0120]
6-2具有时间注意力机制的decoder部分;
[0121]
如图5所示,在decoder阶段,首先通过注意力机制计算encoder部分各时刻隐藏状态的权重,方法见公式(17)和公式(8)。
[0122][0123]
式中,为decoder中lstm循环单元t-1时刻的隐藏状态与内部状态的拼接向量,为encoder部分i时刻的隐藏状态,为encoder部分i时刻的隐藏状态,和为权重矩阵,n和m分别为encoder和decoder部分lstm循环单元隐藏状态大小。
[0124][0125]
式中,β
ti
代表了decoder在计算t时刻的隐藏状态时,encoder中第i时刻隐藏状态的重要程度。
[0126]
通过对encoder部分各时刻隐藏状态加权求和获得加权特征向量c
(t)
传递给decoder,如公式所示。
[0127][0128]
式中
[0129]
decoder部分的输入数据为其中代表t时刻的输入向量,由流域内各雨量站点t-1时刻预报降雨和t-1时刻的预测流量组成,k为驱动序列的数量。将加权特征向量c
(t)
与输入向量进行拼接,转换为新的输入向量如公式(20)所示。
[0130][0131]
式中,为拼接向量,为权重矩阵,为偏置项。
[0132]
进而通过公式(21)至公式(26)计算t时刻的隐藏状态。
[0133][0134][0135][0136][0137][0138][0139]
式中,为decoder在t-1时刻的隐藏状态与t时刻的输入向
量的拼接向量,和分别为decoder在t时刻的隐藏状态、候选状态和内部状态,和分别为t时刻的遗忘门、输入门和输出门,wi、wo和为权重矩阵,bi、bo和为偏置项。
[0140]
最终,通过全连接层获得t时刻的输出,如公式(27)所示。
[0141][0142]
式中,为t时刻的decoder的隐藏状态与加权特征向量c
(t)
的拼接向量,为权重矩阵,为偏置项。
[0143]
7)模型训练及超参数调整。
[0144]
7-1设置模型训练样本,训练样本包含三部分内容:第一部分为encoder部分的输入,为各站点雨量和流域出口流量拼接的向量;第二部分为decoder的输入,包括当前时刻的面雨量和出口流量拼接向量,以及未来时刻的流域面雨量,用于与预报流量组成拼接向量;第三部分为模型的输出,为未来时刻的流域出口流量。
[0145]
7-2模型的超参数包括神经元个数、批大小、损失函数、优化器、激活函数,超参数的选择方式为:通过调整超参数,对基于验证集的损失函数进行调优,从而获得合适的超参数。
[0146]
实施例2:
[0147]
本实施例为基于实施例1中所示深度学习框架的洪水预报模型的洪水预报方法。通过获取实时雨水情数据及未来降雨数据,准备模型输入,基于实施例1步骤7)中训练的预报模型进行洪水预报。
[0148]
步骤1:流域雨量站点及水文站点实时数据的准备,收集流域内所有雨量站和流域出口水文站当前时刻向前t
in
个时刻的雨量和流量数据,拼接称为输入向量其中代表i时刻的输入向量,由流域内雨量站i时刻点雨量数据和流域出口水文站点i时刻流量数据组成。
[0149]
步骤2:流域预报面雨量数据的准备,预报降雨数据通常为雷达降雨、数值预报成果等,一般为栅格数据,通过栅格面积加权平均获得流域面雨量。获得当前时刻向后t
out
个时刻的面雨量数据,组成decoder部分的输入数据其中代表t时刻的输入向量,由流域内各雨量站点t-1时刻预报降雨和t-1时刻的预测流量组成。
[0150]
步骤3:将步骤1和2中的数据输入至实施例1步骤7)中训练的模型中,获得未来预报流量序列。
[0151]
在本实施例中:
[0152]
收集到黄河流域渭河支流灞河1970年至2015年马渡王站流量数据及流域内灞源、穆家堰、牧护关等11座雨量站的降雨数据,按照实施例1步骤1)、步骤2)介绍的方法,共提取160场洪水。
[0153]
采用优化算法推求流域单位线如图7所示,根据单位线分析可知流域洪峰滞时t
p
约为9h。
[0154]
制作马渡王站流量自相关与偏自相关图,如图8所示,设置thr=0.5,马渡王站8h内流量相关系数高于thr,进一步通过偏自相关图发现,3h后流量相关性较小,则tr为3。
[0155]
根据t
p
和tr,计算得到模型输入时长t
in
=9h,设定输出时长t
out
为6h。
[0156]
采用实施例1步骤4)中介绍的方法对数据进行归一化处理。
[0157]
采用实施例1步骤5)中介绍的方法,划分训练样本,获得总样本6780个,其中训练集样本6102个,验证集样本678个。
[0158]
采用实施例1步骤6)中介绍的方法,利用keras函数式(model)模型构建预报模型。
[0159]
采用实施例1步骤7)中介绍的方法,对模型进行训练,并对超参数进行优选,最终获得损失率变化如图9所示,确定模型超参数为:两层lstm神经元个数分别为16、16,批大小为256,损失函数选取relu,优化器为adam,激活函数为mse。
[0160]
采用步骤1、2、3中介绍的方法,对马渡王站20110905场次洪水进行滚动预报,结果如图10所示。
[0161]
最后应说明的是,以上仅用以说明本发明的技术方案而非限制,尽管参照较佳布置方案对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
技术特征:
1.一种基于深度学习框架的洪水预报模型,其特征在于,其构建方法包括以下步骤:1)收集和整理流域降雨、流量数据:收集流域内雨量站及水文站观测数据,处理获得等时段时间序列,包括:流域各个雨量站的点雨量时间序列、流域面雨量时间序列及流域出口流量时间序列;2)洪水场次划分并关联降雨过程:根据流域出口流量时间序列划分洪水场次;将场次洪水与场次降雨进行匹配关联,依次寻找每个场次洪水序列所关联的降雨事件,筛选掉无法找到关联降雨事件的洪水事件,从而得到元素一一关联的降雨事件集合与洪水事件集合;3)确定模型的输入时长t
in
、输出时长t
out
;4)数据归一化处理:采用线性归一化方法对步骤2)中获得的所有场次洪水数据及关联的点、面雨量数据进行预处理;5)场次降雨洪水划分和训练样本构建,包括以下步骤:5-1根据步骤3)中计算的模型输入时长t
in
、输出时长t
out
,对归一化处理后的场次降雨洪水数据进行样本提取,方式为:对于场次洪水数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个洪水样本;此样本分为两部分,其中滑动窗口提取序列的前部大小为t
in
的子序列为模型的输入序列,后部大小为t
out
的子序列为输入序列的标记序列;对于点雨量数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个点雨量样本;在此样本基础上,进一步将滑动窗口提取序列的前部大小为t
in
的子序列提取出来,作为模型的输入序列;对于面雨量数据,由各场次洪水对应的降雨事件开始时刻起,设置滑动窗口,窗口大小为t
in
+t
out
,设由降雨事件开始时刻至洪水结束时刻的时长为t,则可滑动提取t-(t
in
+t
out
)+1个面雨量样本;在此样本基础上,进一步将滑动窗口提取序列的后部大小为t
out
的子序列提取出来,作为模型的输入序列;5-2样本构建:从步骤5-1中提取的所有样本中随机选取10%作为验证集样本,其余作为训练集样本;6)预报模型构建:模型结构采用双阶段注意力机制,两阶段注意力机制分别作用于encoder和decoder部分;第一阶段为输入注意力,在encoder部分通过注意力机制在多个驱动因素中进行自适应选择,模型的输入数据为流域内各雨量站的点雨量和流域出口流量,模型在各个时刻通过注意力机制为各点雨量和出口流量分配权重,获得加权输入向量第二阶段为时间注意力,在decoder部分,通过注意力机制为encoder各时刻的隐藏状态分配权重,并获得加权特征向量c
(t)
;7)模型训练及超参数调整,包括以下步骤:7-1设置模型训练样本,训练样本包含三部分内容:第一部分为encoder部分的输入,为各站点雨量和流域出口流量拼接的向量;第二部分为decoder的输入,包括当前时刻的面雨量和出口流量拼接向量,以及未来时刻的流域面雨量,用于与预报流量组成拼接向量;第三
部分为模型的输出,为未来时刻的流域出口流量;7-2模型的超参数包括神经元个数、批大小、损失函数、优化器、激活函数,超参数的选择方式为:通过调整超参数,对基于验证集的损失函数进行调优,从而获得合适的超参数。2.根据权利要求1所述的基于深度学习框架的洪水预报模型,其特征在于,步骤1)包括如下步骤:1-1采用线性内插法进行等时段处理,获得流域出口等时段流量时间序列数据;1-2采用降雨量累积曲线插值进行等时段处理,获得各雨量站等时段点雨量时间序列数据;1-3采用泰森多边形法进行面雨量的计算,获得面雨量时间序列,具体的计算方法为:对流域进行泰森多边形划分,根据站点对应的多边形面积占流域总面积的百分比计算雨量站的权重;设流域内共有m个雨量站,其中第i个雨量站对应的多边形面积为area
i
,对应的降雨时间序列为{p
i1
,p
i2
,...,p
ij
,...p
in
},则流域面雨量时间序列{p1,p2,...,p
j
,...,p
n
}的计算方法如式(1)所示:式中,i为雨量站索引,j为降雨时间序列的长度索引,m为流域内雨量站点个数,n为雨量时间序列的总长度,area为流域总面积。3.根据权利要求1所述的基于深度学习框架的洪水预报模型,其特征在于,步骤2)包括如下步骤:2-1根据流域出口流量时间序列划分洪水场次,方式如下:划分流量序列中的基流部分和洪水部分,采用数字滤波法得到流量过程的基流部分,如公式(2)所示:式中,b
t
为时刻t的基流,q'
t
为时刻t的流量,β为滤波系数;通过调整滤波次数和滤波系数来控制滤波效果,获得基流序列后,利用式(3)分离洪水序列{q1,q2,...,q
t
}:q
t
=q'
t-b
t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)2-2关联降雨过程:将场次洪水与场次降雨进行匹配关联,依次寻找每个场次洪水序列所关联的降雨事件,筛选掉无法找到关联降雨事件的洪水事件,从而得到元素一一关联的降雨事件集合与洪水事件集合;以洪水序列开始、结束时间点为基准进行关联降雨的提取;基于提取的降雨开始、结束时刻,分别从流域面雨量时间序列和各个雨量站的点雨量时间序列中截取降雨事件,并与洪水事件相关联。4.根据权利要求1所述的基于深度学习框架的洪水预报模型,其特征在于,步骤3)包括如下步骤:3-1基于步骤2)中获得的场次洪水数据和对应的面雨量数据,分析流域单位线,基于单位线获得流域洪峰滞时t
p
,净雨发生时刻至单位线最大流量出现时刻即为洪峰滞时;3-2制作流域出口流量时间序列自相关图与偏自相关图,基于相关性确定时段数t
r
;3-3选取步骤3-1中计算的洪峰滞时t
p
和步骤3-2中计算的t
r
中的大值作为模型的输入
时长t
in
,即t
in
=max(t
p
,t
r
),t
out
不大于t
in
。5.根据权利要求1所述的基于深度学习框架的洪水预报模型,其特征在于,步骤4)包括如下步骤:采用线性归一化方法对步骤2)中获得的所有场次洪水数据及关联的点、面雨量数据进行预处理,方式如下式所示。式中,x
norm
为归一化数值,x为观测值,x
max
和x
min
分别为观测值的最大最小值。6.一种基于权利要求1~5中任意一项所述的洪水预报模型进行洪水预报的方法。7.根据权利要求6所述的洪水预报的方法,其特征在于:通过获取实时雨水情数据及未来降雨数据,输入训练后的所述洪水预报模型进行洪水预报,包括如下步骤:步骤1:流域雨量站点及水文站点实时数据的准备:收集流域内所有雨量站和流域出口水文站当前时刻向前t
in
个时刻的雨量和流量数据,拼接成为输入向量;步骤2:流域预报面雨量数据的准备:通过栅格面积加权平均获得流域面雨量,获得当前时刻向后t
out
个时刻的面雨量数据,组成decoder部分的输入数据;步骤3:将步骤1和步骤2中的数据输入至训练的所述洪水预报模型中,获得未来预报流量序列。
技术总结
本发明公开了一种基于深度学习框架的洪水预报模型及洪水预报方法,模型的构建包括以下步骤:1)收集和整理流域降雨、流量数据;2)洪水场次划分并关联降雨过程;3)确定模型的输入、输出时段数;4)数据归一化处理;5)场次降雨洪水划分和训练样本构建;6)预报模型构建;7)模型训练及超参数调整。本发明的预报模型,能够实现以流域点雨量而非面雨量作为模型输入,能够实现将前期降雨与流量过程同时作为模型输入,并能够实现将预报降雨数据作为模型输入,能够有效提高洪水预报精度。能够有效提高洪水预报精度。能够有效提高洪水预报精度。
技术研发人员:王帆 张大伟 向立云 姜晓明 张洪斌 杜晓鹤
受保护的技术使用者:中国水利水电科学研究院
技术研发日:2021.12.06
技术公布日:2022/3/8