ADCIRC模型模拟沿海风暴潮和飓风灾害—实例讲解

1 篇文章 1 订阅
1 篇文章 1 订阅

前言

ADCIRC模型(The ADvanced CIRCulation model)是由北卡罗来纳大学海洋科学研究所的Luettich教授和美国圣母大学的Westerink教授联合研制的,是一个计算机程序系统,用于解决二维和三维的随时间变化的自由地表环流和运输问题。目前应用领域包括:

  • 模拟潮汐和风驱动的循环
  • 预测风暴潮和洪水
  • 近岸海上作业
  • 。。。

另外ADCIRC+SWAN耦合模型也是目前沿海风暴潮,热带气旋诱发的沿海洪水模拟最先进和广泛使用的模型。本文就简短介绍如何使用ADCIRC模型来模拟飓风诱发的风暴潮,包括数值稳定网格的建立,网格的可视化,Bathymetric 数据的收集,参数的设置,以及ADCIRC模型的后处理。最重要的是,本文中所采用的软件Aquaveo SMS 13.0 全功能版本可以联系作者获取(snailtech_info@163.com)。

图1. ADCIRC模型模拟飓风登陆期间风暴潮、风速和潮流流速。

1. 网格构建

数值稳定的计算网格是模拟风暴潮的前提。ADCIRC模型采用的是灵活的非结构网格 (Unstructured mesh) 来划分计算区域。这使得我们可以在深海区域采用粗糙分辨率的网格,在浅水海岸采用精细的网格来同时满足计算和精度的需求。

1.1 利用软件SMS13.0来划分网格

SMS13软件允许操作者自定义研究区域。一种比较常用的方案是在获得研究区域内的海岸线数.shp文件。具体步骤如下:

  1. 利用DEM数据或者Bathymetry数据生成0m等高线,作为后续网格划分的边界区域。这一步可在ArcGIS上操作,最终生成研究区域的线要素数据。如图2A所示:
  2. 利用SMS提供的网格编辑工具来转换shp图层,重新编辑边界层上的节点分布。流程为:GIS Data --> 右键shp文件并选择convert生成feature objects --> 利用左侧编辑栏修改相应Map Data模块中的边界 --> 修改图层的type为mesh generator --> build polygons --> 左侧编辑工具选择后双击边界区域,修改网格生成方式 --> 点击菜单栏feature objects选项卡下方的map to 2d mesh即可。具体步骤可参见官方教程, 有相应的demo。
  3. 最终生成结果如图2D所示

图2: 与ArcGIS结合生成网格。

需要注意的是,这里采用的方法生成的计算网格都比较粗糙,并且采用的是paving的方式。不能够根据所选区域的深浅来自动划分网格的分辨率。并且不能保证数值稳定,在求解过程中容易发散,最终终止程序运行。个人建议采用LTEA或者自己写代码来生成网格。 通过自动插值,并控制CFL<0.5来确保数值稳定,生成的网格如下:

 图3:数值稳定网格

 2. 数据获取与预处理

2.1 数据源

上述网格生成过程中,设计到两个基本数据,一个是DEM数据,另一个是Bathymetry数据。这里提供两个网站,DEM数据可以从SRTM获取,Bathymetry数据可从NOAA获取。当然,我们国家海域可用数据目前分辨率普遍不高。各位也可根据自身的需要,自己实地测量,比较方便的是将数据记录为.xyz形式或者.nc形式,便于后续网格插值。如果做飓风风暴潮模拟的,飓风数据可在美国NRC中心获取.atcf或者.hurdat2格式的飓风路径数据。

2.2 数据预处理

Bathymetry数据和DEM数据都可以通过.nc的形式被sms13读取。只需利用GIS软件裁剪相应的栅格数据,只需覆盖研究区域即可。另外建议如果有.xyz 文本格式记录的测深数据,优先选择此格式。sms13对这类文本格式的数据读取速度很快,便于快速的插值计算。

3. ADCIRC模型参数设置

图3:ADCIRC模型参数设置 

3.1 潮汐数据

右键boundary边界Tidal attributes(图3G),添加M2,S2,N2,K1,O1,Q1,P1,K2等八个主要潮汐分量。潮汐数据可从Aquaveo SMS 官网获得,也可使用TPXO全球潮汐数据库

 

 图4: 潮汐数据库

 3.2 模型参数

  • NOLIBF, 控制浅水方程中底面摩擦类型。可选项有线性变化,二次,混合非线性,Mannings N at Sea Floor,Chezy Friction Coefficient等。可根据Land cover数据来进行赋值计算。
  • TAU0, 影响 ADCIRC 控制方程中的数值扩散程度。具体来说,它会影响决定广义波浪连续性方程 (GWCE) 的原始部分和波浪部分的相对贡献的加权因子。具体可参照下表。可利用SMS内置的栅格计算工具,根据点的点的深度自动赋值。图4: TAU0的设置
  • 其他fort.13的节点属性可以参照adcirc wikipedia page里面的内容进行设置。另外推荐Marsooli R & Lin N 等人的研究工作,具体讲解了参数如何取值。

 3.3 构造飓风风场

ADCIRC模型可以接受多种形式定义的风场信息。具体可参照fort.22文本。一种常用的方式是通过.atcf形式的飓风路径来构造对称风场, 即NWS=8。本案例采用了这种方法。结果下图所示

图5:飓风轨迹信息读取及对称风场构造

 4 模拟风暴潮

 4.1 运行并行程序PADCIRC

在设计好参数之后,接下来可以运行模型。对于中小规模的计算任务,一般节点数量在20w一下的时候,可以利用ADCIRC计算,但是当节点数量非常大,时间步长很短的时候,建议采用ADCIRC模型的并行程序PADCIRC运行,可以极大效率地缩短计算周期。另外对于超大计算需求的,作者可协助将计算任务部署在服务器上。

 图6: 并行模拟风暴潮,极大缩短计算时间

 4.2 输出设置

ADCIRC可输出水面高程(fort.63),水流平均速度(fort.64)、风速(fort.74)和风压(fort.73)的实时变化数据。以及各输出变量对应的模型运行的全局最大值和最小值文件(maxele.63、maxvel.63、maxwvel.63、maxrs.63、minpr.63)。

 图7:模型输出文件控制 

 4.3 设置观测点

ADCIRC 同样允许操作者在感兴趣的区域设置观测点,以行使实时监督该区域的水位,流速以及风场的变化。只需要在点击左侧编辑栏的Creat feature point然后将其属性设置为ADCIRC Station。最后通过与output选项卡内相似的操作来控制观测站的数据输出。

4.4 运行ADCIRC

 在上述网格以及模型参数设置完之后,点击保存和运行。SMS13软件运行如下:

 图8: 运行ADCIRC模型

 4.5 结果可视化

 模型输出的结果(fort.63,64,73,74)是时序变化的。时间步长为用户预先定义。SMS13提供了丰富的栅格和矢量可视化工具。如下图所示为水流速度和水面高程:

 图9:结果的可视化

5 总结

整个建模过程分为:构建数值稳定网格、加载潮汐数据、模型参数设置、构建风场和结果可视化等步骤。当然本案例只是展示如何执行完整的adcirc模型用于模拟风暴潮,不能直接用于科学研究。

有科研或者应用需求的读者,有需要Aquaveo SMS 13 软件的同学,可以邮箱联系作者:snailtech_info@163.com

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值