- 积分
- 55
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2017-11-25
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2019-6-16 22:03:58
|
显示全部楼层
; Example script to produce plots for a WRF real-data run,
; with the ARW coordinate dynamics option.
; Plot data on a cross section
; This script will plot data from point A to point B
; Add some label info to the Y-axis
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
begin
;
; The WRF ARW input file.
; This needs to have a ".nc" appended, so just do it.
a = addfile("../wrfout_d02_2016-04-02_00:00:00(feedback)","r")
; We generate plots, but what kind do we prefer?
type = "png"
; type = "pdf"
; type = "ps"
; type = "ncgm"
wks = gsn_open_wks(type,"plt_test_8")
; Set some basic resources
res = True
res@MainTitle = "REAL-TIME WRF"
res@Footer = False
pltres = True
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
times = wrf_user_getvar(a,"times",-1) ; get times in the file
ntimes = dimsizes(times) ; number of times in the file
FirstTime = True
mdims = getfilevardimsizes(a,"P") ; get some dimension sizes for the file
nd = dimsizes(mdims)
;---------------------------------------------------------------
do it = 0,ntimes-1,2 ; TIME LOOP
;do it = 0,2
print("Working on time: " + times(it) )
res@TimeLabel = times(it) ; Set Valid time to use on plots
tc = wrf_user_getvar(a,"tc",it) ; T in C
rh = wrf_user_getvar(a,"rh",it) ; relative humidity
z = wrf_user_getvar(a, "z",it) ; grid point height
if ( FirstTime ) then ; get height info for labels
zmin = 0.
zmax = max(z)/1000.
zmid = max(z)/1000
nz = floattoint(zmax + 1) ;;;;;;;;;;nz=10
FirstTime = False
end if
;---------------------------------------------------------------
; Plot a cross session that run from point A to point B
plane = new(4,float)
plane = (/ 33,37, 33, 0 /) ; start x;y & end x;y point
opts = True ; start and end points specified
rh_plane = wrf_user_intrp3d(rh,z,"v",plane,0.,opts)
tc_plane = wrf_user_intrp3d(tc,z,"v",plane,0.,opts)
dim = dimsizes(rh_plane) ; Find the data span - for use in labels
zspan = dim(0) ;;;;;;;;;;;;;垂直层数 100
; Options for XY Plots
opts_xy = res
opts_xy@tiYAxisString = "Height (km)"
opts_xy@cnMissingValPerimOn = True
opts_xy@cnMissingValFillColor = 0
opts_xy@cnMissingValFillPattern = 11
opts_xy@tmYLMode = "Explicit"
opts_xy@tmYLValues = fspan(0,zspan,nz) ; Create tick marks
opts_xy@tmYLLabels = sprintf("%.1f",fspan(zmin,zmax,nz)) ; Create labels
opts_xy@trYMaxF = 10 ; axis max
opts_xy@trYMinF = 0.
opts_xy@tiXAxisFontHeightF = 0.020
opts_xy@tiYAxisFontHeightF = 0.020
opts_xy@tmXBMajorLengthF = 0.02
opts_xy@tmYLMajorLengthF = 0.02
opts_xy@tmYLLabelFontHeightF = 0.015
opts_xy@PlotOrientation = tc_plane@Orientation
; Plotting options for RH
opts_rh = opts_xy
opts_rh@ContourParameters = (/ 5., 95., 5. /)
opts_rh@pmLabelBarOrthogonalPosF = -0.07
opts_rh@cnFillOn = True
opts_rh@cnFillPalette = "CBR_wet"
;opts_rh@cnFillColors = (/"White","White","White", \
; "White","Chartreuse","Green", \
; "Green3","Green4", \
; "ForestGreen","PaleGreen4"/)
; Plotting options for Temperature
opts_tc = opts_xy
opts_tc@cnInfoLabelOrthogonalPosF = 0.00
opts_tc@ContourParameters = (/ 0.5 /)
; Get the contour info for the rh and temp
contour_tc = wrf_contour(a,wks,tc_plane,opts_tc)
contour_rh = wrf_contour(a,wks,rh_plane,opts_rh)
; MAKE PLOTS
plot = wrf_overlays(a,wks,(/contour_rh,contour_tc/),pltres)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end do ; END OF TIME LOOP
end
这是我的ncl 画图代码 |
|