【WRF教程第3.2期】预处理系统 WPS详解:以4.5版本为例

预处理系统 WPS 详解:以4.5版本为例

  • WPS 嵌套域(WPS Nested Domains)
  • USGS 和 MODIS 土地利用
  • 重力波拖拽方案静态数据(Gravity Wave Drag Scheme Static Data)
    • 1. 什么是重力波拖拽方案(GWDO)静态数据?
    • 2. GWDO 静态数据的分辨率
    • 3. 配置 GWDO 静态数据
    • 4. GWDO 数据的使用
  • 使用多个气象数据源
    • 1. 插值时间不变场(Interpolating Time-invariant Fields)
    • 2. 从多个气象数据源进行插值(Interpolating from Multiple Sources of Meteorological Data)
  • 参考

WPS 嵌套域(WPS Nested Domains)

运行 WPS 进行嵌套域模拟与运行单域情况类似;嵌套域模拟的不同之处在于,geogrid 和 metgrid 程序在运行时处理多个网格,而不是模拟单个网格。为了指定嵌套的大小和位置,必须为 namelist.wps 文件中的多个变量提供值列表,每个嵌套一个值。
namelist.wps 文件中share和geogrid内容如下:

&sharemax_dom = 2,start_date = '2019-09-04_12:00:00','2019-09-04_12:00:00',end_date   = '2019-09-04_18:00:00','2019-09-04_12:00:00',
/&geogridparent_id         =   1,   1,parent_grid_ratio =   1,   3,i_parent_start    =   1,  53,j_parent_start    =   1,  25,e_we              =  150, 220,e_sn              =  130, 214,geog_data_res     = 'default','default',
/

受嵌套影响的名称列表变量显示在上面的(部分)名称列表记录中。示例显示了 双域运行(粗域加上单个嵌套) 的名称列表变量,并且对名称列表变量的影响以显而易见的方式推广到多个嵌套:不是指定两个值的列表,而是必须指定 N 个值的列表,其中 N 是模型网格的总数。

在上面的例子中,共享名称列表记录中的 max_dom 变量设置为模拟中的嵌套总数,包括粗域。然后,必须为所有其他受影响的名称列表变量提供一个 N 值列表,每个网格一个。共享名称列表记录的唯一其他更改是开始和结束时间。这里,必须为每个嵌套提供开始和结束时间,限制是嵌套不能在其父域之前开始或在其父域之后结束;此外,建议在运行 WPS 时将嵌套开始和结束时间都设置为嵌套的开始时间。这是因为嵌套从其父域获取其横向边界条件,因此,除了在 WRF 中使用网格微调(也称为分析微调)和/或 sst_update 选项时,WPS 只需要处理嵌套的初始时间。请注意,在运行 WRF 时,必须在 WRF namelist.input 文件中给出所有嵌套的实际开始和结束时间。

在 geogrid namelist 记录中,必须使用 parent_id 变量指定每个嵌套的父级。每个嵌套必须是另一个嵌套的子级,粗域是其自己的父级。嵌套相对于其父级的细化比率由 parent_grid_ratio 变量给出,该比率决定了嵌套相对于其父级网格间距的标称网格间距。
在这里插入图片描述
接下来,使用 i_parent_start 和 j_parent_start 变量将嵌套的左下角指定为嵌套父域中的 (i, j) 位置,并相对于非交错网格给出指定位置。
最后,使用 s_we、e_we、s_sn 和 e_sn 变量为每个嵌套给出每个嵌套的尺寸(以网格点为单位)。
上图说明了示例名称​​列表中的嵌套设置,从中可以看出如何确定上述每个变量。南北 (s_sn) 和东西 (s_we) 方向的起始网格点值必须指定为 1,而结束网格点值 (e_sn 和 e_we) 决定了嵌套的完整尺寸;为了确保嵌套网格的右上角与父域中的非交错网格点重合,e_we 和 e_sn 都必须比嵌套比率的某个整数倍大一
此外,对于每个嵌套,要插入的源数据分辨率(或分辨率列表)由 geog_data_res 变量指定。有关这些名称列表变量的完整描述,请参阅 WPS 名称列表变量。

USGS 和 MODIS 土地利用

默认情况下,geogrid 程序会从 MODIS IGBP 21 类数据中插入土地利用类别。但是,可以选择基于 USGS 土地覆盖分类的替代土地利用类别集。尽管基于 MODIS 的数据包含 21 个土地利用类别,但这些类别并不是 24 个 USGS 类别的子集。请参阅静态数据中的土地利用和土壤类别,了解任一数据集的具体土地利用类别列表。

可以使用 &geogrid 名称列表记录中的 geog_data_res 变量在运行时选择基于 USGS 的 24 类土地利用数据,而不是 MODIS 数据,方法是将字符串 usgs_lakes+ 作为静态数据的每个分辨率的前缀。
例如,在双域配置中,geog_data_res 通常指定为

geog_data_res = 'default', 'default',

应该将其指定为

geog_data_res = 'usgs_lakes+default', 'usgs_lakes+default',

此更改指示地理网格程序在 GEOGRID.TBL 的每个条目中查找由“usgs_lakes”表示的静态数据分辨率,如果找不到这样的分辨率,则改为查找由“+”后面的字符串表示的分辨率。
因此,对于 LANDUSEF 字段的 GEOGRID.TBL 条目,将使用由字符串“usgs_lakes”标识的基于 USGS 的土地使用数据,而不是上例中的“默认”土地使用数据分辨率(或来源);对于所有其他字段,将使用“默认”分辨率作为第一和第二个分辨率。
另外,当在 GEOGRID.TBL 条目中找不到 geog_data_res 中为域指定的任何分辨率时,将使用由“默认”表示的分辨率。

注意:要更改默认的 21 类 MODIS 土地利用数据,必须在 WRF namelist.input 文件中的“physics”名称列表记录中将“num_land_cat”变量设置为“21”。对于 24 类 USGS 数据,“num_land_cat”应设置为 24。

重力波拖拽方案静态数据(Gravity Wave Drag Scheme Static Data)

**重力波拖拽方案(GWDO,Gravity Wave Drag by Orography)**是 WRF 模型中的一个物理过程模块,用于模拟由地形(山脉等)引起的重力波对大气层的影响。这些波可能导致能量和动量在大气中的垂直传播,从而影响天气模式、风场、湍流等现象。为了正确运行 GWDO 模块,WRF 要求从地形数据中提取特定的静态数据字段,并将其作为输入。

1. 什么是重力波拖拽方案(GWDO)静态数据?

GWDO 静态数据是与地形相关的地理信息数据,这些数据主要用于描述地形特征及其对重力波产生和传播的影响。WRF 模型使用这些静态数据来计算由地形引发的重力波的特性,包括波的振幅、波长、传播方向等。

GWDO 静态数据的关键字段
WRF 重力波地形拖曳 (GWDO) 方案需要WPS 中的 10 个静态字段,它们通常由 WPS(WRF Preprocessing System)中的 geogrid 程序处理。这些字段即使在不使用 GWDO 方案时也会被 geogrid 插值,但如果未启用 GWDO,它们不会被 WRF 使用。

这些字段包括:

  • 地形高度(Topographic height)
    表示地形的海拔高度,是重力波生成的主要影响因子。
  • 地形高度的标准差(Standard deviation of topographic height)
    用于描述局部地形的粗糙程度(或复杂性),如山脉的起伏幅度。
  • 地形高度的方差(Variance of topographic height)
    类似标准差,描述地形的高程变化。
  • 地形高度的梯度(Gradient of topographic height)
    用于计算地形坡度和方向。
  • 地形高度的方向(Direction of topographic height gradient)
    确定地形的主要坡度方向,影响重力波传播路径。
  • 次一级的地形高度标准差(Secondary standard deviation of topographic height)
    进一步细化地形特征。
  • 地形高度的波数(Wave number of topographic height)
    反映地形波动的频率,用于计算波数谱。
  • 地形高度的带宽(Bandwidth of topographic height spectrum)
    用于描述地形波长的范围。
  • 地形高度的对称性(Symmetry of topographic height)
    用于分析地形的对称性或不对称性。
  • 地形高度的偏度(Skewness of topographic height)
    衡量地形高度分布的倾斜程度。

如果使用 GWDO 方案,则应从比模型网格分辨率略低(即更粗糙)的源数据分辨率中插值这些字段;因此,应选择适当的 GWDO 静态数据分辨率。

2. GWDO 静态数据的分辨率

数据分辨率的重要性
GWDO 静态数据的分辨率对模拟结果的准确性有很大影响。如果数据分辨率过低,可能无法捕捉到重要的地形细节;但如果分辨率过高,可能会引入过多的小尺度特征,导致重力波参数化方案不稳定。因此,选择合适的分辨率非常重要。

可用的分辨率
WRF 提供了以下 5 种分辨率的 GWDO 静态数据(2 度、1 度、30 分钟、20 分钟和 10 分钟),分别用字符串“2deg”、“1deg”、“30m”、“20m”和“10m”表示,适用于不同的模型分辨率:

  • 2 度分辨率(2-degree):非常粗糙,适用于大尺度全球模拟。
  • 1 度分辨率(1-degree):适用于全球模拟或低分辨率区域模拟。
  • 30 分钟分辨率(30-minute):适用于中等分辨率的区域模拟。
  • 20 分钟分辨率(20-minute):适用于高分辨率区域模拟。
  • 10 分钟分辨率(10-minute):最精细的分辨率,适用于超高分辨率模拟。

如何选择分辨率
WRF 要求 GWDO 数据的分辨率应 略低于模型网格分辨率。
例如,当模型网格分辨率为 48 km 时,推荐使用 30 分钟分辨率的数据。
如果未明确指定分辨率,默认会使用最精细的 10 分钟分辨率,这在大部分情况下是可接受的。

3. 配置 GWDO 静态数据

(1) 在 geogrid 中配置
在运行 WPS 的 geogrid 程序时,需要在 namelist.wps 文件的 &geogrid 块中指定静态数据的分辨率。

关键变量:geog_data_res
geog_data_res 用于指定地理数据分辨率,并可以同时指定多个数据分辨率。对于 GWDO 静态数据,可以使用以下格式:

要选择插值的分辨率,应在地理网格名称列表记录中通过字符串“XXX+”设置 geog_data_res 变量,其中 XXX 是五个可用分辨率之一。例如,在网格间距为 48 公里的模型配置中,geog_data_res 通常指定为

geog_data_res = 'default',
geog_data_res = 'XXX+default',

其中,XXX 是 GWDO 数据分辨率(如 30m、20m 等),default 表示其他静态数据(如地形高度、土地利用等)使用默认分辨率。

然而,如果采用 GWDO 方案,分辨率仍然低于模型网格的 GWDO 静态数据的最佳分辨率将是 30 分钟数据,在这种情况下设置应该是

geog_data_res = '30m+default',

如果 geog_data_res 变量中未指定“2deg”、“1deg”、“30m”或“20m”与其他静态数据分辨率的组合,则将使用默认分辨率“10m”GWDO 静态数据。请注意,如果使用 10 分钟分辨率 GWDO 数据,但其他静态字段(例如地形高度)需要不同的分辨率,则应从 geog_data_res 变量的给定值中发出“10m”,因为指定

geog_data_res = '10m+30s',

例如,对于非 GWDO 字段(例如地形高度和土地利用类别)以及 GWDO 字段,将导致土工格栅优先使用 10 分钟数据而不是 30 秒数据。

(2) geogrid 的工作方式
geogrid 程序会根据 geog_data_res 的设置,从静态数据文件中提取对应分辨率的 GWDO 数据。
如果未指定 GWDO 数据分辨率,geogrid 会默认使用最高分辨率的 10 分钟数据。

4. GWDO 数据的使用

(1) GWDO 数据是否必须

  • 如果未启用 GWDO 方案,WRF 模型会忽略这些静态数据,尽管它们仍然会被 geogrid 插值。
  • 如果启用了 GWDO 方案(通过在 namelist.input 文件的 &physics 块中设置 gravity_wave_drag 参数),模型会使用这些静态数据。

(2) 在 namelist.input 中配置 GWDO
在 namelist.input 文件的 &physics 块中,启用 GWDO 方案的关键参数为:

gravity_wave_drag = 1

这会启用重力波拖拽方案,并使用 geogrid 插值的 GWDO 静态数据字段。

使用多个气象数据源

1. 插值时间不变场(Interpolating Time-invariant Fields)

简介
在某些模拟中,需要使用时间不变的地理或气象场(例如固定的海表温度、土地利用类型或海陆掩码)。metgrid 支持引入这些时间不变场,并在每个时间步中都使用它们,而无需为每个时间步提供不同的输入数据。

实现方法
通过在 metgrid 的 namelist 配置文件中设置 constants_name 变量,指定时间不变场的中间格式文件路径和名称即可。

示例 1:使用单个时间不变文件(固定 SST)

&metgridconstants_name = '/data/ungribbed/constants/SST_FILE:2006-08-16_12'
/

解释:

  • 文件 /data/ungribbed/constants/SST_FILE:2006-08-16_12 包含时间不变的 SST 数据。
  • 无论模拟的时间跨度如何,metgrid 都会在每个时间步中使用该文件中的 SST 值。

示例 2:使用多个时间不变文件

&metgridconstants_name = 'LANDSEA', 'SOILHGT'
/

解释:

  • LANDSEA 和 SOILHGT 是两个时间不变的中间格式文件,分别表示海陆掩码和土壤高度。
  • 这些文件中的信息将被插值到模拟网格并用于整个模拟过程。

应用场景

  • 模拟中只需使用某个固定时刻的场(例如海表温度、地表属性),而无需为每个时间步生成这些数据。
  • 减少输入数据的准备复杂性,提高模拟效率。

2. 从多个气象数据源进行插值(Interpolating from Multiple Sources of Meteorological Data)

简介
metgrid 可以从多个气象数据源插值数据,这在需要结合多个数据集以生成完整的输入数据时非常有用。例如:

  • 一个数据源提供地面数据,另一个数据源提供高空气象数据。
  • 区域模型数据不足以覆盖整个模拟域,需要补充全球模型数据。

实现方法
通过在 metgrid 的 namelist 配置文件中设置 fg_name 变量,指定多个中间格式文件的路径前缀。

示例 1:结合地面数据和高空气象数据

&metgridfg_name = '/data/ungribbed/SFC', '/data/ungribbed/UPPER_AIR'
/

解释:

  • /data/ungribbed/SFC:包含地面气象场的中间文件前缀。
  • /data/ungribbed/UPPER_AIR:包含高空气象场的中间文件前缀。
  • 如果某个气象场在多个数据源中同时存在,metgrid 会优先使用 fg_name 中最后指定的数据源中的值(这里是 UPPER_AIR 数据)。

示例 2:结合 NAM 和 GFS 数据

&metgridfg_name = '/data/ungribbed/GFS', '/data/ungribbed/NAM'
/

解释:

  • GFS 数据和 NAM 数据被组合使用。
  • 如果 GFS 或 NAM 提供了相同的气象场,则优先使用 NAM 数据,因为它在 fg_name 中的优先级更高。

数据准备:以 NARR 数据为例
使用 NARR(北美区域再分析)数据时,可以通过 ungrib 处理多个数据源,并为每个数据源定义不同的文件前缀:

1、3D 大气数据:

&ungribout_format = 'WPS',prefix = 'NARR_3D',
/

运行后生成文件:

NARR_3D:2008-08-16_12
NARR_3D:2008-08-16_15

2、地面数据:

&ungribout_format = 'WPS',prefix = 'NARR_SFC',
/

运行后生成文件:

NARR_SFC:2008-08-16_12

3、固定字段数据:

&ungribout_format = 'WPS',prefix = 'NARR_FIXED',
/

生成文件:

NARR_FIXED:1979-11-08_00

将固定文件重命名为无日期格式(如 NARR_FIXED),并在 constants_name 中引用。

4、组合使用:

&metgridconstants_name = 'NARR_FIXED',fg_name = 'NARR_3D', 'NARR_SFC'
/

metgrid 将从 NARR 的 3D 数据、地面数据和固定字段中生成完整的输入数据。

高级场景:区域与全球数据的结合
当区域模型数据不足以覆盖整个模拟域时,可以通过以下方式结合区域和全球数据:
在这里插入图片描述

&metgridfg_name = '/data/ungribbed/GFS', '/data/ungribbed/NAM'
/
  • 优先级:NAM 数据覆盖的区域优先使用 NAM,其余区域使用 GFS 数据。
  • 结果:生成的模拟域数据包含了 NAM 和 GFS 的结合。

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/492067.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Proteus软件仿真STM32F103寄存器方式PID调速电机

因为电脑中只装了IAR,所以本次编译环境就只能是IAR,所用软件版本是9.32.1。 本次仿真为,纯手写代码,不用任何库,包括启动文件也是手写。 首先是启动文件,该文件是汇编文件,命名为start.s&…

QtitanChart组件——高效、灵活的Qt数据可视化解决方案

在现代应用开发中,数据可视化已经成为不可或缺的一部分。无论是商业分析工具、财务报表、工程图表,还是科学实验数据展示,如何以直观、易理解的方式展示数据,往往决定了软件的可用性与用户体验。对于Qt开发者来说,Qtit…

YOLOv11融合[CVPR2024]Starnet中的star block特征提取模块

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Rewrite the Stars》 一、 模块介绍 论文链接:https://arxiv.org/abs/2403.19967 代码链接:https://github.com/ma-xu/Rewri…

LabVIEW农机自主导航监控系统

随着现代农业技术的快速发展,自主导航农机的需求日益增加,提高作业效率和减少劳动成本成为农业现代化的关键目标。本文介绍了一个基于LabVIEW的农机自主导航监控系统的开发案例,该系统通过先进的传感器与控制技术,实现农机在田间作…

JAVA:代理模式(Proxy Pattern)的技术指南

1、简述 代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理,以控制对这个对象的访问。通过代理模式,我们可以在不修改目标对象代码的情况下扩展功能,满足特定的需求。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什…

番外篇 | Hyper-YOLO:超图计算与YOLO架构相结合成为目标检测新的SOTA !

前言:Hello大家好,我是小哥谈。Hyper-YOLO,该方法融合了超图计算以捕捉视觉特征之间复杂的高阶关联。传统的YOLO模型虽然功能强大,但其颈部设计存在局限性,限制了跨层特征的融合以及高阶特征关系的利用。Hyper-YOLO在骨干和颈部的联合增强下,成为一个突破性的架构。在COC…

php基础:正则表达式

1.正则表达式 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。 在PHP中,正则表达式一般是由正规字…

Postman接口测试:全局变量/接口关联/加密/解密

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 全局变量和环境变量 全局变量:在postman全局生效的变量,全局唯一 环境变量:在特定环境下生效的变量,本环境内唯一 …

vue响应式数据-修改对象的属性值,视图不更新

如图: 一:问题是: 我把数据处理后能console.log()打印出来,但是页面的内容不能同步的更新渲染; 二:要求: 在数组循环列表里面,我点击单个的item按钮时,需要实时加载进度…

configure错误:“C compiler cannot create executables“

执行./configure命令出现如下奇怪的错误,百思不得姐: ./configure命令的日志文件为config.log,发生错误时,该文件的内容: This file contains any messages produced by compilers while running configure, to aid d…

【Java学习笔记】多线程基础

并行:同一时刻,多任务同时进行 多任务分别进行 一、线程相关概念 1.程序 是为完成特定任务、用某种语言编写的一组指令的集合。 简单的说:就是我们写的代码 2.进程 (1)进程指的就是运行中的程序,比如我们使用QQ,就…

PyTorch基础入门

目录 前言一、[张量的广播&基本运算](https://www.bilibili.com/video/BV1Gg411u7Lr/?spm_id_from333.999.0.0)1. 张量的广播特性2. 逐点&规约&比较运算 二、张量的线性代数运算1. BLAS & LAPACK2. 矩阵形变及特殊矩阵构造3. 矩阵基本运算4. 矩阵的线性代数运…

XXE靶机攻略

XXE-Lab靶场 1.随便输入账号密码 2.使用bp抓包 3.插入xml代码,得到结果 xxe靶机 1.安装好靶机,然后输入arp-scan -l,查找ip 2.输入ip 3.使用御剑扫描子域名 4.输入子域名 5.输入账号密码抓包 6.插入xml代码 7.使用工具解码 8.解码完毕放入文…

计算机知识笔试

一、计算机网络 1.网络分类 树型、总线型、环型一般是局域网所用的拓扑结构,广域网和远程计算机网络普遍采用网状拓扑结构。 2.OSI模型各层功能 比特、帧、端到端 3.传输层协议 TCP:传输控制协议 UDP:用户数据报协议 传输层、可靠、连接 4.网络层协议 IP协议是…

设计规规范:【App 配色】

文章目录 引言I App 配色组成色彩象征 & 联想II 知识扩展设计流程图UI设计交互设计UI交互设计引言 设计规范,保持设计一致性,提高设计效率。宏观上对内统一,管理与合作变得容易。 按类型管理颜色、文本样式、图标、组件(symbol)。 蓝湖设计规范云 https://lanhuapp.co…

计算生物学与系统生物学

计算生物学 计算生物学是一个利用数学、统计学、计算机科学和生物学知识来解决生物学问题的学科。它的核心目标是通过开发和应用计算方法来分析和解读大量的生物数据,以揭示生命现象的规律和机制。 1. 基因组学分析 计算生物学在基因组学中的应用主要集中在基因的…

timestamp 时间戳转换成日期的方法 | java.util

时间戳通常是一个long数据(注意java中赋值时需要带上L标识是long整型,否则int过长报错) 代码实现 常用工具类: java.util.Datejava.time.Instantjava.time.format.DateTimeFormatter toInstant() 方法的功能是将一个 Date 对象…

【OpenCV计算机视觉】图像处理——平滑

本篇文章记录我学习【OpenCV】图像处理中关于“平滑”的知识点,希望我的分享对你有所帮助。 目录 一、什么是平滑处理 1、平滑的目的是什么? 2、常见的图像噪声 (1)椒盐噪声 ​编辑(2) 高斯噪声 &a…

在IDE中使用Git

我们在开发的时候肯定是经常使用IDE进行开发的,所以在IDE中使用Git也是非常常用的,接下来以IDEA为例,其他的VS code ,Pycharm等IDE都是一样的。 在IDEA中配置Git 1.打开IDEA 2.点击setting 3.直接搜索git 如果已经安装了会自…

数据可视化-1. 折线图

目录 1. 折线图适用场景分析 1. 1 时间序列数据展示 1.2 趋势分析 1.3 多变量比较 1.4 数据异常检测 1.5 简洁易读的数据可视化 1.6 特定领域的应用 2. 折线图局限性 3. 折线图代码实现 3.1 Python 源代码 3.2 折线图效果(网页显示) 1. 折线图…