1 前言

本文主要说明案例中水库下游区域HEC-RAS二维建模的过程。文章首先给出建模的基本原则与建模的注意事项,确定了大致的研究区域。其次,整个下游洪水演进区域由单一二维模型模拟,下游存在一条较大的城市内河,沿河堤线对网格调整加密重生成。HEC-RAS2D建模功能较为丰富,本文远未穷尽全部功能,仅供参考

2 建模原则

建模的原则其实很简单,首先是针对研究区域分析,确认所有需水动力模拟的现实对象。之后抽象成概念模型,建构模拟对象间的水动力关系。最后基于模型能力对概念模型作技术化表达,落实到具体的水动力模型上。

2.1 模拟区域

研究区域是指单个二维网格区域覆盖的范围,本案例只设置单个二维网格区域,不讨论多二维网格区域的情况,当然原则类似。RAS把二维网格称为二维模型,以下如是。

二维模型研究区域的确定其实是求多个原则规定的区域的交集,以下为各原则说明:

  1. 水流可能运动区域。溃坝洪水也算明渠水流的一种,当然没那么“天然”。溃坝洪水体量大,演进极快,除了河道外会显著淹没两岸平原地带,还可能向上游回水。因此二维模型需要覆盖所有可能的洪水运动区域,包括左右两岸,上下游,支流和湖泊等。
  2. 研究目的区域。由于溃坝洪水演进范围极广(往往在市级及以上),实际项目中无论是原始数据还是研究需要往往都针对特定研究目的区域。比如我做的项目往往只关注一个市级行政区,洪水离开该市便无需考虑。又或者原始数据只包含演进过程中特定的区域。那么更大的区域也是无力模拟的。
  3. 实际下边界布置在边界误差扰动不会传播到研究区域下边界的足够远处。边界条件,尤其是河床底坡的边界条件,均会存在一定误差,进而向上游传播影响模拟结果。因此,应当将实际模型的下边界扩展至足够远处,保证误差传播至上游时对研究区域下边界不会存在明显影响。为确定扩展距离,可以设置多个不同扩展距离下边界的模型作不确定性分析,查看研究区域边界计算结果直至实际边界距离变化不再影响计算结果即可确定[1]

上述3个原则只是基本性的原则,具体建模上还会因各种因素发生变化,但这些原则仍是重要的必要条件。

2.2 空间步长

空间步长即单个网格尺度。RAS网格虽然为非结构化网格,但可自定义的只有正交网格部分,作为整个二维模型的默认设置。RAS二维模型中不与边界接触的网格采用正交网格(正方形),与边界接触的网格为自动生成的不规则多边形(外围那一圈),最大8条边。有趣的是RAS验证文档中的溃坝模拟案例使用的正八边形网格[2],但正交网格效率最高,因此目前只开放正交网格自定义。

MIKE等模型中需要给二维模型作边界平滑,保证三角形计算网格生成的更均匀。但HEC-RAS的FVM方法对网格结构依赖度底,对复杂边界有很好的适应性,会根据定义的边界线自动生成不规则多边形,因此也无需作边界平滑。

空间步长是计算中主要的敏感性因素之一。空间步长的选取直接关系到对地形的采样精度,是对地形的第二次拟合。空间步长的选取与地形数据的精度直接相关,原则上要求空间步长的选取能够保证捕捉到地形中地势变化和各种影响水流的细节[3],比如堤,公路,高地,建筑物等。尽管RAS使用“子网格”技术改进对地形的提取精度,但如果你的单个网格尺度显著大于地形细节,就会出现地形拟合失真,水流碎片化和流动与实际地形不匹配[4],如下图对比。建议对空间步长作不确定性分析,设置不同尺度的二维网格,在水流运动路径上提取计算结果,观察直至计算结果无明显变化为止。

HEC-RAS同样支持局部网格加密或稀疏[5]。这种功能和一些CFD模型中的自适应网格是有区别的,那些模型的自适应网格可以由模型控制,并在计算中自动调整。但HEC0RAS中只能自定义网格重置区域和密度,且在计算中保持不变。这一功能主要是为多样地形条件下提高计算效率和精度准备的,对于地势平缓的区域可以放大空间步长。

HEC-RAS也支持网格对齐[6]。即针对明显的地形“硬线”,比如堤防,公路,建筑物等,设置轮廓线令网格对齐轮廓线生成,轮廓线周围的网格也支持局部加密。诚如上述,如果网格没有对齐这类硬线生成,网格往往会穿过建筑物,细节捕捉就会失真。而且此类地形处往往水流湍急,需要更小的空间步长保证计算精度。

2.3 模型内部要素

如果研究区域内存在一系列水工建筑物,如堰,堤,涵管,闸门等,是可以在二维模型内部独立建模模拟的[7]。但目前坝(显著高于地面且不能坝顶溢流)是不能设置在二维模型内部的,桥梁和泵站也是不支持的(一维模型支持)。

此外,不同于一维模型,二维模型内部所有的模型要素均通过SA/2D Conn要素设置。当然对于堤防(不含闸门),建筑物等可以通过地形改进嵌入地形中,无需独立建模。堰(不能过高,且堰顶过流)可以使用堰流方程和二维浅水两种方法计算过堰水流。这类水工建筑物模拟功能还在持续迭代中,应该会达到一维模型同等水平,可以关注后续改进。

对模型内部水工建筑物的考量有时是很重要的,尤其在一小段河道和漫滩模拟时,往往是不可忽略的。但对溃坝洪水这个量级以及粗糙的原始数据,暂且忽略。

3 二维模型建模

本案例二维模型是比较简单的,即针对水库洪水下游演进范围建立单个二维模型,不设内部水工建筑物,不作局部网格密度重置。为简化模拟,充分展示子网格技术,二维网格的空间步长选定为100m。

案例水库位于下游干流的支流之上,溃坝洪水经支流进入干流造成水位壅高,干流穿过城市内部,修筑有完好的堤防。因此,模拟区域应为支流及干流两岸,网格沿干流堤防对齐(不模拟堤防,没有数据),网格尺度加密为30m。

3.1 模型建模

建模很简单,主要就是作一个矢量面图层作为模拟区域,设置空间步长,RAS便会自动生成网格。最艰难的工作网格生成已由前处理工具完成。网格对齐只要作矢量线图层,沿堤顶绘制即可,之后仍然是RAS自动前处理工具的事。在此之前需准备好两个图层,一个二维网格区域面图层,一个河堤两岸线图层。生成方法与水库和大坝相同。

具体步骤如下:

  1. 在RAS Mapper中勾选Terrain,在RAS地形上准备绘制二维模型边界
  2. 在2Dmodel(以及2Dmodel_2)图层中,右键2D Flow Area图层进入编辑模式,选中Perimeters子图层,开始绘制二维模型边界。绘制完成后重命名为Mesh。此图层为二维模型合集,可以绘制多个二维模型,我们这次只绘制一个
  3. 在2D Flow Area图层上右键选择2D Flow Area Editor,Points Spacing(m)输入30(输入一个就行了,正交网格另一个是相等的,不相等是没用的)。选中Genenrate Computation Points,等进度条走完即可生成网格
  4. 在GIS应用中加载卫星图,在卫星图上确认堤防位置,沿堤顶绘制矢量线图层(共4条线),保存至硬盘。然后在2D Flow Area子图层Breaklines图层中导入(与之前操作一致)。然后在其上右键Edit Breaklines Properties,在每条线的Near Spacing属性中输入10,保存关闭
  5. 回到第3步中,再度重生成网格。此时往往会在左下角提示网格生成错误信息。可以在Perimeters上右键使用Try to fix mesh工具,自动修复错误,但每次修复后可能产生新的错误,可多次迭代直至不再报错为止。最后关闭编辑保存
  6. 在2D Flow Area上右键Computer 2D Flow Area Hydraulic Table,即从RAS地形数据提取高程赋值给计算网格
  7. 返回SA/2D Conn窗口,将大坝Dam下游To连接赋给二维模型Mesh

https://www.zhihu.com/video/1241121604509483008

3.2 重点说明

  • 也可以在GIS应用中参考卫星底图绘制面图层导入RAS作模型边界,为什么在RAS中作图,因为这时主要考虑水流运动,直接在RAS中观察地形地势设置范围更清晰(当然GIS里也可以渲染地形)。至于堤防,DEM基本上不会有明显的这类细节,照着卫星图画最清晰
  • 网格尺度设置是针对全局性的正交网格,边界区域不规则网格自动生成,往往略大一点。不要一开始设置太小的网格尺度。
  • 如果修改边界或Breaklines,左下角会提示网格out of date,可以用编辑栏右侧的update更新网格。如果更新失败,请使用上述第3步中的全局重生成网格,当然这样很费时。有一个Force Mesh Recomputation,但这个功能一直有点问题。
  • 网格生成后可能存在各式各样的问题,可以手动或使用上述自动化工具解决,请参考RAS文档[8]。当自动化工具多次迭代均不能解决问题时,需手动修正。密切注意左下角的错误提示,经常使用Update功能更新网格,勾选2D Flow Area中的Errors查看错误网格的具体位置。
  • 诚如前述,糟糕的DEM上堤防细节其实很差,更不用说还经常缺失河道水面下地形。所以网格对齐功能实际效果不佳,但必要的步骤还是要做的。Breaklines有多个设置选项,请参考RAS文档[9],而Near Spacing是设置Breakline紧沿线(上游至下游)的两侧网格的尺度,其实是沿线加密网格功能,最终生成结果与全局设置有所不同
  • 网格局部加密和稀疏功能在Refinement Regions,请参考文档[10]
  • 第6步其实可以在模拟计算时由模型自动执行,但在此处执行后可以在SA/2D Conn下部可视化窗口中查看新生成的TW Cell Min Elev线,即大坝相接的下游二维网格边界横断面(尾水断面)高程,此时你可以检查溃口底部高程是否大于等于尾水断面的底部高程(但我发现该功能似乎有问题,还是只有模拟计算后才会显示,可能是BUG)。执行过程可能很慢,不能中途关闭,否则几何文件会损坏。
  • 计算用时与空间步长密切相关,越小的空间步长算力要求越高,用时越长。而在二维模型中主要体现为木桶效应,即最小尺度的网格是延长计算用时的主要因素。Refinement Regions和Breaklines的局部加密都是主要影响因素,本案例中即使全局网格尺度30m,但Breakline处10m网格仍会显著延长计算用时(当然不如全局10m慢)

参考

  1. ^Downstream Boundary-Normal Depth? http://hecrasmodel.blogspot.com/2010/01/downstream-boundary-normal-depth.html
  2. ^HEC-RAS Verification and Validation Tests. P119 https://www.hec.usace.army.mil/
  3. ^HEC-RAS, River Analysis System, 2D Modeling User's Manual. C4-3~6 https://www.hec.usace.army.mil/
  4. ^2D Mesh “Leaking” http://hecrasmodel.blogspot.com/2015/03/2d-mesh-leaking.html
  5. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-27~28 https://www.hec.usace.army.mil/
  6. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-25~27 https://www.hec.usace.army.mil/
  7. ^HEC-RAS, River Analysis System, 2D Modeling User's Manual. C3-63~67 https://www.hec.usace.army.mil/
  8. ^HEC-RAS, River Analysis System, 2D Modeling User's Manual. C3-14~20 https://www.hec.usace.army.mil/
  9. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-25~27 https://www.hec.usace.army.mil/
  10. ^HEC-RAS, River Analysis System, Supplemental to HEC-RAS Version 5.0 User's Manual. C3-27~28 https://www.hec.usace.army.mil/

数据建模步骤文档_二维溃坝洪水模拟(五)二维模型建模相关推荐

  1. HEC-RAS二维溃坝洪水模拟(尾矿库)

    1.建模 1.1新建工程文件 注意路径不要有中文,主义单位设置为国际单位SI 1.2导入地形数据 导入地形如图: 1.3建立几何模型 1)新建几何文件 2)导入坝轴线 提前在GIS中制作坝轴线shp文 ...

  2. 如何将word文档生成二维码

    最近遇到很多客户咨询如何将word文档生成二维码,如何将视频生成二维码,目前二维码中是无法直接储存word文档,视频一类的,唯一的途径就是先把文档和视频信息上传到网站服务器上,然后在二维码生成器中利用 ...

  3. java给word和pdf文档添加二维码

    背景 目前收到一个需求,需要给上传的word和pdf文档添加二维码,防止职工给领导签字时伪造合同,所以提出这个需求,上传的word和pdf添加二维码,然后使用我们的app扫码查看相关的信息. 解决方案 ...

  4. 数据分析之如何制作数据埋点文档(二)

    作者:Aaron(转载已取得作者授权) 在第一篇<数据分析之如何制作数据埋点文档>中已经对工作中应用的数据埋点的基础概念.基本分类.定义规范.流程以及应用场景做了简单的介绍,基于部分看官老 ...

  5. python api文档生成二维码_使用Python第三方库生成二维码

    本文主要介绍两个可用于生成二维码的Python第三方库:MyQR和qrcode. MyQR的使用: 安装: pip install MyQR 导入: from MyQR import myqr imp ...

  6. c语言通过本地文档输入二维数组,leetcode c本地调试时使用

    在Leetcode刷题的时候,有时候会想在本地调试来定位错误,但是在本地生成测试用例非常麻烦,特别是对于一些大型二维数组的时候,于是我根据Leetcode二维数组的输入输入格式,写了一个自动生成int ...

  7. apizza接口文档传二维数组

  8. Log4j配置学习文档之二 处理日滚文件-模拟实现

    #模拟实现 定义监听器,监听器启动的时候初始化定时器 监听器 package com.tcsoft.license.util;import java.util.Calendar; import jav ...

  9. api数据接口文档_接口文档示例(Taobao/jd/pinduoduo/开放接口调用)

    api数据接口文档_接口文档示例 本文主要是提供了一个接口文档的范文,内容修订历史.目录.时序图.接口要素描述.接口说明.使用示例.字典.FAQ.  使用MD格式文档(makedown),选择原因,容 ...

最新文章

  1. 教你如何在C++二进制文件中注入git信息
  2. MySQL—交叉连接、自然连接、内连接
  3. CVPR 2019 | 人脸照片秒变艺术肖像画:清华大学提出APDrawingGAN
  4. ipsec NAT-T与穿透
  5. 纪念第一个正式的java程序
  6. 3、PV、UIP、UV指的是什么
  7. Linux使用yum install 安装程序时,提示“另外一个程序锁定了 yum;等待它退出……”
  8. karaf内嵌文件服务器,关于OSGI(Karaf) Classloader的几点说明
  9. php程序员的情书,只有程序员才看得懂的情书
  10. 计算机图标ps教程视频,PS制作腾讯视频标志 -电脑资料
  11. pip install 出现报asciii码错误的解决
  12. mybatis_07动态SQL_foreach循环
  13. matlab nist接口文件,RefProp流体热物理性质计算程序与Matlab接口
  14. PHP 递归算法操作文件编程
  15. 【ArcGIS自定义脚本工具】NDVI批量估算植被覆盖率
  16. Beaglebone Black – 智能家居控制系统 LAS - 插座组装
  17. Unity中如何跟随某个物体运动浅谈
  18. ps和php有什么关系,lr和ps有什么区别
  19. tableau货架图制作_Tableau代写制作地图可视化和树形图、条形图
  20. etsme--Me盒使用初体验

热门文章

  1. 企业微信,私域流量的下一个战场
  2. Barsetto百胜图咖啡机商用咖啡机实力品牌
  3. 支付宝即时到账接口使用历险记
  4. 基于Matlab移动车辆异步传感器姿态估计(附源码)
  5. FFmpeg 滤镜详解
  6. 【linux iic子系统】gpio模拟i2c(八)
  7. Android 7.1 屏幕旋转流程分析
  8. rt thread系统下添加wiznet软件包后,不插网线CPU利用率100%问题
  9. 玩转华为ENSP模拟器系列 | 配置单段动态VPWS示例 - 使用LSP隧道
  10. 截取android正在播放音乐的audio音频流(后台获取android音频流)