【WRF运行第三期】服务器上运行WRF模型(官网案例-Hurricane Matthew)

【WRF运行第三期】运行WRF模型(官网案例-Hurricane Matthew)

  • 官网案例-Hurricane Matthew介绍
  • 0 创建DATA文件夹
  • 1 WPS预处理
    • 1.1 解压GRIB数据(ungrib.exe)
      • 1.1.1 解压GRIB数据---GFS(Matthew案例研究数据)
      • 1.1.2 解压SST数据---海温资料
      • 另:报错-forrtl: severe (174): SIGSEGV, segmentation fault occurred
    • 1.2 设置模式区域(geogrid.exe)
      • 另:报错-./geogrid.exe: error while loading shared libraries: libnetcdff.so.7: cannot open shared object file: No such file or directory
      • 另:报错-./geogrid.exe: error while loading shared libraries: libnetcdff.so.18: cannot open shared object file: No such file or directory
    • 1.3 将数据插值到网格点上(metgrid.exe)
  • 2 运行WRF(real.exe & wrf.exe)
  • 3 ARWpost处理数据文件
  • 参考

官网案例-Hurricane Matthew介绍

Single Domain Case - Hurricane Matthew
2016年10月,飓风马修在海地、古巴和巴哈马登陆,然后与美国东海岸平行,造成了广泛的破坏。
在这里插入图片描述
本案例研究的时间段为2016-10-06 - 2016-10-08。
我们将要设置的域如下所示。
在这里插入图片描述

0 创建DATA文件夹

在Build_WRF下创建一个DATA文件夹,用于存放要用的数据。

cd Build_WRF
# 1.创建一个DATA目录用于存放数据(一般为fnl数据,放在Build_WRF目录下)。
mkdir DATA
# 2.进入 DATA
cd DATA

1 WPS预处理

在模拟之前先确定模拟域(即模拟范围),并进行数据预处理(插值陆面数据,比如地形,土壤等数据;插值气象数据到模拟域)。

1.1 解压GRIB数据(ungrib.exe)

1.1.1 解压GRIB数据—GFS(Matthew案例研究数据)

步骤1-2: 下载并解压数据

# 1.下载官网案例数据(matthew) 【此处数据可替换自己所需的数据】
wget https://www2.mmm.ucar.edu/wrf/TUTORIAL_DATA/matthew_1deg.tar.gz
# 2.解压数据包
# 得到matthew文件夹
tar -xf matthew_1deg.tar.gz

终端窗口如下:
在这里插入图片描述
步骤3-4: 读取并查看数据

# 【非必要步骤】
​# 3.用下面的命令读取数据内容(当前命令位置在DATA文件夹下)
# 注意 两个文件路径 g2print.exe、fnl_20161006_00_00.grib2 
../WPS/util/g2print.exe ../DATA/matthew/fnl_20161006_00_00.grib2 >& g2print.log
../WPS-4.1/util/g2print.exe ../DATA/matthew/fnl_20161006_00_00.grib2 >& g2print.log# 4.用下面的命令查看数据内容
nano g2print.log

说明: nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行
另: 按下Ctrl + O来保存文件,然后按下Ctrl + X退出nano编辑器。

g2print.log文件【文件位置:/Build_WRF/DATA/g2print.log】
在这里插入图片描述
数据说明:GFS(全球预报系统)是NCEP的模式产品

  • 类型:GRIB2数据
  • 分辨率:全球数据;每6小时输出一次;27个压力层(1000-10hPa;包括表层)
  • 时间段:2016-10-06-00至2016-10-08-00(时间频率6小时)

步骤5-7:

# 5.进入WPS文件(准备链接数据)
cd ~/Build_WRF/WPS/
cd ~/wrf/WPS-4.1# 6.链接GFS Vtable
ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable# 7.通过脚本link_grib.csh链接grib数据,需要将最开始下载的matthew文件下的所有fnl***.grib2文件(注意文件地址)进行链接:
./link_grib.csh ../DATA/matthew/fnl

得到:会产生一些链接:GRIBFILE.AAA~GRIBFILE.AAI
文件位置:/Build_WRF/WPS/
在这里插入图片描述

步骤8: 切换WPS目录且编辑namelist.wps
文件位置:~/Build_WRF/WPS/namelist.wps
注意:下面三步都有文件生成,具体名称与使用的动态核心(ARM/NMM)有关。

修改文件内容如下:
在这里插入图片描述
修改完成后保存并退出。

步骤9: 解压GRIB数据(ungrib.exe)
在WPS目录下运行:

# 9.解码资料
./ungrib.exe

得到:生成中间文件FILE:YYYY-MM-DD_HH

终端界面如下:(显示解码成功)
在这里插入图片描述

# 【非必要步骤】
# 了解中间文件:2016-10-06_00
./util/rd_intermediate.exe FILE:2016-10-06_00

1.1.2 解压SST数据—海温资料

步骤1-2: 下载并解压数据

# 进入数据文件夹DATA
cd /home/wanzhou/Build_WRF/DATA
# 1.下载官网案例数据(matthew_sst) 【此处数据可替换自己所需的数据】
wget https://www2.mmm.ucar.edu/wrf/TUTORIAL_DATA/matthew_sst.tar.gz
# 2.解压数据包
# 得到matthew_sst文件夹
tar -xf matthew_sst.tar.gz

终端界面如下:
在这里插入图片描述
步骤3-5:链接数据

# 3.进入WPS文件(准备链接数据)
cd ~/Build_WRF/WPS/
cd /home/wanzhou/wrf/WPS-4.1# 4.链接GFS Vtable
ln -sf ungrib/Variable_Tables/Vtable.SST Vtable# 5.通过脚本link_grib.csh链接grib数据
./link_grib.csh ../DATA/matthew_sst/rtg_sst_grb

终端界面如下:
在这里插入图片描述

步骤6:切换WPS目录且编辑namelist.wps
文件位置:~/Build_WRF/WPS/namelist.wps

# 6.编辑namelist.wps
nano namelist.wps
# 需要修改的内容
prefix = 'SST',

得到:
在这里插入图片描述
步骤7: 解码资料

# 7.解码资料
./ungrib.exe

得到:(说明成功啦)
在这里插入图片描述

另:报错-forrtl: severe (174): SIGSEGV, segmentation fault occurred

在这里插入图片描述
报错原因:运行程序较大,而Linux系统初始的堆栈大小(stack size)太小的缘故。

解决方案可参见另一博客-WPS ./ungrib.exe报错:forrtl: severe (174): SIGSEGV, segmentation fault occurred
只需要在命令行窗口中输入:

ulimit -s unlimited

1.2 设置模式区域(geogrid.exe)

geogrid.exe:用以确定模拟区域,并将陆面数据插值到模拟区域。

步骤1: 切换WPS目录且编辑namelist.wps
文件位置:~/Build_WRF/WPS/namelist.wps

cd /home/wanzhou/wrf/WPS-4.1
# 编辑namelist.wps(注意:本例中没有进行嵌套,忽略第二行的数值)
nano namelist.wps# 需要修改的内容
max_dom = 1 
parent_id = 1,
parent_grid_ratio = 1,
i_parent_start = 1,
j_parent_start = 1,
e_we = 91,
e_sn = 100,
geog_data_res = 'default',
dx = 27000,
dy = 27000,
map_proj = 'mercator',
ref_lat = 28.00,
ref_lon = -75.00,
truelat1 = 30.0,
truelat2 = 60.0,
stand_lon = -75.0,
geog_data_path = 'Your WPS_GEOG data location'
# 注意最后一行位置

得到:
在这里插入图片描述

步骤2: 绘制所设区域,查看是否合理

# 绘制所设区域,查看是否合理
ncl util/plotgrids.ncl

NCL版本不同导致无法查看。NCL下载及安装可参见另一博客-【WRF工具】服务器上使用conda安装NCL。
在这里插入图片描述
步骤3: 生成静态数据

# 生成静态数据
./geogrid.exe

生成文件geo_nmm.d01.nc。终端界面如下:

另:报错-./geogrid.exe: error while loading shared libraries: libnetcdff.so.7: cannot open shared object file: No such file or directory

生成静态数据时,如报错(./geogrid.exe: error while loading shared libraries: libnetcdff.so.7: cannot open shared object file: No such file or directory),终端界面如下:在这里插入图片描述
相关解答-WPS运行geogrid.exe时出错。
(RESOLVED) Geogrid Error: error while loading shared libraries: libnetcdf.so.7

解决方案:

查看netcdf地址:

echo $NETCDF

终端界面如下:
在这里插入图片描述

export LD_LIBRARY_PATH=$DIR/netcdf/lib:$LD_LIBRARY_PATH
export PATH=$DIR/netcdf/lib:$PATH

在这里插入图片描述
输入以下命令:

find /home/wanzhou -name libnetcdff.so.7
find /home/wanzhou -name libnetcdff.so.18
find /home -name libnetcdff.so.18

终端窗口如下:
在这里插入图片描述
常规思路,将缺失的文件拷贝至nedcdf库中,操作命令如下:

cd /home/wanzhou/miniconda3/envs/ncl_stable/lib
cp libnetcdff.so.7 /home/wanzhou/wrf/LIBRARIES/netcdf/lib

另:报错-./geogrid.exe: error while loading shared libraries: libnetcdff.so.18: cannot open shared object file: No such file or directory

解决上个问题后,继而报错:

步骤4: 查看数据

#【非必要】
# 安装ncview
sudo apt install ncview
# 查看nc文件
ncview geo_em.d01.nc

1.3 将数据插值到网格点上(metgrid.exe)

在WPS目录下运行:

# 插值
./metgrid.exe

生成文件:

2 运行WRF(real.exe & wrf.exe)

步骤1: 切换至em_real目录
WRF的操作在em_real目录(运行真实案例)

cd ~/Build_WRF/WRF/test/em_real/

步骤2: 链接WPS到WRF

ln -sf ~/Build_WRF/WPS/met_em* .
mpirun -np 1 ./real.exe
ls -alh wrfbdy_d01 wrfinput_d01
# 修改WRF中的namelist.input
nano namelist.input
# 主要修改部分
run_days = 0,
run_hours = 48,
run_minutes = 0,
run_seconds = 0,
start_year = 2016,
start_month = 10,
start_day = 06,
start_hour = 00,
end_year = 2016,
end_month = 10,
end_day = 08,
end_hour = 00,
interval_seconds = 21600
input_from_file = .true.,
history_interval = 180,
frames_per_outfile = 1,
restart = .false.,
restart_interval = 1440,
time_step = 150,
max_dom = 1,
e_we = 91,
e_sn = 100,
e_vert = 45,
num_metgrid_levels = 32
dx = 27000,
dy = 27000,
# 初始化模式:
./real.exe 
# 检查是否生成下面两个文件:
wrfinput_d01
wrfbdy_d01

步骤3: 运行WRF

mpirun -np 2 ./wrf.exe

注意: 代码里的2是指2核运行
此处已经完成,生成的wrf_out文件可以在修改后缀之后直接用python和NCL读取,读取方式类似于NC文件。

3 ARWpost处理数据文件

ARWpost安装及编译可参见另一博客-【WRF运行第二期(Ubuntu)】ARWpost安装及错误总结。

利用ARWpost处理数据文件代码如下:

cd ~/Build_WRF/ARWpost/
./ARWpost.exe

生成的ctl和dat文件可以用grads处理

参考

1、WRF官网-Single Domain Case - Hurricane Matthew
2、CSDN博客-WRF模型运行教程(ububtu系统)–III.运行WRF模型(官网案例)

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Gartner:中国企业利用GenAI提高生产力的三大策略

作者:Gartner高级首席分析师 雷丝、Gartner 研究总监 闫斌、Gartner高级研究总监 张桐 随着生成式人工智能(GenAI)风靡全球,大多数企业都希望利用人工智能(AI)技术进行创新,以收获更多的业务成果…

“AI+Security”系列第3期(二):AI赋能自动化渗透测试

近日,“AI Security” 系列第 3 期:AI 安全智能体,重塑安全团队工作范式技术沙龙活动正式举行。该活动由安全极客、Wisemodel 社区、InForSec 网络安全研究国际学术论坛和海升集团联合主办,吸引了线上与线下千余名观众参与。 在…

LLM大语言模型算法特训,带你转型AI大语言模型算法工程师

LLM(大语言模型)是指大型的语言模型,如GPT(Generative Pre-trained Transformer)系列模型。以下是《LLM大语言模型算法特训,带你转型AI大语言模型算法工程师》课程可能包含的内容: 1.深入理解大…

【算法思想·二叉树】最近公共祖先问题

本文参考labuladong算法笔记[拓展:最近公共祖先系列解题框架 | labuladong 的算法笔记] 0、引言 如果说笔试的时候经常遇到各种动归回溯这类稍有难度的题目,那么面试会倾向于一些比较经典的问题,难度不算大,而且也比较实用。 本…

分享一个vue+spring的前后端项目

管理员页面 用户界面 后面的一部分 后端代码

守护企业资产安全:企业微信群禁止互加好友操作指南!

为了防止其他公司的人员混入发起私聊,导致客户资源流失,禁止互加好友十分重要。而软件自带群防骚扰功能,设置好相关规则后,群内成员触发规则会被踢出群聊。 进入工作台-点击更多-选择客户群-选择防骚扰-选择配制企业成员防骚扰规…

spring 代码执行(CVE-2018-1273)

(1)填写注册信息,burp抓包 (2)添加poc username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/zcc")]&password&repeatedPassword (3&…

2024 Python3.10 系统入门+进阶(十五):文件及目录操作

目录 一、文件IO操作1.1 创建或打开文件1.2 读取文件1.2.1 按行读取1.2.2 多行读取1.2.3 完整读取 1.3 写入文件1.3.1 写入字符串1.3.2 写入序列 1.4 上下文管理1.4.1 with语句的使用1.4.2 上下文管理器(拓展----可以学了面向对象之后再回来看) 1.5 文件的遍历 二、os.path模块…

力扣题解1014

大家好,欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述(中等): 最佳观光组合 给你一个正整数数组 values,其中 values[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的 距离…

Bytebase 2.23.0 - 支持 Entra (Azure AD) 用户/组同步

🚀 新功能 支持从 Entra ID(前 Azure AD)同步用户和群组。 支持 CockroachDB。 支持项目级别的默认备份设置,包含自动启用和跳过错误选项。 SQL 编辑器支持实时语法检查。 支持配置密码限制策略。 🔔 重大变更 分类…

torch.nn系列函数学习 --- Conv2d函数

该函数的官方文档: https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html#torch.nn.Conv2d torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride1, padding0, dilation1, groups1, biasTrue, padding_modezeros, deviceNone, dtypeNone)…

MySQL—多表操作详解

在 MySQL 中,多表操作通常涉及联接(JOIN)和子查询(Subquery),用于处理来自多个表的数据。 约束分类 约束介绍 约束:用于对数据库表中的数据进行限定,确保数据的正确性、有效性和完…

Shelly实测天工的音乐创作功能,写了一首歌,来听听效果

​ 大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 在数字时代的洪流中,我始终…

C语言 fwirte 函数 - C语言零基础入门教程

目录 一.fwirte 函数简介二.fwirte 函数使用三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.fwirte 函数简介 C 语言文件读写,fread 函数用于读取文件中的数据到指定缓冲区中,而 fwrite 函数用于把缓冲区数据写入到文件…

Linux(麒麟系统)多显示器屏幕录制

Linux桌面设备在接入多显示器的情况下,有些只录主显示器,有些场景要单独录制每个显示器,X Window System支持多显示器配置和显示器列表获取,需要XRandR 1.5及以上版本,查看RandR version 命令: xrandr --version 使用x…

MCU和YT9218交换机通过RMII连接

1、可以通过带RMII的MCU和EXT1端口连接,将MCU配置为RMII 100M/全双工就可以通 2、原先在这里改SW配置, 一直不通 3、后来通过api调用可以通 这样改: 在初始化后,添加下面代码 //使能RMII,phy模式 #define Port5 …

pycharm安装教程,超详细

引言 PyCharm官网提供了两个版本,第一个版本是Professional(专业版本),这个版本功能更加强大,主要是为Python和web开发者而准备,是需要付费的。第二个版本是社区版(Community)&…

10月23-27日六西格玛绿带公开课即将在雄安新区开课

在金秋送爽、硕果累累的季节里,天行健管理咨询公司宣布了一项重要决定——定于10月23日至27日,在充满未来气息的河北雄安新区,举办一场旨在提升企业质量管理水平、培养精英人才的六西格玛绿带公开课。此次课程的举办,不仅是对当前…

LeetCode 每日一题 ---- 【1014. 最佳观光组合】

LeetCode 每日一题 ---- 【1014. 最佳观光组合】 1014.最佳观光组合题解:枚举右 维护左 1014.最佳观光组合 题解:枚举右 维护左 先对题目中的式子进行变形 values[i] values[j] i - j > (values[i] i) (values[j] - j) 枚举右端点 j&#xf…

活动报名| 探索存内计算的未来,共话AGI时代

活动日期:2024年09月28日 下午一点到6点 地点:杭州技术转移中心 三楼路演厅 议程亮点: 存内计算技术架构以及最新趋势AGI开源项目交流存内计算实操上板体验 存内计算 ——突破物理极限的下一代算力技术 直接消除“存”“算”界限&…