【WRF后处理】基于NCL处理wrf运行结果wrfout_d01
- NCL概述
- wrf-python和NCL总结
- WRF后处理
- 数据信息查看
- 诊断变量的获取
- 插值
- 参考
NCL概述
NCAR Command Language(NCL) 是由美国大气研究中心(NCAR)推出的一款用于科学数据计算和可视化的免费软件。
它有着非常强大的文件输入和输出功能,可读写netCDF-3、netCDF-4 classic、HDF4、binary、ASCII数据,支持对HDF-EOS2、HDF-EOS5、GRIB1、GRIB2和OGR数据(Shapefile, MapInfo, GMT, TIGER)的读入操作,基本实现了无缝对接各类气象数据和模式数据。
服务器上安装NCL的详细过程参见另一博客-【WRF工具】服务器上使用conda安装NCL。
wrf-python和NCL总结
wrf-python和NCL都有对应的wrf变量提取、插值、诊断量计算的函数,其中常用函数总结如下表:
NCL | WRF-python | Value |
---|---|---|
wrf_user_get_var | wrf.getvar | Extract and computes varaiables |
wrf_user_interp_level | wrf.interplevel | Interpolate a 3D field at the given vertical level(s) |
wrf_user_vert_cross | wrf.vertcross | Interpolates a 3D field through a user-specified horizontal line |
wrf_user_interp_line | wrf.interpline | Interpolates a 2D field to a user-specified line |
wrf_user_ll_to_xy | wrf.ll_to_xy | Lat/Lon <-> XY Routines |
WRF后处理
数据信息查看
基于NCL语言,查看数据信息。
1、编写 NCL 脚本
将以下 NCL 代码片段保存到一个 .ncl 文件中,例如 view_wrf_output.ncl:
a=addfile("wrfout_d01_2020-07-06_00:00:00","r")
print(a)
printVarSummary(a)
2、运行 NCL 脚本
打开终端,进入保存 NCL 脚本的目录,然后运行以下命令来执行脚本:
#激活环境
source activate ncl_stable
ncl view_wrf_output.ncl
conda deactivate
显示以下结果:
Number of Attributes:129TITLE : OUTPUT FROM WRF V4.1.3 MODELSTART_DATE : 2020-07-06_00:00:00SIMULATION_START_DATE : 2020-07-06_00:00:00
...
诊断变量的获取
NCL代码如下:
DATADir ="/home/XXX/Build_WRF/WRF-4.3/run/out/"
FILES = systemfunc (" ls -1 " + DATADir + "wrfout* ")
numFILES = dimsizes(FILES)
print("numFILES = " + numFILES)
print(FILES)a = addfiles(FILES+".nc","r")
slp = wrf_user_getvar(a,"slp",-1)
插值
1、水平面插值
将有的3D数据,插值至对应气压面上,如根据3D的位势高度变量,插值到500hPa等压面。
NCL代码如下:
ht = wrf_user_getvar(a, "z",time) ; height
p = wrf_user_getvar(a, "pressure",time) ; pressure
ht_500 = wrf_user_interp_level(ht,p,500,False)
2、垂直剖面插值
主要是将等eta层的数据插到对应位势高度上,此时得到3D数据对应Z轴为位势高度。
主要用于绘制垂直剖面图使用。
z = wrf_user_getvar(a, "z",time) ; grid point height
qv = wrf_user_getvar(a, "QVAPOR",time) ;
latlon = (/-118,38,-115,40/)
opt = True
opt@latlon = True
opt@linecoords = True ; returns lat/lon coordinates on line as attributes "lats","lons"
opt@file_handle = a
qv_latlon = wrf_user_vert_cross(qv,z,latlon,opt)
参考
1、CSDN博客-WRF后处理总结:wrf-python与NCL在WRF后处理中的基本应用——变量提取、计算与可视化
2、CSDN博客-WRF后处理:使用ncl脚本批量提取wrfout变量并输出/Shell 入门:Shell进入不同文件夹执行脚本