【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内容如下:

&share
  max_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',
/

&geogrid
  parent_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)

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

解释:

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

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

&metgrid
  constants_name = 'LANDSEA', 'SOILHGT'
/

解释:

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

应用场景

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

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

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

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

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

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

&metgrid
  fg_name = '/data/ungribbed/SFC', '/data/ungribbed/UPPER_AIR'
/

解释:

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

示例 2:结合 NAM 和 GFS 数据

&metgrid
  fg_name = '/data/ungribbed/GFS', '/data/ungribbed/NAM'
/

解释:

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

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

1、3D 大气数据:

&ungrib
  out_format = 'WPS',
  prefix = 'NARR_3D',
/

运行后生成文件:

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

2、地面数据:

&ungrib
  out_format = 'WPS',
  prefix = 'NARR_SFC',
/

运行后生成文件:

NARR_SFC:2008-08-16_12

3、固定字段数据:

&ungrib
  out_format = 'WPS',
  prefix = 'NARR_FIXED',
/

生成文件:

NARR_FIXED:1979-11-08_00

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

4、组合使用:

&metgrid
  constants_name = 'NARR_FIXED',
  fg_name = 'NARR_3D', 'NARR_SFC'
/

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

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

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

参考

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Stealthy Attack on Large Language Model based Recommendation

传统RS依赖id信息进行推荐,攻击:生成虚假用户,这些用户对特定目标物体给于高评价,从而影响模型的训练。 基于llm的RS:llm利用语义理解,将用户兴趣转化为语义向量,通过计算用户兴趣向量与物品向…

Pytorch | 从零构建EfficientNet对CIFAR10进行分类

Pytorch | 从零构建EfficientNet对CIFAR10进行分类 CIFAR10数据集EfficientNet设计理念网络结构性能特点应用领域发展和改进 EfficientNet结构代码详解结构代码代码详解MBConv 类初始化方法前向传播 forward 方法 EfficientNet 类初始化方法前向传播 forward 方法 训练过程和测…

【Linux 网络 (五)】Tcp/Udp协议

Linux 网络 一前言二、Udp协议1)、Udp协议特点2)、Udp协议格式3)、Udp报文封装和解包过程4)、UDP的缓冲区 三、TCP协议1)、TCP协议特点2)、TCP协议格式1、4位首部长度、源端口、目的端口2、16位窗口大小3、…

重温设计模式--命令模式

文章目录 命令模式的详细介绍C 代码示例C代码示例2 命令模式的详细介绍 定义与概念 命令模式属于行为型设计模式,它旨在将一个请求封装成一个对象,从而让你可以用不同的请求对客户端进行参数化,将请求的发送者和接收者解耦,并且能…

Python langchain ReAct 使用范例

0. 介绍 ReAct: Reasoning Acting ,ReAct Prompt 由 few-shot task-solving trajectories 组成,包括人工编写的文本推理过程和动作,以及对动作的环境观察。 1. 范例 langchain version 0.3.7 $ pip show langchain Name: langchain Ver…

Java设计模式 —— 【结构型模式】外观模式详解

文章目录 概述结构案例实现优缺点 概述 外观模式又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这…

【自用】通信内网部署rzgxxt项目_01,后端pipeDemo部署(使用nssm.exe仿照nohup)

做完这些工作之后,不要忘记打开 Windows Server 的防火墙端口,8181、8081、8080、22、443、1521 做完这些工作之后,不要忘记打开 Windows Server 的防火墙端口,8181、8081、8080、22、443、1521 做完这些工作之后,不要…

Apache RocketMQ 5.1.3安装部署文档

官方文档不好使,可以说是一坨… 关键词:Apache RocketMQ 5.0 JDK 17 废话少说,开整。 1.版本 官网地址,版本如下。 https://rocketmq.apache.org/download2.配置文件 2.1namesrv端口 在ROCKETMQ_HOME/conf下 新增namesrv.pro…

【网络安全】网站常见安全漏洞—服务端漏洞介绍

文章目录 网站常见安全漏洞—服务端漏洞介绍引言1. 第三方组件漏洞什么是第三方组件漏洞?如何防范? 2. SQL 注入什么是SQL注入?如何防范? 3. 命令执行漏洞什么是命令执行漏洞?如何防范? 4. 越权漏洞什么是越…

【计算机视觉基础CV-图像分类】01- 从历史源头到深度时代:一文读懂计算机视觉的进化脉络、核心任务与产业蓝图

1.计算机视觉定义 计算机视觉(Computer Vision)是一个多学科交叉的研究领域,它的核心目标是使计算机能够像人类一样“看”并“理解”视觉信息。换句话说,它希望赋予计算机从图像、视频中自动提取、有意义地分析、理解并解释视觉场…

JVM系列(十三) -常用调优工具介绍

最近对 JVM 技术知识进行了重新整理,再次献上 JVM系列文章合集索引,感兴趣的小伙伴可以直接点击如下地址快速阅读。 JVM系列(一) -什么是虚拟机JVM系列(二) -类的加载过程JVM系列(三) -内存布局详解JVM系列(四) -对象的创建过程JVM系列(五) -对象的内存分…

electron-vite【实战】登录/注册页

效果预览 项目搭建 https://blog.csdn.net/weixin_41192489/article/details/144611858 技术要点 路由默认跳转到登录页 src/renderer/src/router/index.ts routes: [// 默认跳转到登录页{path: /,redirect: /login},...routes]登录窗口的必要配置 src/main/index.ts 中 cons…

蓝桥杯嵌入式备赛教程(1、led,2、lcd,3、key)

一、工程模版创建流程 第一步 创建新项目 第二步 选择型号和管脚封装 第三步 RCC使能 外部时钟,高速外部时钟 第四步晶振时钟配置 由数据手册7.1可知外部晶振频率为24MHz 最后一项设置为80 按下回车他会自动配置时钟 第五步,如果不勾选可能程序只会…

C++----------函数的调用机制

栈帧的创建与销毁 栈帧创建过程 当一个函数被调用时,系统会在程序的栈空间中为该函数创建一个栈帧。首先,会将函数的返回地址(即调用该函数的下一条指令的地址)压入栈中,这确保函数执行完后能回到正确的位置继续执行后…

C语言初阶习题【9】数9的个数

1.编写程序数一下 1到 100 的所有整数中出现多少个数字9 2.思路 循环遍历1到100,需要判断每一位的个位数是否为9,十位数是否为9,每次符合条件就count进行计数,最后输出count,即可 3.code #define _CRT_SECURE_NO_W…

模型 课题分离

系列文章 分享 模型,了解更多👉 模型_思维模型目录。明确自我与他人责任。 1 课题分离的应用 1.1课题分离在心理治疗中的应用案例:李晓的故事 李晓,一位28岁的软件工程师,在北京打拼。他面临着工作、家庭和感情的多重…

Docker 入门:如何使用 Docker 容器化 AI 项目(一)

引言 在人工智能(AI)项目的开发和部署过程中,环境配置和依赖管理往往是开发者遇到的挑战之一。开发者通常需要在不同的机器上运行同样的代码,确保每个人使用的环境一致,才能避免 “在我的机器上可以运行”的尴尬问题。…

Android修行手册 - 移动端几种常用动画方案对比

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

抢单人机交互「新红利」!哪些细分赛道“多金”?

受终端用户的智能座舱体验需求驱动,视觉、听觉、触觉等人机交互方式加速焕新。 一方面,人机多模交互引领,车载声学进入新周期。根据高工智能汽车研究院统计数据,单车的车载扬声器搭载量正在快速起量。 很显然,作为智…

Linux shell脚本用于常见图片png、jpg、jpeg、webp、tiff格式批量添加文本水印

Linux Debian12基于ImageMagick图像处理工具编写shell脚本用于常见图片png、jpg、jpeg、webp、tiff格式批量添加文本水印 BiliBili视频链接: Linux shell脚本对常见图片格式转换webp和添加文本水印 在Linux系统中,使用ImageMagick可以图片格式转换&…