从WRF输出到精美图表:手把手教你用NCL绘制气温、降水和风场空间分布图 WRF数据可视化实战用NCL打造科研级气象图表气象模拟数据的可视化是科研成果展示的关键环节。当WRF模式运行结束后面对海量的wrfout文件如何将原始数据转化为直观、专业的图表成为许多研究者面临的挑战。本文将聚焦地表温度、2米气温、累计降水和10米风场等核心变量通过NCL脚本实现从数据提取到出版级图表的全流程操作。1. 环境准备与数据预处理在开始绘图前需要确保NCL环境配置正确。推荐使用conda安装最新版NCLconda create -n ncl_env -c conda-forge ncl conda activate ncl_envWRF输出数据通常采用NetCDF格式存储首先需要检查数据完整性。使用ncl_filedump命令快速查看文件结构ncl_filedump wrfout_d01_2020-01-01_00:00:00 | less典型WRF输出包含三维变量如温度场和二维变量如地表温度。以2米温度(T2)为例其维度为(Time, south_north, west_east)单位是开尔文(K)。在绘图前常需要进行单位转换t2_c t2_k - 273.15 ; 转换为摄氏度对于区域选择可使用wrf_user_getvar函数提取子区域lat wrf_user_getvar(a, XLAT, 0) lon wrf_user_getvar(a, XLONG, 0)2. 温度场可视化技巧温度场是气象分析的基础要素。WRF提供了多层次的温度数据包括地表温度(TSK)和2米温度(T2)。绘制温度分布图时色标选择直接影响图表效果。推荐配色方案温差分析使用BlueRed或ViBlGrWhYeOrRe渐变色绝对温度rainbow或MPL_viridisres True rescnFillOn True rescnFillPalette ViBlGrWhYeOrRe rescnLevelSelectionMode ManualLevels rescnMinLevelValF -10 rescnMaxLevelValF 40 rescnLevelSpacingF 2处理地形影响时可叠加等高线增强表现力ter wrf_user_getvar(a, HGT, 0) res_ter True res_tercnFillOn False res_tercnLinesOn True plot gsn_csm_contour_map(wks, t2_c, res) plot_ter gsn_csm_contour(wks, ter, res_ter) overlay(plot, plot_ter)3. 降水数据可视化方法WRF提供多种降水变量最常用的是累积格点降水(RAINNC)。处理降水数据时需注意时间积分瞬时降水需转换为累积量单位统一确保使用mm或inch等标准单位零值处理设置合适的显示阈值rain wrf_user_getvar(a, RAINNC, -1) ; 获取所有时次 rain_total dim_sum_n_Wrap(rain, 0) ; 时间维度求和 res_rain True res_raincnFillPalette WhiteBlueGreenYellowRed res_rainlbTitleString Accumulated Precipitation (mm)对于强降水过程可采用对数间隔色标res_raincnLevelSelectionMode ExplicitLevels res_raincnLevels (/0.1,1,5,10,20,50,100/) res_raincnFillColors (/0,10,20,30,40,50,60,70/)4. 风场与复合图表绘制10米风场(U10/V10)可视化需要处理矢量箭头密度和大小。关键参数包括参数说明推荐值vcMinDistanceF箭头最小间距0.015vcRefLengthF参考箭头长度0.02vcRefMagnitudeF参考风速大小10 m/swind_res True wind_resvcMinDistanceF 0.015 wind_resvcRefLengthF 0.02 wind_resvcRefMagnitudeF 10.0 wind_resvcGlyphStyle CurlyVector创建复合图表时使用gsn_panel合并多个子图plots new(2, graphic) plots(0) gsn_csm_contour_map(wks, t2_c, res) plots(1) gsn_csm_vector_scalar_map(wks, u10, v10, rain_total, wind_res) pnl_res True pnl_restxString Surface Analysis gsn_panel(wks, plots, (/2,1/), pnl_res)5. 高级定制与输出优化出版级图表需要精细调整各类元素地图底图控制mp_res True mp_resmpDataBaseVersion HighRes mp_resmpOutlineBoundarySets AllBoundaries mp_resmpGeophysicalLineColor black色标与图例优化reslbOrientation Vertical reslbTitlePosition Right reslbTitleFontHeightF 0.015 respmLabelBarHeightF 0.6输出格式选择PNG适合快速查看和网页展示PDF/PS适合印刷出版X11交互式预览wks_type png wks_typewkWidth 1600 wks_typewkHeight 1200 wks gsn_open_wks(wks_type, wrf_plot)实际项目中我经常遇到色标与数据范围不匹配的问题。通过添加自动缩放功能可以显著提高效率function auto_levels(data, nlev) local minv, maxv, range begin minv min(data) maxv max(data) range maxv - minv return fspan(minv, maxv, nlev) end处理WRF-Chem等特殊输出时需要注意额外变量的单位转换和特殊配色方案。例如PM2.5浓度可视化res_pm25 True res_pm25cnFillPalette WhiteYellowOrangeRed res_pm25lbTitleString PM~B~2.5~N~ (~F33~m~F~g/m~S~3~N~)