工程招标建设部指定网站,wordpress在线更新要多久,天津做网站公司,wordpress图床插件目录背景思路NCL提取wrfout特定变量Shell批量执行背景
在之前的博客WRF后处理总结我提到过将NCL与python结合进行后处理的问题#xff0c;即#xff0c;使用NCL进行wrfout变量的提取、计算、输出#xff0c;再用已有python脚本绘图#xff0c;这样可以极大节省时间。 对于…
目录背景思路NCL提取wrfout特定变量Shell批量执行背景
在之前的博客WRF后处理总结我提到过将NCL与python结合进行后处理的问题即使用NCL进行wrfout变量的提取、计算、输出再用已有python脚本绘图这样可以极大节省时间。 对于run模式的而言连续提交好几个作业任务进行敏感性试验是家常便饭那么能不能用NCL脚本加上shell同时对几个敏感性试验的结果进行提取并输出呢这就是我打算实现的事。
思路
思路其实也很简单敏感性实验的目的无非是比较几个特定变量的差异我们只需将存于不同文件夹的wrfout所需提取出来输出再由python绘图即可。 当然如果服务器上已经装有python可以无需输出只需直接调用py脚本但由于服务器自身原因加之Windows下的可视化绘图更加精致直观这里我还是选择输出再绘图的模式。
NCL提取wrfout特定变量
load $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl
load $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl
load $NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl
load $NCARG_ROOT/lib/ncarg/nclscripts/esmf/ESMF_regridding.ncl
;get varaiables from wrfout
begin
;DIR1 getenv(path1)
DIR1 /public/home/zhangzilu/Build_WRF/PWRF-4.3/run/out_amsr/
FILES1 systemfunc ( ls -1 DIR1 wrfout* )
print(FILES1)
a1 addfiles(FILES1,r)
vlist(/p,slp,z,tk,T2,QVAPOR,rh,U10,V10,ua,va,wa,GLW,LWUPB,SWDOWN,SWUPB,HFX,LH,PBLH/)
ntoint(dimsizes(vlist))
time wrf_user_getvar(a1,times,-1) ;
print(time)
print(n)
setfileoption(nc, Format, NetCDF4Classic)
out1addfile(wrf_var.nc, c)
;p wrf_user_getvar(a1,p,-1)
;out1-p p
;out1-times time
;out2addfile(wrf_avevar.nc, c)
mn-1
do i0,m
data1wrf_user_getvar(a1,vlist(i),-1)
printVarSummary(data1)
;data2dim_avg_n(data1, 0)
out1-$vlist(i)$ data1
;out2-vlist(i) data2
delete(data1)
end do
end写一个循环遍历需要的文件和变量名称提取即可。
Shell批量执行
由于我们的敏感性试验往往放在不同的文件夹中我们可以写一个bash脚本一口气将所有的试验变量提取出来。 思路相同只要链接进入不同的文件夹内执行就好
#!/bin/bashWRFpath/public/home/zhangzilu/Build_WRF/PWRF-4.3/run/
expname(noseaice/ nosnow/ out_amsr/)
for file in ${expname[*]}
doecho $filepath[${#path[*]}]${WRFpath}${file}echo $pathsnameget_varwrf.nclln -sf /public/home/zhangzilu/Build_WRF/PWRF-4.3/run/get_varwrf.ncl ${path}${sname}cd $pathncl get_varwrf.nclpath()
done这里唯一值得一提的是shell中列表和数组的索引与构建问题在shell中字符串变量只能作为列表存放不能与数组弄混。 以上。