目录

  • 一、准备阶段:下载并解压测试数据
  • 二、运行 3DVAR 教学实验
    • 日志分析(wrfda.log)
    • 进阶实验建议:对比不同设置的影响
    • 输出文件说明
  • 三、运行 4DVAR 教学实验
    • 步骤1:准备工作目录与环境变量
    • 步骤2:链接可执行文件与输入数据
    • 步骤3:配置 namelist.input
    • 步骤4:可选-使用边界条件控制变量(var4d_lbc)
    • 如果使用 PREPBUFR 格式观测数据
    • 运行 WRFDA 4DVAR
    • 输出文件说明
    • 另:运行建议与调试技巧
  • 参考

观测预处理程序(OBSPROC)的详细介绍可参见另一博客-【WRFDA运行第一期】运行观测预处理程序(OBSPROC)。

本博客针对 WRFDA 教程中 “运行WRFDA”章节进行详细介绍。
在这里插入图片描述

一、准备阶段:下载并解压测试数据

WRFDA 运行需要 3 个主要输入文件:

输入数据类型格式生成方式
第一猜测场(初始场)NetCDFWPS + real.exe 或 wrfout 输出
观测数据ASCII 或 PREPBUFROBSPROC
背景误差统计文件二进制gen_be 工具 或 通用 CV3

步骤一:设置数据目录环境变量

setenv DAT_DIR /your/path/to/data

步骤二:下载并解压测试数据

从 测试数据下载页面 获取 WRFDAV4.0-testdata.tar.gz,存入 $DAT_DIR,然后:
在这里插入图片描述

cd $DAT_DIR
gunzip WRFDAV4.0-testdata.tar.gz
tar -xvf WRFDAV4.0-testdata.tar

解压后应看到以下文件:

ob/2008020512/ob.2008020512           # LITTLE_R 格式观测数据
rc/2008020512/wrfinput_d01            # 第一猜测场
rc/2008020512/wrfbdy_d01              # 边界条件文件
be/be.dat                             # 背景误差统计文件

二、运行 3DVAR 教学实验

步骤一:创建工作目录并设置环境变量

mkdir -p $WRFDA_DIR/workdir
cd $WRFDA_DIR/workdir
setenv WORK_DIR $WRFDA_DIR/workdir

步骤二:准备文件和链接

cp $DAT_DIR/namelist.input.3dvar namelist.input
ln -sf $WRFDA_DIR/run/LANDUSE.TBL .
ln -sf $DAT_DIR/rc/2008020512/wrfinput_d01 ./fg
ln -sf $DAT_DIR/ob/2008020512/obs_gts_2008-02-05_12:00:00.3DVAR ./ob.ascii
ln -sf $DAT_DIR/be/be.dat .
ln -sf $WRFDA_DIR/var/da/da_wrfvar.exe .

步骤三:编辑 namelist.input(如无特殊需求可不修改)

关键设置如下:

&wrfvar1var4d = false,
/&wrfvar3ob_format = 2,   # 2 表示 ASCII 格式观测数据
/&wrfvar6max_ext_its = 1,ntmax = 50,orthonorm_gradient = true,
/&wrfvar7cv_options = 5,  # 使用 CV5 背景误差选项
/&wrfvar18analysis_date="2008-02-05_12:00:00.0000",
/&wrfvar21time_window_min="2008-02-05_11:00:00.0000",
/&wrfvar22time_window_max="2008-02-05_13:00:00.0000",
/&domainse_we=90, e_sn=60, e_vert=41,dx=60000, dy=60000,
/&physicsmp_physics=3,ra_lw_physics=1,ra_sw_physics=1,bl_pbl_physics=1,cu_physics=1,
/

📝 若使用 PREPBUFR 观测数据,请将 ob_format=1,并链接 ob.bufr 文件。

步骤四:执行 WRFDA

./da_wrfvar.exe >& wrfda.log

成功运行后:

  • 会生成 wrfvar_output(WRFDA 分析场,即新的 wrfinput)
  • 会生成 namelist.output.da(完整 namelist 输出)
  • 日志文件为 wrfda.log 或 rsl.out.0000

日志分析(wrfda.log)

日志中包含:

  • 观测数据类型统计(如 METAR、SHIP、GPSPW 等)
  • 成本函数最小化过程(CG 迭代)
  • 最终分析结果:
Final value of J            =     29185.68177
Final value of Jo           =     23086.99122   # 观测项
Final value of Jb           =      6098.69056   # 背景项
Total number of obs.        =    37570

表示 WRFDA 成功完成,并对观测与背景信息进行最优化融合。

进阶实验建议:对比不同设置的影响

1️⃣ 收敛性测试(更严格的收敛条件)

&wrfvar6eps = 0.0001,
/

2️⃣ 激活外循环(outer loop)

&wrfvar6max_ext_its = 2,
/

⚠️ 若启用 outer loop 且使用 CV3,需要指定 as1~as5 缩放因子。

3️⃣ 控制观测类型参与同化
在 &wrfvar4 中关闭某类观测,例如关闭 SYNOP:

use_synopobs = false,

输出文件说明

文件名说明
wrfvar_output同化分析结果,可作为 WRF 初始场
namelist.output.da最终 namelist 设置
wrfda.log / rsl.out.0000日志信息
其他 *.txt / *.dat 文件诊断结果(如增量、误差、创新向量等)

三、运行 4DVAR 教学实验

目标:使用 WRFDA 4DVAR 运行 2008 年 2 月 5 日 12UTC 的教学案例, assimilate 6 小时窗口内(12UTC–18UTC) 的常规观测数据。

步骤1:准备工作目录与环境变量

setenv WRFDA_DIR /your/path/to/WRFDA
mkdir -p $WRFDA_DIR/workdir
cd $WRFDA_DIR/workdir
setenv WORK_DIR $WRFDA_DIR/workdir
setenv DAT_DIR /your/path/to/testdata

测试数据中应包含如下子目录:

$DAT_DIR/
├── ob/2008020512/
├── ob/2008020513/
├── ob/2008020514/
├── ob/2008020515/
├── ob/2008020516/
├── ob/2008020517/
├── ob/2008020518/
├── rc/2008020512/
└── be/

步骤2:链接可执行文件与输入数据

1. 链接 da_wrfvar.exe 执行文件:

ln -fs $WRFDA_DIR/var/da/da_wrfvar.exe .

2. 链接 7 个小时槽(slots)内的观测数据(ASCII 格式)

ln -fs $DAT_DIR/ob/2008020512/ob01.ascii ob01.ascii
ln -fs $DAT_DIR/ob/2008020513/ob02.ascii ob02.ascii
ln -fs $DAT_DIR/ob/2008020514/ob03.ascii ob03.ascii
ln -fs $DAT_DIR/ob/2008020515/ob04.ascii ob04.ascii
ln -fs $DAT_DIR/ob/2008020516/ob05.ascii ob05.ascii
ln -fs $DAT_DIR/ob/2008020517/ob06.ascii ob06.ascii
ln -fs $DAT_DIR/ob/2008020518/ob07.ascii ob07.ascii

3. 链接第一猜测 wrfinput、边界条件、背景误差文件等

ln -fs $DAT_DIR/rc/2008020512/wrfinput_d01 .
ln -fs $DAT_DIR/rc/2008020512/wrfbdy_d01 .
ln -fs wrfinput_d01 fg
ln -fs $DAT_DIR/be/be.dat .

4. 链接运行所需的静态表格文件

ln -fs $WRFDA_DIR/run/LANDUSE.TBL .
ln -fs $WRFDA_DIR/run/GENPARM.TBL .
ln -fs $WRFDA_DIR/run/SOILPARM.TBL .
ln -fs $WRFDA_DIR/run/VEGPARM.TBL .
ln -fs $WRFDA_DIR/run/RRTM_DATA_DBL RRTM_DATA
ln -fs $WRFDA_DIR/run/CAMtr_volume_mixing_ratio .

⚠️ CAMtr_volume_mixing_ratio 是从 WRFDA v4.4 开始进行 4DVAR 所需文件。

步骤3:配置 namelist.input

cp $DAT_DIR/namelist.input.4dvar namelist.input

✏️ 修改以下关键参数:

1. 开启 4DVAR 功能

&wrfvar1var4d = true,var4d_lbc = false,   ! 若不处理边界条件,请设为 falsevar4d_bin = 3600,    ! 每小时一个槽 slot
/

2. 时间设置(必须一致)

&wrfvar18analysis_date="2008-02-05_12:00:00.0000",
/&wrfvar21time_window_min="2008-02-05_12:00:00.0000",
/&wrfvar22time_window_max="2008-02-05_18:00:00.0000",
/&time_controlrun_hours = 6,start_year = 2008, start_month = 02, start_day = 05, start_hour = 12,end_year = 2008,   end_month = 02,   end_day = 05,   end_hour = 18,interval_seconds = 21600,debug_level = 0,
/

✅ analysis_date、time_window_min、start_hour 必须一致,time_window_max = end_hour,run_hours 为时间窗口长度(单位小时)。

步骤4:可选-使用边界条件控制变量(var4d_lbc)

如需启用边界控制变量,请:

1、设置 var4d_lbc = true
2、链接时间窗口末尾的 wrfinput_d01 文件:

ln -fs $DAT_DIR/rc/2008020518/wrfinput_d01 fg02

⚠️ 初学者建议关闭该功能(false),直到完全理解其原理。

如果使用 PREPBUFR 格式观测数据

1、设置:

&wrfvar3ob_format = 1,
/

2、链接数据文件:

ln -fs $DAT_DIR/ob/2008020512/gdas1.t12z.prepbufr.nr ob01.bufr
ln -fs $DAT_DIR/ob/2008020518/gdas1.t18z.prepbufr.nr ob02.bufr

运行 WRFDA 4DVAR

单核运行:

./da_wrfvar.exe >& wrfda.log

并行运行(推荐):

mpirun -np 4 ./da_wrfvar.exe >& wrfda.log &

✅ MPI 命令依赖于平台,日志将输出至 rsl.out.0000、rsl.error.0000 等文件。

输出文件说明

文件名说明
wrfvar_output分析时间初始场(12UTC)
ana02(可选)若启用 var4d_lbc,为 18UTC 的分析结果
namelist.output.da实际运行时使用的完整 namelist
wrfda.log / rsl.out.####日志文件,记录运行状态和诊断信息
其他 txt 文件诊断数据、创新向量、代价函数等

另:运行建议与调试技巧

✅ 减少迭代次数(加快运行)

&wrfvar6ntmax = 30,
/

✅ 检查观测数据是否正确被读取
在日志中查找:

Observation summaryob time 1metar = xxxxship  = xxxxpilot = xxxx...

✅ 代价函数最小化过程示例(日志中):

Starting outer iteration : 1
Starting cost function: 5.3E+04, Gradient= 8.1E+02
...
Final value of J = 2.91E+04

参考

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

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

相关文章

redis缓存三大问题分析与解决方案

什么是缓存? 缓存(Cache)是一种将热点数据缓存在内存中(如 Redis)以加快访问速度、减轻数据库压力的技术。 但引入缓存后可能出现 三大核心问题: 缓存穿透(Cache Penetration)缓存…

李宏毅机器学习笔记——梯度下降法

深度学习介绍 基于仿生学的一种自成体系的机器学习算法,包括但不限于图像识别、语音、文本领域。 梯度下降法 作为深度学习算法种常用的优化算法 梯度下降法,是一种基于搜索的最优化方法,最用是最小化一个损失函数。梯度下降是迭代法的一…

day50/60

浙大疏锦行 DAY 50 预训练模型CBAM模块 知识点回顾: resnet结构解析CBAM放置位置的思考针对预训练模型的训练策略 差异化学习率三阶段微调 ps:今日的代码训练时长较长,3080ti大概需要40min的训练时长 作业: 好好理解下resnet18的…

Vue3 之vite.config.js配置

一、示例 import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path // https://vitejs.dev/config/ export default defineConfig({plugins: [vue()],base: ./,build: {assetsDir: static, //指定静态资源目录rollupOptions: {input: {mai…

利用Gpu训练

方法一: 分别对网络模型,数据(输入,标注),损失函数调用.cuda() 网络模型: if torch.cuda.is_available():netnet.cuda() 数据(训练和测试): if torch.cud…

使用excel中的MATCH函数进行匹配数据

一、背景 在平日处理数据时,经常需要将给定数据按照制定的数据进行排序,数量比较大时,逐个处理有点费事费力且容易出错,这时可借助excel表格中match函数进行精确匹配。 二、使用match函数–精确排序操作步骤 主要工作步骤&#xf…

SpringCloud系列(41)--SpringCloud Config分布式配置中心简介

前言:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务,但由于每个服务都需要必要的配置信息才能运行,所以—套集中式的、动态的配置管理设施是必不可少的&…

wireshark介绍和使用

Wireshark 介绍 Wireshark 是一款开源的 网络协议分析工具(Packet Sniffer),用于捕获和分析网络数据包。它支持多种协议解析,适用于网络调试、安全分析、网络教学等场景。 官网:https://www.wireshark.org/ 特点&#…

【甲方安全建设】敏感数据检测工具 Earlybird 安装使用详细教程

文章目录 背景工具介绍安装方法一、Linux 与 macOS 安装流程二、Windows 系统安装流程(一)三、Windows 系统安装流程(二)四、错误处理使用说明模块与规则机制集成与运维建议结语背景 随着源代码泄露、配置误提交、密码硬编码等风险频发,企业源代码库中潜在的敏感信息泄漏…

异步Websocket构建聊天室

目录 Websocket技术背景 Websockec简介 实现websocket通信程序 实验环境: 服务端(阿里云ESC,VPC网络): 客户端1(本机): 通信模型: 实现功能逻辑: 源代码: 服务…

OpenCV CUDA模块设备层-----反向二值化阈值处理函数thresh_binary_inv_func()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 OpenCV CUDA 模块(cudev) 中的一个仿函数(functor)生成器,用于创建一个反向二值化阈值…

【实现一个时间MCP完整技术解析】

🕒 MCP Time Server 完整技术解析:从核心实现到文件架构的深度剖析 目前已上传npm库,chan-mcp-time-server,有兴趣的可以下载试试 创建时间: 2025年7月2日 🎯 项目概述与架构设计 核心问题定义 AI助手在处理时间相关…

类成员方法命名风格解析:动宾、纯动词与纯名词的选择之道

在软件开发的浩瀚代码海洋中,类成员方法的命名犹如指引开发者的灯塔,其重要性不言而喻。合理的命名不仅能让代码 “自我言说”,降低理解成本,还能提升开发效率,促进团队协作。常见的类成员方法命名风格可归纳为动宾结构…

自己电脑搭建本地服务器并实现公网访问,内网也能提供互联网连接使用

如何在本地自己计算机上自建服务器并开启公网地址提供互联网服务的详细教学,一步步操作流程,从本地部署到配置公网IP,最后并附无公网IP内网穿透公网访问的nat123方案。 要在自用的电脑上搭建本地服务器并实现公网地址的访问,需要…

如何使用AI改进论文写作 ---- 引言篇(2)

写在前面 本篇作为1.0版本的补充优化,记录本人的研究过程。 在分析了多本论文写作的相关的书籍之后,我明白了一点,关于论文写作,永远是一个熟能生巧的过程,对于人来说,必须多写才能够变得熟练,对…

【Java21】在spring boot中使用ScopedValue

文章目录 0.环境说明1.基础知识1.1 ScopedValue的特点 2.应用场景2.1 spring web项目中,使用ScopedValue传递上下文(全局不可变量)2.2 spring grpc项目中,使用ScopedValue传递上下文(全局不可变量) 3.Scope…

第10篇 图像语义分割和目标检测介绍

语义分割(Semantic Segmentation)是图像处理和机器视觉一个重要分支,其目标是精确理解图像场景与内容。语义分割是在像素级别上的分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的。如下如所示的照片,属…

微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野

在当今数字化时代,图像数据海量增长,边缘检测作为图像处理的关键环节,在机器视觉、医学成像、安防监控等众多领域有着至关重要的作用。传统边缘检测算法在处理复杂图像时,面临计算效率低、精度不足等问题。量子计算的兴起&#xf…

SM4密码算法的C语言实现(带测试)

一、SM4算法原理 SM4是中国国家密码管理局于2012年发布的国家商用密码算法标准,也称为GB/T 32907-2016。它是一种分组对称加密算法,采用32轮非线性迭代结构,分组长度和密钥长度均为128位。SM4算法的设计充分考虑了安全性、高效性和实现简便性…

【React Native原生项目不能运行npx react-native run-android项目】

运行命令报错,帮我修复X:\jetbrains-workspace\theme-wallpaper>npx react-native run-android error Android project not found. Are you sure this is a React Native project? If your Android files are located in a non-standard location (e.g. not inside ‘andro…