当前位置: 首页 > news >正文

【WRF工具】MPAS(多尺度预测模型)-输出WRF初始和横向边界条件

【WRF工具】MPAS(多尺度预测模型)-输出WRF初始和横向边界条件

  • MPAS概述
    • 模型概述
    • 主要特点
  • 使用MPAS输出WRF初始和横向边界条件
  • 参考

从WPS的v3.9版本开始,metgrid.exe程序能够从 跨尺度预测模型(The Model for Prediction Across Scales, MPAS) 读取netCDF格式的本机非结构化网格输出。本博客主要简介MPAS(多尺度预测模型)。

MPAS概述

官网-MPAS Overview
在这里插入图片描述

模型概述

MPAS(多尺度预测模型)是一个合作项目,旨在开发大气、海洋及其他地球系统模拟组件,用于气候研究、区域气候研究和天气预报。主要开发合作伙伴包括洛斯阿拉莫斯国家实验室(LANL)的气候建模组(COSIM)和国家大气研究中心(NCAR)。这两个主要合作伙伴共同负责MPAS框架、通用操作符和工具的开发;LANL主要负责海洋和陆冰模型,而NCAR主要负责大气模型。

主要特点

  • 非结构化Voronoi网格:
    MPAS采用非结构化的Voronoi网格,正式称为球面中心Voronoi划分(SCVTs),这使得模型能够进行球体的准均匀离散化和局部细化。
  • C-grid离散化:
    模型使用C-grid离散化方法,特别适合进行高分辨率的中尺度大气和海洋模拟。在C-grid中,速度的法向分量是在网格边缘上进行预报的,这提高了模拟的精度。
  • 陆冰模型:
    MPAS的陆冰模型利用SCVT的双重网格结构,采用适用于有限元离散化的三角形Delaunay划分。

使用MPAS输出WRF初始和横向边界条件

WRF User Guide-Using MPAS Output for WRF Initial and Lateral Boundary Conditions

从WPS的v3.9版本开始,metgrid.exe程序能够从跨尺度预测模型(MPAS)读取netCDF格式的本机非结构化网格输出;然后metgrid.exe程序可以水平地将MPAS字段直接插入到由geogrid.exe程序定义的任何域,以产生可由WRF real.exe程序使用的输出文件,其方式与从中间文件插入的metgrid输出完全相同。
这样,海洋资源系统的输出可用于为水资源资源提供初始和横向边界条件。

在运行MPAS模拟时,必须设置输出流以包含初始化WRF模拟所需的最小字段集。对于MPAS v5.x,下面的输出流应该足够了。

<stream name="wrf_ic_bc"type="output"filename_template="MPAS.$Y-$M-$D_$h.nc"output_interval="3:00:00" ><var name="xtime"/><var_array name="scalars"/><var name="pressure"/><var name="zgrid"/><var name="theta"/><var name="uReconstructZonal"/><var name="uReconstructMeridional"/><var name="u10"/><var name="v10"/><var name="q2"/><var name="t2m"/><var name="skintemp"/><var name="surface_pressure"/><var name="mslp"/><var name="tslb"/><var name="smois"/>
</stream>

在运行MPAS并定义合适的输出流之后,将生成一组包含本地MPAS网格上字段的netCDF文件。由于这些文件不包含描述MPAS网格单元的位置、几何形状和连通性的字段,因此必须将这些信息与来自MPAS仿真的“静态”文件一起提供给metgrid程序。因此,有必要在&metgrid命名列表记录中指定带有constants_name和fg_name变量的MPAS netCDF文件(前缀为‘ MPAS: ’),例如:

&metgridconstants_name = ‘mpas:static.nc’fg_name = ‘mpas:MPAS’
/

在上面的例子中,metgrid.exe程序将首先读取MPAS的静态文件。读取网格信息并计算从MPAS网格到由geogrid.exe程序定义的WRF域的重映射权重,然后将处理前缀为“MPAS”(后缀为YYYY-MM-DD_HH.nc)的MPAS文件的所有时间段。real.exe程序就可以正常运行了。

ungrib.exe程序创建的中间文件中的数据可以通过metgrid程序与MPAS数据相结合。这可能是有用的,例如,利用其他来源的海温、海冰或陆地表面场。

下面显示了一个将MPAS数据与带有土壤数据(带有‘ ERAI_SOIL ’前缀)的ERA-Interim中间文件组合在一起的示例。

&metgridconstants_name = ‘mpas:static.nc’fg_name = ‘mpas:MPAS’, ‘ERAI_SOIL’
/

由于MPAS ‘ zgrid ’字段不随时间变化,因此可以从MPAS周期输出流中省略;然而,在这种情况下,‘ zgrid ’字段必须放在它自己的netCDF文件中,该文件还必须将维度‘ Time ’定义为netCDF无限维度。然后,这个文件(比如‘ zgrid.nc ’)可以使用constants_name namelist变量提供给metgrid程序,例如:

&metgridconstants_name = ‘mpas:static.nc’, ‘mpas:zgrid.nc’fg_name = ‘mpas:MPAS’
/

将‘ zgrid ’字段放在它自己的文件中可以节省相当大的空间,当长MPAS模拟运行时,或者当输出流用作WRF初始和边界条件以高时间频率写出来时。下面的python脚本可以作为如何将‘ zgrid ’字段提取到其自己的netCDF文件的示例。

from netCDF4 import Datasetfin = Dataset('init.nc')
fout = Dataset('zgrid.nc','w',format='NETCDF3_64BIT')
nCells = fin.dimensions['nCells'].size
nVertLevelsP1 = fin.dimensions['nVertLevelsP1'].sizefout.createDimension(dimname='Time',size=None)
fout.createDimension(dimname='nCells',size=nCells)
fout.createDimension(dimname='nVertLevelsP1',size=nVertLevelsP1)
fout.createVariable(varname='zgrid',datatype='f',dimensions=('nCells', 'nVertLevelsP1'))
fout.variables['zgrid'][:] = fin.variables['zgrid'][:]
fout.close()
fin.close()

值得注意的是,metgrid.exe使用本机MPAS输出尚未对并行(即“dmpar”)构建的WPS进行彻底测试;因此,从WPS v4.0版本开始,建议在处理MPAS数据集时串行运行metgrid.exe。

此外,在大型MPAS网格的情况下,可能有必要增加metgrid代码中的两个常量的值,这两个常量用于静态分配用于计算从MPAS网格到WRF域的重映射权重的几个数据结构。这两个常量,如下所示,位于WPS/src/metgrid/remapper.F 文件中。

! should be at least (earth circumference / minimum grid distance)
integer, parameter :: max_queue_length    = 2700! should be at least (nCells/32)
integer, parameter :: max_dictionary_size = 82000  

在更改这些常量的值之后,必须重新编译metgrid。

参考

http://www.lryc.cn/news/476350.html

相关文章:

  • 分数阶傅里叶变换与信息熵怎么用于信号处理?
  • web3.0 开发实践
  • 【华为HCIP实战课程三十】中间到中间系统协议IS-IS路由渗透及TAG标识详解,网络工程师
  • 大模型论文精华-20241104
  • mac ssh 连接 linux 服务器
  • 逻辑卷建立
  • 算法深度剖析:前缀和
  • 【双目视觉标定】——1原理与实践
  • Java学习笔记(十二)
  • 《Java 实现希尔排序:原理剖析与代码详解》
  • RDMA驱动学习(二)- command queue
  • H2 Database IDEA 源码 DEBUG 环境搭建
  • nginx系列--(三)--http
  • 通过Wireshark抓包分析,体验HTTP请求的一次完整交互过程
  • Requestium:Python中的Web自动化新贵
  • 2024版红娘金媒10.3婚恋相亲系统源码小程序(亲测)
  • k8s-实战——ES集群部署
  • 无人机的就业前景怎么样?
  • 【学习】软件测试中V模型、W模型、螺旋模型三者介绍
  • Kafka存储机制大揭秘:从日志结构到清理策略的全面解析
  • 显卡服务器和普通服务器之间的区别有哪些?
  • 国产科技里程碑:自主算力走向世界,“表格编程”横空出世
  • 人工智能如何改变未来生活:从医疗到日常的全面升级
  • 第112届全国糖酒会(3月成都)正式官宣!
  • NFT Insider #154:The Sandbox Alpha 4 第四周开启,NBA Topshot NFT 销量激增至新高
  • 【Canal 中间件】Canal 实现 MySQL 增量数据的异步缓存更新
  • 独立开发的个人品牌打造:个人IP与独立开发的结合
  • 每天一题:洛谷P2002 消息扩散
  • 【深度学习】用LSTM写诗,生成式的方式写诗系列之一
  • HomeAssistant自定义组件学习-【二】