[ncl-talk] Overlay plot of vertical cross section of WRF derived U and precipitation using NCL

Prasad Kunjeer pskunjeer at gmail.com
Sun Feb 28 11:46:19 MST 2021


I am writing a script to overlay U wind and precipitation from the wrf run.
My script is as below.

;----------------------------------------------------------------------
; wrf_interp_3.ncl
;----------------------------------------------------------------------
; Concepts illustrated:
;   - Interpolating a vertical cross-section from a 3D WRF-ARW field.
;----------------------------------------------------------------------
; wrf_user_vert_cross and wrf_user_interp_level replace the
; deprecated wrf_user_intrp3d function.
;
; NCL V6.6.0 or higher is required to run this example.
;----------------------------------------------------------------------

begin
  dir = "/media/prasad/C_Drive/2016/res/regrid_exp/"
  a   = addfile(dir+"wrfout_d03_2016-06-30_17_00_00.nc","r")

  z    = wrf_user_getvar(a, "z",0)          ; grid point height
  qv   = wrf_user_getvar(a, "QVAPOR",0)     ; cloud field
  lats = wrf_user_getvar(a, "lat",0)
  lons = wrf_user_getvar(a, "lon",0)
  pr   = wrf_user_getvar(a, "pressure",0)
  ua   = wrf_user_getvar(a, "ua",0)
  va   = wrf_user_getvar(a, "va",0)
  wa   = wrf_user_getvar(a, "wa",0)

  rain_exp = wrf_user_getvar(a,"RAINNC",0) / 25.4
  rain_con = wrf_user_getvar(a,"RAINC", 0) / 25.4
  rain_tot = (rain_exp + rain_con)
  copy_VarMeta(rain_exp,rain_tot)

  printVarSummary(rain_tot)
  printVarSummary(rain_exp)
  printMinMax(rain_tot,0)

  xlon = wrf_user_getvar(a, "XLONG",0)

  start_lat       = 29.75
  end_lat         = 29.75
  start_lon       = 77
  end_lon         = 83
  opt             = True
  opt at latlon      = True
  opt at linecoords  = True
  opt at file_handle = a
  qv_latlon       =
wrf_user_vert_cross(ua,pr,(/start_lon,start_lat,end_lon,end_lat/),opt)

  printVarSummary(ua)          ; [bottom_top | 31] x [south_north | 546] x
[west_east | 480]
  printVarSummary(qv_latlon)   ; [vertical | 100] x [cross_line_idx | 171]
  printMinMax(ua,0)          ; [bottom_top | 31] x [south_north | 546] x
[west_east | 480]
  printMinMax(qv_latlon,0)   ; [vertical | 100] x [cross_line_idx | 171]


;---Interpolate the 2D Rain field to the lat/lon line
  t2_line  =
wrf_user_interp_line(rain_tot,(/start_lon,start_lat,end_lon,end_lat/),opt)
  printVarSummary(t2_line)
  long_line  =
wrf_user_interp_line(xlon,(/start_lon,start_lat,end_lon,end_lat/),opt)

  printMinMax(qv_latlon,0)
  printMinMax(t2_line,0)
  printMinMax(long_line,0)

  wks = gsn_open_wks("png","wrf_interp_u_wind")

  res                      = True
  res at gsnMaximize          = True     ; maximize plot in frame
  res at cnFillOn             = True     ; turn on contour fill
  res at cnFillOpacityF       = 0.4
  res at cnLinesOn            = False   ; turn off contour lines
  res at cnLineLabelsOn       = False    ; turn off line labels
  res at lbOrientation        = "Vertical"
  res at lbLabelFontHeightF   = 0.01
  res at tiMainString         = "Cross section from
("+start_lat+","+start_lon+ \
                                           ") to ("+end_lat +
","+end_lon+")"
  res at gsnStringFontHeightF = 0.015
  res at tmXBLabelFontHeightF = 0.01
  res at tmXBLabelAngleF      = 45.
  res at trYReverse = True
  ;res at gsnDraw              = False             ; do not draw the plot
  ;res at gsnFrame             = False             ; do not advance the frame

;--Explicitly set lat/lon labels for X axis
  xvalues = ispan(0,dimsizes(qv_latlon(0,:))-1,1)
  ll_step = 15                                       ; step interval for
tickmarks
  res at tmXBMode          = "Explicit"
  res at tmXBValues        = xvalues(::ll_step)
  res at tmXBLabels        = sprintf("%6.2f",qv_latlon at lats(::ll_step)) +
"~S~o~N~N~C~" + \
                          sprintf("%6.2f",qv_latlon at lons(::ll_step)) +
"~S~o~N~E"

  plot = gsn_csm_contour(wks,qv_latlon,res)

  res_z                      = res
  res_z at cnFillOn             = False    ; turn on contour fill
  res_z at cnLinesOn            = True   ; turn off contour lines
  res_z at cnLineLabelsOn       = False    ; turn off line labels
  res_z at trYReverse           = False
  ;res_z at xyLineColors         = "blue"
  res_z at xyLineThicknesses   = (/3.0/)              ; make line thicker
  res_z at xyLineColors        = (/"green"/)          ; change line color

;--Explicitly set lat/lon labels for X axis
  xvalues = ispan(0,dimsizes(long_line(:))-1,1)
  ll_step = 15                                       ; step interval for
tickmarks
  res_z at tmXBMode          = "Explicit"
  res_z at tmXBValues        = xvalues(::ll_step)
  res_z at tmXBLabels        = sprintf("%6.2f",qv_latlon at lats(::ll_step)) +
"~S~o~N~N~C~" + \
                          sprintf("%6.2f",qv_latlon at lons(::ll_step)) +
"~S~o~N~E"

  plot_ov = gsn_csm_xy(wks,long_line,t2_line,res_z)


  overlay(plot,plot_ov)                       ; overlay the U-wind plot on
the temperature plot
  draw(plot)                                  ; draw the temperature plot
(with the rh plot overlaid)
  frame(wks)                                  ; advance the frame

end


I am getting both precipitation and U wind plot but both on separate pages.
I want to overlay them. The help is really appreciated


Regards
प्रसाद कुंजीर / Prasad Kunjeer
वैज्ञानिक - सी / Scientist - C
केन्द्रीय जल और विद्युत अनुसंधान शाला / Central Water and Power Research
Station
पुणे 411 024/ Pune 411 024
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210301/2caa305a/attachment.html>


More information about the ncl-talk mailing list