【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

解决上个问题后,继而报错:思路就是缺啥文件补上啥,在补充数个文件后,终于成功运行啦!!!
在这里插入图片描述
确保 geo_em.d01.nc 文件已经生成。
在这里插入图片描述
如果未能成功生成此文件,可直接在官网下载此文件,Setup the Model domain (geogrid.exe)。

步骤4: 查看数据

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

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

在WPS目录下运行:

# 插值
./metgrid.exe

生成文件:
在这里插入图片描述
以下文件将被创建:

met_em.d01.2016-10-06_00:00:00.nc
met_em.d01.2016-10-06_06:00:00.nc
met_em.d01.2016-10-06_12:00:00.nc
met_em.d01.2016-10-06_18:00:00.nc
met_em.d01.2016-10-07_00:00:00.nc
met_em.d01.2016-10-07_06:00:00.nc
met_em.d01.2016-10-07_12:00:00.nc
met_em.d01.2016-10-07_18:00:00.nc
met_em.d01.2016-10-08_00:00:00.nc

如果未能成功生成此文件,可直接在官网下载此文件,Interpolate the input data onto our model domain (metgrid.exe)。

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

步骤1: 切换至em_real目录

WRF的操作在em_real目录(运行真实案例)

cd ~/wrf/WRF-4.1.3/test/em_real/

在这里插入图片描述

步骤2: 链接WPS中生成的met_em文件到metgrid.exe

ln -sf ~/wrf/WPS-4.1/met_em* .
ln -sf ~/wrf/WPS-4.1/met_em.d01.2016-10* .

步骤3: 修改WRF(/run)中的namelist.input文件
注意 1:由于我们只对区域 1感兴趣,因此可以忽略其他列的所有值。
在 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,

修改后文件内容如下:
在这里插入图片描述
在这里插入图片描述
步骤4: 运行“real.exe”程序(确保程序运行正确)
注意:此操作将覆盖您在以前运行中生成的“wrfinput_d01”和“wrbdy_d01”文件,如果您希望保留这些文件,请将它们保存到其他位置。

mpirun -np 1 ./real.exe

查看以下两个文件是否被创建:

wrfinput_d01
wrfbdy_d01

步骤5: 运行wrf.exe(确保程序运行正常)

mpirun -np 2 ./wrf.exe

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

检查是否创建了以下文件:

wrfout_d01_2016-10-06_00:00:00
wrfout_d01_2016-10-06_03:00:00
wrfout_d01_2016-10-06_06:00:00
wrfout_d01_2016-10-06_09:00:00
wrfout_d01_2016-10-06_12:00:00
wrfout_d01_2016-10-06_15:00:00
wrfout_d01_2016-10-06_18:00:00
wrfout_d01_2016-10-06_21:00:00
wrfout_d01_2016-10-07_00:00:00
wrfout_d01_2016-10-07_03:00:00
wrfout_d01_2016-10-07_06:00:00
wrfout_d01_2016-10-07_09:00:00
wrfout_d01_2016-10-07_12:00:00
wrfout_d01_2016-10-07_15:00:00
wrfout_d01_2016-10-07_18:00:00
wrfout_d01_2016-10-07_21:00:00
wrfout_d01_2016-10-08_00:00:00
wrfrst_d01_2016-10-07_00:00:00
wrfrst_d01_2016-10-08_00:00:00

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模型(官网案例)
3、CSDN博客-WRF模式的运行(三)

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

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

相关文章

Generic-eUICC-Test-Profile-for-Device-Testing-Public

通用eUICC测试配置文件-设备测试公开版 随着设备中不可移除UICC(通用集成电路卡)的引入,审查测试的最佳实践变得必要。传统上,行业认证计划如GCF和PTCRB的基于系统模拟器的设备测试期望通过可移除的测试UICC卡提供必要的测试配置…

洛谷 AT_abc275_c [ABC275C] Counting Squares 题解

大致题意 求以 # 为顶点的正方形个数。 思路分析 一道水黄。 首先我们可以看到题目范围非常小,仅仅只是一个 9 9 9\times9 99 的字符矩阵,而且还给了 2 2 2 秒的时间,所以是完全可以暴力的。 可以用 set 存储每个 # 号的位置&#xf…

vue打包exe之electron-quick-start的npm install 报错

vue打包exe之electron-quick-start的npm install 报错 1、github地址2、问题3、解决4、其他(打包exe)参考 1、github地址 https://github.com/electron/electron-quick-start2、问题 我使用的pnpm install正常安装,执行npm start提示错误 3、解决 在package.js…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-23 本期,我们对大语言模型在表情推荐, 软件安全和 自动化软件漏洞检测等方面如何应用,提供几篇最新的参考文章。 1 Semantics Preserving Emoji Recommendation with Large Language Mod…

Hadoop 性能优化高频面试题及答案

目录 高频面试题及答案1. 如何通过调整 MapReduce 任务的并行度优化性能?2. 如何通过数据压缩优化 MapReduce 性能?3. 如何通过调整 IO 相关参数提升 Hadoop 性能?4. 如何优化 NameNode 和 DataNode 的性能?5. 如何通过优化 Shuffle 阶段提高 Hadoop 性能?6. 如何通过合理…

如何正确连接和使用滑动变阻器?

滑动变阻器是可以改变电阻值的电子元件,广泛应用于各种电子设备和电路中。正确连接和使用滑动变阻器对于保证电路的正常工作和延长设备的使用寿命至关重要。以下是关于如何正确连接和使用滑动变阻器的一些建议: 了解滑动变阻器的基本原理和结构&#xf…

C# 里,常用的数据类型转换说明,以及简单示例

在 C# 中,类型转换是将一个数据类型的值转换为另一个数据类型的过程。类型转换可以分为两种:隐式类型转换和显式类型转换(也称为强制类型转换)。 隐式类型转换 隐式转换是不需要编写代码来指定的转换,编译器会自动进…

DERT目标检测源码流程图main.py的执行

DERT目标检测源码流程图main.py的执行 官网预测脚本 补充官网提供的预测部分的代码信息。 from PIL import Image import requests import matplotlib.pyplot as pltimport torch from torch import nn from torchvision.models import resnet50 import torchvision.transform…

大数据Flink(一百二十四):案例实践——淘宝母婴数据加速查询

文章目录 案例实践——淘宝母婴数据加速查询 一、​​​​​​​创建数据库表并导入数据 二、​​​​​​​​​​​​​​创建session集群 三、​​​​​​​​​​​​​​源表查询 四、​​​​​​​​​​​​​​指标计算 案例实践——淘宝母婴数据加速查询 随着…

Poetry进行python项目创建和管理

Poetry 是一个用于依赖管理和打包的工具,它让创建和管理 Python 项目变得更加简单。以下是如何使用 Poetry 创建和管理 Python 项目的步骤。 安装 Poetry 首先,你需要安装 Poetry。你可以使用官方提供的安装脚本来安装 Poetry: curl -sSL …

新建flask项目,配置入口文件,启动项目

pycharm新建flask项目时,会提供一个创建flask项目的导向,自动设置虚拟环境,并且安装flask及其依赖而vscode新建flask项目时,需要手动设置虚拟环境并安装flask,需要在终端使用pip install flask命令来安装flask及其依赖…

无人船在海洋勘探领域的应用!

一、具体应用 海底地形测绘: 无人船可以搭载多波束测深仪等先进设备,进行高精度的海底地形测绘。这些设备能够生成详细的海底地形图,为海洋工程设计和施工提供详尽的水下地形资料。 海底资源勘探: 通过搭载磁力仪、重力仪等地…

vue框架学习 -- 表单开发之页面自定义显示值

在 Vue 2.0 中,如果在使用 Element UI 的 组件,并希望自定义 中显示的 prop 属性的值(比如, memberName),有几种方法可以实现这一点。最直接的方法之一是在 Vue 组件的 data 函数或计算属性(com…

HTML5实现唐朝服饰网站模板源码

文章目录 1.设计来源1.1 网站首页-界面效果1.2 唐装演变-界面效果1.3 唐装配色-界面效果1.4 唐装花纹-界面效果1.5 唐装文化-界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcL…

【Kubernetes】常见面试题汇总(四十一)

目录 94. iptables 四个表五个链。 95. Kubernetes 如何简化容器化部署? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目 69-113 属于【Kuber…

TikTok直播:选择TK直播盒子还是专线节点?

随着短视频平台的蓬勃发展,TikTok(抖音国际版)直播已成为主播和商家推广产品、增强与观众互动的重要手段。在这一过程中,选择合适的直播工具和技术方案显得尤为重要。对于希望在TikTok上取得成功的主播而言,使用TK直播…

JSON 教程

JSON 教程 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> …

UE虚幻引擎云渲染汽车动画的优势!

在汽车广告和动画制作领域&#xff0c;虚幻引擎&#xff08;UE&#xff09;结合云渲染技术正掀起一场技术革命。这项技术以其高性能、成本效益和灵活性&#xff0c;为创作者提供了强大的工具&#xff0c;以实现更加逼真和高效的汽车动画制作。 一、为什么选择UE虚幻引擎制作汽车…

学习笔记每日一题

给你一个整数 n &#xff0c;找出从 1 到 n 各个整数的 Fizz Buzz 表示&#xff0c;并用字符串数组 answer&#xff08;下标从 1 开始&#xff09;返回结果&#xff0c;其中&#xff1a; answer[i] "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] "Fizz…

2024年厦门市大数据创新应用大赛圆满收官

2024年厦门市大数据创新应用大赛圆满收官 2024年9月19日-20日&#xff0c;由厦门市数据管理局、厦门市公安局、厦门市生态环境局联合主办&#xff0c;厦门市信息中心承办的2024年厦门市大数据创新应用大赛圆满收官。 经专家评审团评审 最终决出获奖名单 决赛评审会现场 2024年…