WRF模式输出变量全解析与实战应用指南

第一次打开WRF模式输出的wrfout文件时,上百个变量名和复杂的维度结构确实容易让人望而生畏。U、V、T、QVAPOR、RAINC...这些看似简单的缩写背后,隐藏着丰富的气象信息和物理过程。本文将打破传统变量列表的枯燥形式,从实际天气分析场景出发,带您系统掌握WRF输出变量的核心要义。

1. 气象要素分类解析

1.1 风场相关变量

风场变量是WRF输出中最基础也最重要的组成部分,理解它们的结构和物理意义对后续分析至关重要:

  • U/V/W :分别代表东西、南北和垂直方向的风速分量(m/s)
    • U的维度为(bottom_top, south_north, west_east_stag)
    • V的维度为(bottom_top, south_north_stag, west_east)
    • W的维度为(bottom_top_stag, south_north, west_east)
# Python读取U变量示例
import netCDF4 as nc
ds = nc.Dataset('wrfout_d01_2020-06-01_00:00:00')
u = ds.variables['U'][:]  # 获取所有时次的U变量
u_850 = u[0,10,:,:]  # 获取第一个时次850hPa附近的U分量

注意:风场变量在网格上是交错的(staggered grid),U在x方向交错,V在y方向交错,W在垂直方向交错。进行风场分析时通常需要插值到质量点。

1.2 温湿度场变量

温湿度变量反映了大气的基本热力状态,是天气分析的核心要素:

变量名 描述 单位 维度
T 扰动位温 K (Time, bottom_top, south_north, west_east)
TH2 2m高度位温 K (Time, south_north, west_east)
QVAPOR 水汽混合比 kg/kg (Time, bottom_top, south_north, west_east)
Q2 2m高度比湿 kg/kg (Time, south_north, west_east)
; NCL计算相对湿度示例
T = wrf_user_getvar(nc_file,"T",0)  ; 获取位温
P = wrf_user_getvar(nc_file,"P",0)  ; 获取扰动气压
PB = wrf_user_getvar(nc_file,"PB",0) ; 获取基态气压
QVAPOR = wrf_user_getvar(nc_file,"QVAPOR",0) ; 获取水汽混合比
rh = wrf_rh(QVAPOR, P+PB, T)  ; 计算相对湿度

1.3 降水相关变量

WRF提供了多种降水变量,区分不同物理过程产生的降水:

  • RAINC :积云对流降水累积量(mm)
  • RAINNC :网格尺度降水累积量(mm)
  • SNOWNC :格点降雪和冰累积量(mm)
  • GRAUPELNC :霰(雪丸)累积量(mm)
# 计算总降水量
rainc = ds.variables['RAINC'][0,:,:] 
rainnc = ds.variables['RAINNC'][0,:,:]
total_rain = rainc + rainnc  # 总降水量为对流降水与格点降水之和

2. 垂直坐标系统解析

WRF采用独特的eta垂直坐标系统,理解这些变量对正确解释垂直剖面至关重要:

  • ZNU :半层(质量点)eta坐标值(无单位)
  • ZNW :整层(w点)eta坐标值(无单位)
  • PH/PHB :扰动位势和基态位势(m²/s²)
  • P/PB :扰动气压和基态气压(Pa)
# 计算实际高度(米)
ph = ds.variables['PH'][0,:,:,:] 
phb = ds.variables['PHB'][0,:,:,:]
height = (ph + phb)/9.81  # 将位势转换为几何高度

3. 地表与土壤变量

地表过程变量对边界层分析和陆面过程研究特别重要:

  • TSK :地表皮肤温度(K)
  • SOILT :土壤温度(K)
  • SMOIS :土壤湿度(m³/m³)
  • HFX :感热通量(W/m²)
  • LH :潜热通量(W/m²)
; 绘制土壤温度垂直剖面
smois = wrf_user_getvar(nc_file,"SMOIS",0)  ; 获取土壤湿度
soil_levels = (/5,20,40,60,100/)  ; 土壤层深度(cm)
wrf_contour(wks, smois(0,:,:), opts)  ; 绘制表层土壤湿度

4. 辐射与能量平衡变量

辐射变量对理解地表能量收支和大气辐射过程非常关键:

  • SWDOWN :向下短波辐射(W/m²)
  • GLW :向下长波辐射(W/m²)
  • OLR :向外长波辐射(W/m²)
  • ALBEDO :反照率(无单位)
# 计算净辐射
swdown = ds.variables['SWDOWN'][0,:,:]
glw = ds.variables['GLW'][0,:,:]
albedo = ds.variables['ALBEDO'][0,:,:]
net_rad = swdown*(1-albedo) + glw - olr

5. 实用分析与诊断技巧

5.1 变量组合分析

实际应用中,经常需要组合多个变量进行诊断分析:

  • 风速计算 wind = sqrt(U² + V²)
  • 相对湿度计算 :需要T、P、QVAPOR组合
  • 位涡计算 :需要U、V、T、P等变量
; 计算10m风速
u10 = wrf_user_getvar(nc_file,"U10",0)
v10 = wrf_user_getvar(nc_file,"V10",0)
wind10 = sqrt(u10^2 + v10^2)

5.2 常见问题排查

  • 变量缺失 :检查namelist.output中的输出设置
  • 单位混淆 :特别注意位温(K)和温度(℃)的区别
  • 维度错误 :注意交错网格变量的维度匹配

提示:使用wrf-python或NCL的wrf_user_getvar函数可以自动处理许多网格和单位转换问题。

6. 可视化实战案例

6.1 强降水过程分析

# 绘制强降水区域叠加风场
import matplotlib.pyplot as plt
from wrf import getvar, to_np

total_rain = getvar(ds, "RAINNC") + getvar(ds, "RAINC")
u10 = getvar(ds, "U10")
v10 = getvar(ds, "V10")

plt.contourf(to_np(total_rain), levels=np.arange(0,50,5))
plt.barbs(to_np(u10[::5,::5]), to_np(v10[::5,::5]))
plt.colorbar(label="Total Precipitation (mm)")

6.2 边界层结构分析

; 绘制边界层高度时间序列
pblh = wrf_user_getvar(nc_file,"PBLH",-1)  ; 获取所有时次PBLH
times = wrf_user_getvar(nc_file,"times",-1) ; 获取时间坐标

plot = gsn_csm_xy(wks,times,pblh(50,50),res)  ; 绘制单点时间序列

在实际业务和科研中,WRF输出变量的灵活运用需要结合具体分析目标。建议从几个关键变量入手,逐步扩展到更复杂的诊断分析。遇到不熟悉的变量时,可以先用ncdump查看其描述和单位,再通过小范围测试理解其物理意义。

更多推荐