一种淹没过程模拟方法及系统与流程

文档序号:20265357发布日期:2020-04-03 18:19阅读:345来源:国知局
一种淹没过程模拟方法及系统与流程

本发明涉及地理信息技术领域,尤其涉及一种淹没过程模拟方法及系统。



背景技术:

中国地域辽阔,自然条件复杂,洪水灾害发生会严重影响国民经济的发展和人民生命财产的安全。地理信息系统(geographicinformationsystem,gis)地形分析方法是目前一种分析淹没区域的方法。但是gis地形分析方法因缺乏对洪水传播的物理特征描述,所以通常会得到一些不符合物理常识的结果,如淹没区域不连通,没有水力坡降等。因此gis方法无法对洪水传播过程模拟。



技术实现要素:

发明目的:本发明针对现有技术存在的问题,提供一种淹没过程模拟方法及系统,通过将gis方法和水动力模型进行结合,解决了单纯的gis地形分析方法无法对洪水传播过程模拟的问题,得到更加合理且准确的淹没过程模拟结果。

技术方案:本发明所述的淹没过程模拟方法包括:

通过水动力方程获取淹没区域当前时刻河网的所有水位值;

对所述淹没区域进行三角形网格单元划分,得到多个三角形网格单元以及每个所述三角形网格单元的高程值;

将所述河网的水位值分别插值给对应的三角形网格单元,确定三角形网格单元的水位值;

将所有三角形网格单元的水位值与高程值进行对比,将水位值大于高程值的三角形网格单元确定为当前淹没单元;

根据当前淹没单元与其邻接三角形网格单元之间的水位和高程关系,判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元,得到第一判断结果;

当所述第一判断结果表示存在时,将所述可淹没单元标记为淹没单元并存储于淹没单元序列中;

从所述淹没单元序列中删除在当前时刻之前被标记为淹没单元的三角形网格单元,得到当前淹没单元序列;

判断所述当前淹没单元序列是否为空集,得到第二判断结果;

当所述第二判断结果表示否时,将所述当前淹没单元序列中的三角形网格单元更新为当前淹没单元,返回执行步骤“根据当前淹没单元与其邻接三角形网格单元之间的水位和高程关系,判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元,得到第一判断结果”;

当所述第二判断结果表示是时,判断是否达到模拟时间;

当达到所述模拟时间时,停止模拟,完成一次淹没过程模拟;

当未达到所述模拟时间时,更新当前时间所述河网的所有水位值,并返回执行步骤“将所述河网的水位值分别插值给对应的三角形网格单元,确定三角形网格单元的水位值”。

进一步的,所述对所述淹没区域进行三角形网格单元划分,得到多个三角形网格单元以及每个所述三角形网格单元的高程值,具体包括:

对所述淹没区域进行三角形网格划分,得到三角形网格;

对所述三角形网格进行拓扑分析,得到网格单元;

获取所述淹没区域的堤坝信息,以及确定与堤坝相近的所述网格单元;

将所述堤坝设置为与堤坝相近的网格单元的边,重新对所述淹没区域进行三角形网格单元划分,得到三角形网格单元和三角形网格单元与河网节点映射关系表;

根据所述三角形网格单元计算每个所述三角形网格单元的高程值。

进一步的,所述根据当前淹没单元与其邻接三角形网格单元之间的水位和高程关系,判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元,具体包括:

判断当前淹没单元的边是否为堤坝;

当判断结果为是时,将堤坝的邻接三角形网格单元设置为非淹没单元;

当判断结果为否时,将当前淹没单元的水位值与判断结果为否的边所对应的邻接三角形网格单元的高程值进行对比;

当对比结果表示当前淹没单元的水位值大于判断结果为否的边所对应的邻接三角形网格单元的高程值时,将判断结果为否的边所对应的邻接三角形网格单元确定为可淹没单元。

进一步的,所述通过水动力方程获取淹没区域当前时刻河网的所有水位值,具体包括:

通过地理信息系统对淹没区域的数字高程模型进行数字地形分析,得到河网信息;

获取所述淹没区域的淹没边界条件;

根据所述淹没边界条件和所述河网信息,通过水动力方程得到所述淹没区域的水位时空变化信息;其中,所述水位时空变化信息包括河网的所有水位值。

进一步的,所述将所述河网的水位值分别插值给对应的三角形网格单元,具体包括:

根据所述水位时空变化信息和所述三角形网格单元与河网节点映射关系表,将所述河网的水位值分别插值给对应的三角形网格单元。

本发明所述的淹没过程模拟系统包括:

获取水位值模块,用于通过水动力方程获取淹没区域当前时刻河网的所有水位值;

三角形网格单元划分模块,用于对所述淹没区域进行三角形网格单元划分,得到多个三角形网格单元以及每个所述三角形网格单元的高程值;

插值模块,用于将所述河网的水位值分别插值给对应的三角形网格单元,确定三角形网格单元的水位值;

确定当前淹没单元模块,用于将所有三角形网格单元的水位值与高程值进行对比,将水位值大于高程值的三角形网格单元确定为当前淹没单元;

第一判断模块,用于根据当前淹没单元与其邻接三角形网格单元之间的水位和高程关系,判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元,得到第一判断结果;

淹没单元存储模块,用于当所述第一判断结果表示存在时,将所述可淹没单元标记为淹没单元并存储于淹没单元序列中;

当前淹没单元序列获取模块,用于从所述淹没单元序列中删除在当前时刻之前被标记为淹没单元的三角形网格单元,得到当前淹没单元序列;

第二判断模块,用于判断所述当前淹没单元序列是否为空集,得到第二判断结果;

当前淹没单元更新模块,用于当所述第二判断结果表示否时,将所述当前淹没单元序列中的三角形网格单元更新为当前淹没单元,并返回执行所述第一判断模块;

模拟时间判断模块,用于当所述第二判断结果表示是时,判断是否达到模拟时间;

停止模拟模块,用于当所述模拟时间判断模块的结果为是时,停止模拟,完成一次淹没过程模拟;

水位值更新模块,用于当所述模拟时间判断模块的结果为否时,更新当前时间所述河网的所有水位值,并返回执行所述插值模块。

进一步的,所述三角形网格单元划分模块具体包括:

三角形网格划分单元,用于对所述淹没区域进行三角形网格划分,得到三角形网格;

网格单元获取单元,用于对所述三角形网格进行拓扑分析,得到网格单元;

获取堤坝信息单元,用于获取所述淹没区域的堤坝信息,以及确定与堤坝相近的网格单元;

三角形网格单元获取单元,用于所述堤坝设置为与堤坝相近的网格单元的边,重新对所述淹没区域进行三角形网格单元划分,得到三角形网格单元和三角形网格单元与河网节点映射关系表;

计算高程值单元,用于根据所述三角形网格单元计算每个所述三角形网格单元的高程值。

进一步的,所述第一判断模块具体包括:

堤坝判断单元,用于判断所述当前淹没单元的边是否为堤坝;

非淹没单元获取单元,用于当堤坝判断单元的结果为是时,将堤坝的邻接三角形网格单元设置为非淹没单元;

高程值对比单元,用于当堤坝判断单元的结果为否时,将当前淹没单元的水位值与判断结果为否的边所对应的邻接三角形网格单元的高程值进行对比;

可淹没单元获取单元,用于当高程值对比单元的对比结果表示当前淹没单元的水位值大于判断结果为否的边所对应的邻接三角形网格单元的高程值时,将判断结果为否的边所对应的邻接三角形网格单元确定为可淹没单元。

进一步的,所述获取水位值模块具体包括:

河网信息获取单元,用于通过地理信息系统对所述淹没区域的数字高程模型进行数字地形分析,得到河网信息;

获取淹没边界条件单元,用于获取所述淹没区域的淹没边界条件;

水位时空变化信息获取单元,用于根据所述淹没边界条件和所述河网信息,通过水动力方程得到所述淹没区域的水位时空变化信息;其中,所述水位时空变化信息包括河网的所有水位值。

进一步的,所述插值模块具体用于根据所述水位时空变化信息和所述三角形网格单元与河网节点映射关系表,将所述河网的水位值分别插值给对应的三角形网格单元。

有益效果:本发明通过将淹没区域进行不规则三角网(triangulatedirregularnetwork,tin)格网化,使三角形更加适应不规则堤坝线,在堤坝区域,堤坝的每一段都可以用不同的三角形的边来拟合,保证堤坝的连续性和位置的精度。同时,根据三角形的信息表,将三角形中正好是堤坝的边标记出来。在计算洪水漫滩的时候,如果碰到标记堤坝的三角形边,受堤坝的阻挡,即使邻接三角形地势低于洪水位,洪水也无法蔓延过去。除了考虑人工阻水设施外,该方法的优点还包括通过邻接三角形网格单元的扩散考虑淹没区域的连通性,通过河网水位值插值能够考虑整个淹没区域的水力坡降,解决了传统gis采用简单水位判断法得到的非连通淹没区域的不连通性和无法考虑水力坡降的缺陷。与二、三维水动力模型相比,该方法不需要考虑淹没区域水量动量守恒计算,所以计算量大大降低,适用于基于高分辨率(1m)三角格网的快速淹没计算。

附图说明

图1为本发明实施例1所提供的淹没过程模拟方法的流程图;

图2为本发明实施例2所提供的淹没过程模拟系统的系统结构图;

图3为本发明实施例3所提供的模拟方法的流程图;

图4为本发明实施例3所提供的无堤坝蔓延过程;

图5为本发明实施例3所提供的有堤坝蔓延过程。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步详细的说明。

实施例1

本实施例提供一种淹没过程模拟方法,图1为本发明实施例1所提供的淹没过程模拟方法的流程图。参见图1,淹没过程模拟方法包括:

步骤101,通过水动力方程获取淹没区域当前时刻河网的所有水位值。

该步骤具体包括:

1)通过地理信息系统对淹没区域的数字高程模型进行数字地形分析,得到河网信息。具体为:通过地理信息系统(geographicinformationsystem或geo-informationsystem,gis)的水文分析模块对淹没区域的数字高程模型(digitalelevationmodel,dem)进行数字地形分析,得到河网信息、河网横截面信息和子流域面信息。将河网信息、河网横截面信息和子流域面信息采用矢量化的gis地理信息系统支持下的一种矢量数据通用格式:shapefile文件进行存储。

2)获取淹没区域的淹没边界条件。淹没边界条件包括:淹没区域的上游流量边界条件和淹没区域的下游潮位边界条件。上游流量边界条件包括:当洪水为雨洪时,根据降雨数据通过产流模型得到上游流量边界条件。下游潮位边界条件包括:根据第三方潮流模型得到下游潮位边界条件。

3)根据淹没边界条件河网信息,通过水动力方程得到淹没区域的水位时空变化信息。水位时空变化信息包括:河网的所有水位值。通过河网水位值插值能够考虑整个淹没区域的水力坡降,即水位在空间上的分布差异,解决了传统gis无法考虑水力坡降的缺陷。

步骤102,对淹没区域进行三角形网格单元划分,得到多个三角形网格单元以及每个三角形网格单元的高程值。

该步骤具体包括:

1)对淹没区域进行三角形网格划分,得到三角形网格,对三角形网格进行拓扑分析,得到网格单元。具体为:采用地表水模拟系统(surface-watermodelingsystem,sms)对淹没区域进行三角形网格划分,得到多个三角形网格。对所有三角形网格进行拓扑分析,得到与三角形网格对应的网格单元。

2)获取淹没区域的堤坝信息,以及确定与堤坝相近的三角形网格单元。具体包括:获取淹没区域的堤坝的位置信息,以及根据堤坝的位置信息确定与堤坝相近的三角形网格单元。

3)将堤坝设置为与堤坝相近的网格单元的边,重新对淹没区域进行三角形网格单元划分,得到三角形网格单元、三角形网格单元编号、三角形网格单元结点编号及坐标值、三角形网格单元的边编号及属性赋值、网格单元和河网节点映射关系分析表,以及三角形网格单元的邻接三角形网格单元信息表。将堤坝设置为与堤坝相近的网格单元的边,重新对淹没区域进行三角形网格单元划分具体包括:调整与堤坝相近的网格单元,使网格单元与堤坝最相近的一条边与堤坝重和,并同时重新对淹没区域进行三角形网格单元划分,使淹没区域中所有的堤坝均为与堤坝相近的网格单元的边。

4)根据三角形网格单元计算每个三角形网格单元的高程值。

步骤103,将河网的水位值分别插值给对应的三角形网格单元,确定三角形网格单元的水位值。

其中,插值时,是根据水位时空变化信息和三角形网格单元与河网节点映射关系表,将河网的水位值分别插值给对应的三角形网格单元。

步骤104,将所有三角形网格单元的水位值与高程值进行对比,将水位值大于高程值的三角形网格单元确定为当前淹没单元。

步骤105,根据当前淹没单元与其邻接三角形网格单元之间的水位和高程关系,判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元,得到第一判断结果。

该步骤具体包括:

1)判断当前淹没单元的边是否为堤坝。

2)当判断结果为是时,将堤坝的邻接三角形网格单元设置为非淹没单元。

3)当判断结果为否时,将当前淹没单元的水位值与判断结果为否的边所对应的邻接三角形网格单元的高程值进行对比。

4)当对比结果表示当前淹没单元的水位值大于判断结果为否的边所对应的邻接三角形网格单元的高程值时,将判断结果为否的边所对应的邻接三角形网格单元确定为可淹没单元。

步骤106,当第一判断结果表示存在时,将可淹没单元标记为淹没单元并存储于淹没单元序列中。

步骤107,从淹没单元序列中删除在当前时刻之前被标记为淹没单元的三角形网格单元,得到当前淹没单元序列。

步骤108,判断当前淹没单元序列是否为空集,得到第二判断结果。

步骤109,当第二判断结果表示否时,将当前淹没单元序列中的三角形网格单元更新为当前淹没单元,返回步骤105。

步骤110,当第二判断结果表示是时,判断是否达到模拟时间。

步骤111,当达到模拟时间时,停止模拟,完成一次淹没过程模拟。

步骤112,当未达到模拟时间时,更新当前时间河网的所有水位值,并返回步骤103。

目前使用的大多数水动力模型会计算水量动量守恒,虽然计算水量动量守恒能够反映水流的物理运动规律,但计算量较大,计算时间较长。本实施例不需要考虑淹没区域水量动量守恒计算,所以计算量大大降低,适用于基于高分辨率(1m)三角格网的快速淹没计算。

实施例2

本实施例提供一种淹没过程模拟系统,图2为本发明实施例2所提供的淹没过程模拟系统的系统结构图。参见图2,淹没过程模拟系统包括获取水位值模块201、三角形网格单元划分模块、插值模块、确定当前淹没单元模块、第一判断模块、淹没单元存储模块、当前淹没单元序列获取模块、第二判断模块、当前淹没单元更新模块、模拟时间判断模块、停止模拟模块和水位值更新模块。下面对各模块进行详细描述。

获取水位值模块201用于通过水动力方程获取淹没区域当前时刻河网的所有水位值。该模块具体包括包括:河网信息获取单元,用于通过地理信息系统对淹没区域的数字高程模型进行数字地形分析,得到河网信息。具体为:通过地理信息系统(geographicinformationsystem或geo-informationsystem,gis)的水文分析模块对淹没区域的数字高程模型(digitalelevationmodel,dem)进行数字地形分析,得到河网信息、河网横截面信息和子流域面信息。将河网信息、河网横截面信息和子流域面信息采用矢量化的gis地理信息系统支持下的一种矢量数据通用格式:shapefile文件进行存储。获取淹没边界条件单元,用于获取淹没区域的淹没边界条件。淹没边界条件包括:淹没区域的上游流量边界条件和淹没区域的下游潮位边界条件。上游流量边界条件包括:当洪水为雨洪时,根据降雨数据通过产流模型得到上游流量边界条件。下游潮位边界条件包括:根据第三方潮流模型得到下游潮位边界条件。水位时空变化信息获取单元,用于根据淹没边界条件和河网信息,通过水动力方程得到淹没区域的水位时空变化信息;水位时空变化信息包括:河网的所有水位值。

三角形网格单元划分模块202用于对淹没区域进行三角形网格单元划分,得到多个三角形网格单元以及每个三角形网格单元的高程值。该模块具体包括:三角形网格划分单元,用于对淹没区域进行三角形网格划分,得到三角形网格。网格单元获取单元,用于对三角形网格进行拓扑分析,得到网格单元。具体为:采用地表水模拟系统(surface-watermodelingsystem,sms)对淹没区域进行三角形网格划分,得到多个三角形网格。对所有三角形网格进行拓扑分析,得到与三角形网格对应的网格单元。获取堤坝信息单元,用于获取淹没区域的堤坝信息,以及确定与堤坝相近的网格单元。具体包括:获取淹没区域的堤坝的位置信息,以及根据堤坝的位置信息确定与堤坝相近的三角形网格单元。三角形网格单元获取单元,用于将堤坝设置为与堤坝相近的网格单元的边,重新对淹没区域进行三角形网格单元划分,得到三角形网格单元、三角形网格单元编号、三角形网格单元结点编号及坐标值、三角形网格单元的边编号及属性赋值、三角形网格单元和河网节点映射关系分析表,以及三角形网格单元的邻接三角形网格单元信息表。将堤坝设置为与堤坝相近的网格单元的边,重新对淹没区域进行三角形网格单元划分具体包括:调整与堤坝相近的网格单元,使网格单元与堤坝最相近的一条边与堤坝重和,并同时重新对淹没区域进行三角形网格单元划分,使淹没区域中所有的堤坝均为与堤坝相近的网格单元的边。计算高程值单元,用于根据三角形网格单元计算每个三角形网格单元的高程值。

插值模块203用于将河网的水位值分别插值给对应的三角形网格单元,确定三角形网格单元的水位值。具体用于根据水位时空变化信息和三角形网格单元与河网节点映射关系表,将河网的水位值分别插值给对应的三角形网格单元,确定三角形网格单元的水位值。

确定当前淹没单元模块204用于将所有三角形网格单元的水位值与高程值进行对比,将水位值大于高程值的三角形网格单元确定为当前淹没单元。

第一判断模块205用于根据当前淹没单元与当前淹没单元的邻接三角形网格单元之间的水位和高程关系,判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元,得到第一判断结果。包括:堤坝判断单元,用于判断当前淹没单元的边是否为堤坝。非淹没单元获取单元,用于当堤坝判断单元的结果为是时,将堤坝对应的邻接三角形网格单元设置为非淹没单元。高程值对比单元,用于当堤坝判断单元的结果为为否时,将当前淹没单元的水位值与判断结果为否的边所对应的邻接三角形网格单元的高程值进行对比。可淹没单元获取单元,用于当高程值对比单元对比结果表示当前淹没单元的水位值大于判断结果为否的边所对应的邻接三角形网格单元的高程值时,将判断结果为否的边所对应的邻接三角形网格单元确定为可淹没单元。

淹没单元存储模块206用于当第一判断结果表示存在时,将可淹没单元标记为淹没单元并存储于淹没单元序列中。

当前淹没单元序列获取模块207用于从淹没单元序列中删除在当前时刻之前被标记为淹没单元的三角形网格单元,得到当前淹没单元序列。

第二判断模块208用于判断当前淹没单元序列是否为空集,得到第二判断结果。

当前淹没单元更新模块209用于当第二判断结果表示否时,将当前淹没单元序列中的三角形网格单元更新为当前淹没单元,返回第一判断模块205。

模拟时间判断模块210用于当第二判断结果表示是时,判断是否达到模拟时间。

停止模拟模块211用于当达到模拟时间时,停止模拟,完成一次淹没过程模拟。

水位值更新模块212用于当未达到模拟时间时,更新当前时间河网的水位值,并返回插值模块203。

实施例3

本实施例提供一种gis和水动力方程相结合的滨海地区洪水淹没过程快速模拟方法,图3为本发明实施例3所提供的模拟方法的流程图。参见图3,模拟方法包括:

步骤301:结合gis和水动力方程求解洪水沿河网的时空变化过程。

基于gis数字地形分析提取得到的河网信息、河网断面信息和子流域面信息,将提取的河网信息、河网断面信息和子流域面信息按照河网数值算法要求重新组织和编号,根据水动力基本原理,即水动力方程求解洪水沿河网的时空变化过程,即河网的水位时空变化过程。河网数值算法就是根据水动力偏微分方程,采用差分或者有限体积法离散方程,形成代数方程组,用计算机求解方程中包括水流和流量的过程。

在淹没分析前,用地理信息系统(geographicinformationsystem,gis)的水文分析模块对数字高程模型(digitalelevationmodel,dem)做数字地形分析。通过水文分析模块对数字高程模型做数字地形分析的具体过程包括:填洼、计算流向、计算累积汇流、提取河网和划分子流域等。

通过数字地形分析可以得到的河网信息、河网断面信息和子流域面信息,将河网信息、河网断面信息和子流域面信息矢量化后按地理信息系统支持下的一种矢量数据通用格式:shapefile文件格式进行存储。shapefile文件一般将信息分为点、线、面三种不同类别的文件分别存储,河网信息和河网断面信息一般存储在线文件中,子流域面信息一般存储在面文件中。

河网数值算法需要输入河网节点、河网断面和子流域形状等信息,这些信息存储在shapefile文件中,但shapefile文件中信息的格式无法直接用于河网数值算法,所以需要对shapefile文件中的信息重新进行提取和组织编号,才能进行数值运算。

河网数值算法需要建立水动力模型。建立水动力模型就是将gis信息,即河网信息、河网断面信息和子流域面信息提取重编,然后结合淹没边界条件求解水动力方程的整个过程,具体步骤包括:对shapefile文件中的数据进行提取并重新编号,可以得到:河网节点编号、河网节点坐标、线性单元编号、线性单元断面编号和线性单元组成的节点编号。并对河网信息、河网断面信息和子流域面信息进行断面提取,将断面提取得到的高程信息赋值给水动力模型中对应的断面数据,并修正断面数据使断面数据满足水动力方程的计算条件。

对shapefile文件中的数据进行提取并重新编号时需要注意,线性单元一般为有自由水面的河道或渠道,需要提取线性单元的断面高程信息,可以将shapefile文件中提取到的点、线信息重新组织编号后输出。通过gis提取的河网一般呈二叉树的形状,所以在重新组织编号过程中需要对交叉点进行判断,防止对交叉点重复编号。

对河网信息、河网断面信息和子流域面信息进行断面提取是可以假定断面高程信息在同一线单元中,同时断面是固定的,在提取线单元中心断面时,可以先假定一个断面长度,根据实际地形一般可取20—200米不等,在断面线,即河网中某河段的横截面上取10个点,提取出这10个点的高程信息,将每个点的高程信息连起来就得到了断面高程信息。最后还要对断面高程信息进行检查,判断断面高程信息是否满足水动力过流条件,即判断这个横截面的水流是否能够自然流过,如果不满足可以通过在这个横截面的两端增加虚拟堤坝的方式,使断面高程信息能够适用于水动力数值计算。水动力方程采用圣维南方程,根据gis信息和淹没边界条件,圣维南方程进行数值离散,并采用迭代法对数值离散后的圣维南方程进行快速求解。河网数值算法可采用国际上较为常用的节点—线单元结合水位迭代算法,该水位迭代算法的优点在于河网的结构不会对水位迭代算法产生影响。

获取设定的淹没边界条件,淹没边界条件包括上游流量边界条件和下游水位边界条件。上游流量边界条件的获取:当洪水为雨洪时,根据上游河网节点位置确定河网节点的汇水子流域,根据降雨数据采用经验性产流模型(如美国农业部水土保持局(soilconservationservices)提出的降雨产流模型scs)计算流量过程;当洪水为河洪时,可以根据上游水文资料推算出流量过程。下游水位边界条件的获取:当淹没区域为滨海地区时,一般采用潮位边界条件,下游潮位边界条件可以采用当地实测,或者海洋模型模拟的潮位变化过程,或者可以根据第三方潮流模型结果或实测赋值。

步骤302,对淹没区域进行三角形网格单元划分,得到每个三角形网格单元的高程值。

步骤302具体包括:采用第三方软件如地表水模拟系统(smssurface-watermodelingsystem,sms)或easymesh对淹没区域进行三角形网格划分,得到三角形网格、结点信息表和单元信息表。结点信息表包括:三角形网格每个结点的编号、位置(坐标值)和高程信息,单元信息表包括:每个三角形网格的组成的结点编号,本实施例对每个三角形网格的组成的结点的编号按逆时针排列。

然后对三角形网格进行拓扑分析,得到网格单元,获取淹没区域的堤坝信息,以及与堤坝相近的网格单元,将堤坝设置为与堤坝相近的网格单元的边,更新对淹没区域的三角形网格单元划分,得到三角形网格单元、三角形网格单元编号、三角形网格单元结点编号及坐标值、三角形网格单元的边编号及属性赋值以及三角形网格单元和河网节点的映射关系分析表。

同时为了对洪水做连通性分析,需要建立三角形网格单元的邻接三角形信息表。根据单元信息表,先提取出每个结点邻接的三角形网格单元数目和三角形网格单元编号。然后可以通过对每个三角形网格单元的三个结点分别查询相邻三角形网格单元信息。

根据三角形网格单元计算每个三角形网格单元的高程值。

步骤303,对淹没区域的淹没过程进行模拟。

步骤303具体包括:通过水位时空变化信息计算得到当前时间河网中每个节点的水位,并实时更新水位值。根据三角形网格单元与河网节点映射关系表,将任一河网节点的水位值插值给对应的三角形网格单元,具体插值给对应的三角形网格单元的中心点,被插值的对应三角形网格单元为当前淹没单元。三角形网格单元的中心点为三角形网格单元的几何中心,通过步骤302中三角形网格单元结点的坐标计算得到。

根据邻接三角形信息表,确定与当前淹没单元邻接的三角形网格单元的三角形网格单元编号,根据当前淹没单元与当前淹没单元的邻接三角形网格单元之间的水位和高程关系判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元。

判断条件为:判断当前淹没单元的边是否为堤坝。当当前淹没单元的边为堤坝时,与堤坝对应的邻接三角形网格单元设置为非淹没单元。当当前淹没单元的边不是堤坝时,将当前淹没单元的水位值与不是堤坝的边所对应的邻接三角形网格单元的高程值进行对比。

当对比结果表示当前淹没单元的水位值大于不是堤坝的边所对应的邻接三角形网格单元的高程值时,将不是堤坝的边所对应的邻接三角形网格单元确定为可淹没单元。并根据插值的河网节点水位值得到淹没水位,并将可淹没单元的单元编号记录到“新淹没单元表”中。

查询“新淹没单元表”,如果“新淹没单元表”不为空集,则将“新淹没单元表”的三角形网格单元为当前淹没单元,返回“根据邻接三角形信息表,确定与当前淹没单元邻接的三角形网格单元的三角形网格单元编号,根据当前淹没单元与当前淹没单元的邻接三角形网格单元之间的水位和高程关系判断当前淹没单元的邻接三角形网格单元中是否存在可淹没单元”。并将“新淹没单元表”中三角形网格单元编号清空,更新“新淹没单元表”,直至“新淹没单元表”为空集,判断是否达到模拟时间。当未达到模拟时间时,则返回“通过水位时空变化信息计算得到当前时间河网中每个节点的水位,并实时更新水位值。根据三角形网格单元与河网节点映射关系表,将任一河网节点的水位值插值给对应的三角形网格单元”,直到河网的所有节点遍历完,认为达到模拟时间,停止模拟,完成一次淹没过程模拟,同时得到整个淹没区域此时的淹没单元分布,并根据河网节点插值以及三角形网格单元的高程信息得到每个淹没单元的淹没水深。重复淹没过程模拟,直至得到整个淹没区域所有时刻的淹没单元分布和淹没水深,淹没区域的淹没过程模拟完成。

在实际滨海地区,除了自然地形外,人工建筑往往也会对洪水淹没的区域和范围产生重要影响,在近海以及河口主要的人工建筑物就是海堤,河堤以及丁坝等挡水建筑物。堤坝的高程一般要比滩地高很多,洪水从河网蔓延到滩地后,往往受堤坝的阻挡而无法继续扩散,如果将堤坝忽略,显然会造成与实际不符的结果。在模拟时,由于堤坝宽度较窄,一般的dem分辨率不足以描述堤坝的特征,即使有些高分辨率的dem(1m)能够反映堤坝的高度,但也常常由于dem数据结构本身的缺陷,比如栅格对于斜线描述不准确,造成堤坝不连续现象,进而造成模拟误差。而堤坝在数值模拟中是属于“突变”地形,对二、三维水动力模型的模拟也有很大挑战性。本实施例通过将淹没区域进行tin格网化,使三角形能更加适应不规则堤坝线,在堤坝区域,堤坝的每一段都可以用不同的三角形的边来拟合,这样可以保证堤坝的连续性和位置的精度。同时,根据三角形的拓扑信息表,将三角形的边统一编号,如果三角形的边正好是堤坝,就可以标记出来。在计算洪水漫滩的时候,如果碰到标记堤坝的三角形边,受堤坝的阻挡,即使邻接三角形的高程低于洪水水位,洪水也无法蔓延过去。图4为本发明实施例3所提供的无堤坝蔓延过程;图5为本发明实施例3所提供的有堤坝蔓延过程,图4和图5对比显示了有堤坝和无堤坝时洪水的蔓延次序,图4和图5仅表示当邻接三角形网格单元可以被淹没时有堤坝和无堤坝时洪水的蔓延次序的情况。图中1、2、3、4、5、6、7、8均表示三角形网格单元,flood表示洪水,参见图4,当淹没区域不包括堤坝时,洪水首先淹没三角形网格单元1,由于三角形网格单元1没有标记堤坝的边,所以与三角形网格单元1邻接的两个三角形网格单元2均被淹没;由于两个三角形网格单元2也没有标记堤坝的边,所以与两个三角形网格单元2邻接的四个三角形网格单元3均被淹没;由于四个三角形网格单元3也没有标记堤坝的边,所以与四个三角形网格单元3邻接的五个三角形网格单元4均被淹没。参见图5,图5中三角形网格单元1与三角形网格单元6邻接的边为标记的堤坝,当淹没区域包括堤坝时,洪水首先淹没三角形网格单元1,由于三角形网格单元1包括一条标记堤坝的边,所以只有与三角形网格单元1没有标记堤坝的边邻接的三角形网格单元2被淹没;由于三角形网格单元2没有标记堤坝的边,所以与三角形网格单元2邻接的两个三角形网格单元3均被淹没;由于两个三角形网格单元3也没有标记堤坝的边,所以与两个三角形网格单元3邻接的三个三角形网格单元4均被淹没;由于三角形网格单元4也没有标记堤坝的边,所以与三角形网格单元4邻接的三角形网格单元5被淹没;由于三角形网格单元5也没有标记堤坝的边,所以与三角形网格单元5邻接的两个三角形网格单元6被淹没;由于三角形网格单元6有一条标记堤坝的边,所以洪水沿三角形网格单元6没有标记堤坝的边的方向蔓延,淹没了与三角形网格单元6没有标记堤坝的边邻接的三角形网格单元7;由于三角形网格单元7也没有标记堤坝的边,所以与三角形网格单元7邻接的三角形网格单元8被淹没。

除了考虑人工阻水设施外,本实施例还通过邻接三角形网格单元的扩散考虑淹没区域的连通性,通过河网水位值插值能够考虑整个淹没区域的水力坡降,解决了传统gis采用简单水位判断法得到的非连通淹没区域的不连通性和无法考虑水力坡降的缺陷。与二、三维水动力模型相比,该方法不需要考虑淹没区域水量动量守恒计算,所以计算量大大降低,适用于基于高分辨率(1m)三角格网的快速淹没计算。

本实施例还提供一种适用于本实施例模拟方法的部分程序,程序包括:

(1)步骤301的对shapefile文件中的信息重新进行提取和组织编号中对线以及面的文件信息提取中,对面要素提取的程序如下:

(2)步骤301中河网节点编号的程序:

河网节点编号程序的目的是将原本从gis软件输出的线条化河网信息数据重新组织,将河网分解为很多段的直线,这种直线就是“河网单元”,每段直线都包括起始点和终止点两点,通过数组记录下每段“河网单元”起始点和终止点的编号和坐标,为河网数值计算做好准备。

(3)步骤302中为了对洪水做连通性分析,需要建立三角形网格单元的邻接三角形信息表。根据单元信息表,先提取出每个结点邻接的三角形网格单元数目(nne[])和三角形网格单元编号(ine[][])。然后可以通过对每个三角形网格单元的三个结点分别查询相邻三角形网格单元信息。例如对于某单元i,可以对它三个结点分别查找相邻三角形网格单元的编号,对于任意一个结点,它所有的邻接三角形网格单元应包含i和与i相邻的三角形网格单元。只要根据是否包含某两个结点nd1和nd2的边,就可以得到与i相邻的三角形网格单元。一般一个三角形网格单元有三个边,每个边都有相邻的三角形网格单元,分别记在ic3[i][1],ic3[i][2],ic3[i][3]中。具体程序包括:

(4)步骤303中为了计算洪水的淹没范围,还可以对某个时刻每个三角形网格单元的状态(淹没或非淹没)进行标记。采用状态变量wet将三角形网格单元的每个单元分为干(0)和湿(1)两种状态,初始时刻所有三角形网格单元为“干”状态。将河网叠置于三角形网格单元上,根据三角形网格单元与河网节点映射关系表,查找每个河网节点所对应的三角形网格单元编号,也可以采用就近原则,即和三角形网格单元的形心距离最近的河网节点就是该三角形网格单元所对应的河网节点。当洪水从河网中传播时,将和河网节点对应的三角形网格单元设置为“湿”,将此时水动力方程计算得到的水位值赋给设置为“湿”的三角形网格单元。然后采用插值方法,将设置为“湿”的三角形网格单元的水位值插值到其它设置为“干”的三角形网格单元中。在模拟洪水扩散时,从“湿”的三角形网格单元开始,通过邻接三角形网格单元信息表查找与该三角形网格单元相邻接的三角形网格单元,通过判断插值后的水位是否大于三角形网格单元的高程,判断每个邻接三角形网格单元是否被水淹没。如果被水淹没,将这个邻接三角形网格单元的状态变量设置为“湿”,并将该网格单元单元放入“新淹没单元”序列(cnew)中,继续搜索邻接三角形网格单元,直到此轮搜索结束。之后,以“新淹没单元”序列(cnew)中的每个“湿”的三角形网格单元为起点,继续搜索其邻接的三角形网格单元的淹没状态,如果是“湿”,直接跳过。如果是“干”,判断插值后的水位值是否大于三角形网格单元的高程,如果水位值大于三角形网格单元的高程,则将该三角形网格单元的状态转变为“湿”,并将该三角形网格单元放入下一轮搜索的“新淹没单元”序列中。直到“新淹没单元”序列为空,循环停止,“湿”的三角形网格单元所在的区域即为淹没区域。基于三角网格考虑洪水由河网向河漫滩扩散的程序包括:

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1