【WRFDA教程第二期】運行WRFDA 3DVAR/4DVAR數據同化

目錄

  • 一、準備階段:下載并解壓測試數據
  • 二、運行 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…