Issue setting text of cnInfoLabelString

From: Reames, Larissa J. <lreames_at_nyahnyahspammersnyahnyah>
Date: Thu Jan 16 2014 - 10:03:34 MST

I’m attempting to change the text of my cnInfoLabelString to reflect my, at times, unequally spaced contours in my third panel plot made using WRF output. I can successfully move the location and justification of the Info Label with @cnInfoLabelSide and @cnInfoLabelJust, but NCL seems to be ignoring my attempts to set @cnInfoLabelString, with no indications in the output file that it’s encountering any errors. I’ve copied my code here, and the plot res in question is “optstd” to be used in creating “contourtd”, then plotted in plot(2).

load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/wrf/WRFUserARW.ncl"
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"

begin
;
; The WRF ARW input file.
; This needs to have a ".nc" appended, so just do it.
  a = addfile("/work/lreames/MAY10_CTRL/OUT/out.2010-05-10_19:00:00.d02.nc","r")
  b = addfile("/work/lreames/MAY10_OKCM/OUT/out.2010-05-10_19:00:00.d02.nc","r")
  
  urbf = b->FRC_URB2D
  contourst = (/270.,310.,2./)
  contoursq = (/4.,16., 2./)
  it = ispan(0,11,1)
  times = wrf_user_getvar(a,"times",-1)

; Import variables and calculate time averages
  lata = a->XLAT
  lat = lata(0,:,:)
  lona = a->XLONG
  lon = lona(0,:,:)
  ter = b->HGT
  urbf = b->FRC_URB2D

  tc = a->T
  tc = tc+300
  tcavg = dim_avg_n_Wrap(tc,0)
  tcavg@description = "AVG POTENTIAL TEMPERATURE"
  tcavg@Units = "K"
  tm = b->T
  tm = tm+300
  tmavg= dim_avg_n_Wrap(tm,0)
  tmavg@description = "AVG POTENTIAL TEMPERATURE"
  tmavg@Units = "K"

  tdiff = tmavg-tcavg
  tdiff@description = "AVG POTENTIAL TEMPERATURE DIFF"
  tdiff@Units = "K"

  qc = a->QVAPOR
  qc = qc*1000
  qcavg = dim_avg_n_Wrap(qc,0)
  qcavg@description = "AVG MIXING RATIO"
  qcavg@units = "g kg~S~-1~N~"
  qm = b->QVAPOR
  qm = qm*1000
  qmavg = dim_avg_n_Wrap(qm,0)
  qmavg@units = "g kg~S~-1~N~"
  qmavg@description = "AVG MIXING RATIO"
  
  qdiff = qmavg-qcavg
  qdiff@units = "g kg~S~-1~N~"
  qdiff@description = "AVG MIXING RATIO DIFF"

  uac = a->U
  uc = wrf_user_unstagger(uac,uac@stagger)
  ucavg = dim_avg_n_Wrap(uc,0)
  ucavg = 1.94384449*ucavg
  ucavg@description = "AVG WIND BARBS"
  ucavg@units = "kts"
  
  vac = a->W
  vc = wrf_user_unstagger(vac,vac@stagger)
  vcavg = dim_avg_n_Wrap(vc,0)
  vcavg = vcavg * 1.94384449

  uam = b->U
  um = wrf_user_unstagger(uam,uam@stagger)
  umavg = dim_avg_n_Wrap(um,0)
  umavg = 1.94384449*umavg
  umavg@description = "AVG WIND BARBS "
  umavg@units = "kts"
  vam = b->W
  vm = wrf_user_unstagger(vam,vam@stagger)
  vmavg = dim_avg_n_Wrap(vm,0)
  vmavg = 1.94384449 * vmavg

  udiff = umavg-ucavg
  udiff@description = "AVG WIND BARBS DIFF"
  udiff@units = "kts"
  vdiff = vmavg-vcavg

  zamsl = wrf_user_getvar(a, "z",0)
  
  zn = conform_dims((/71,400,400/),ter(0,:,:),(/1,2/))
  z = zamsl-zn

; Determine angle for cross-section
 angle = 90.
 opts = False
 plane = (/225,275/)
 X_plane = wrf_user_intrp2d(lon,plane,angle,opts)
 X_desc = "longitude"

;Define level of 2.0km height
  zmin = 0.
  zmax = 1.5
  nz = 4
  zz = wrf_user_intrp3d(z,z,"v",plane,angle,opts)
  c = ind(zz(:,0) .gt. zmax*1000. )
  zmax_pos = c(0) - 1
  if ( abs(zz(zmax_pos,0)-zmax*1000.) .lt. abs(zz(zmax_pos+1,0)-zmax*1000.) ) then
      zspan = c(0) - 1
  else
      zspan = c(0)
  end if
 delete(zz)
 delete(c)
 print(zspan)
 
 ; X-axis lables
   dimsX = dimsizes(X_plane)
   xmin = X_plane(0)
   xmax = X_plane(dimsX(0)-1)
   xspan = dimsX(0)-1
   nx = 10

; Create cross-section variables
 q_planec = wrf_user_intrp3d(qcavg,z,"v",plane,angle,opts)
 t_planec = wrf_user_intrp3d(tcavg,z,"v",plane,angle,opts)
 u_planec = wrf_user_intrp3d(ucavg,z,"v",plane,angle,opts)
 v_planec = wrf_user_intrp3d(vcavg,z,"v",plane,angle,opts)

 q_planem = wrf_user_intrp3d(qmavg,z,"v",plane,angle,opts)
 t_planem = wrf_user_intrp3d(tmavg,z,"v",plane,angle,opts)
 u_planem = wrf_user_intrp3d(umavg,z,"v",plane,angle,opts)
 v_planem = wrf_user_intrp3d(vmavg,z,"v",plane,angle,opts)

 q_planed = wrf_user_intrp3d(qdiff,z,"v",plane,angle,opts)
 t_planed = wrf_user_intrp3d(tdiff,z,"v",plane,angle,opts)
 u_planed = wrf_user_intrp3d(udiff,z,"v",plane,angle,opts)
 v_planed = wrf_user_intrp3d(vdiff,z,"v",plane,angle,opts)
 
 dim = dimsizes(q_planec)

; We generate plots, but what kind do we prefer?
  type = "pdf"
  wks = gsn_open_wks(type,"plt_cross")
  plot = new(3,graphic)

; Set some basic resources
  res = True
  res@tiMainOn = False
  ;res@MainTitle = "REAL-TIME WRF"
  res@gsnDraw = False ; don't draw
  res@gsnFrame = False ; don't advance frame
 res@lbLabelBarOn = True ; Turn off invortidual labelbars so we can
                               ; turn on panel labelbar.
  res@NoTitles = True
  res@CommonTitle = True
  res@NoHeaderFooter = True
  res@gsnSpreadColors = True
  pltres = True
  res@lbTitleOn = True
; Set resources specific to each plot type

  ; Options for all plots
     opts_xy = res
     opts_xy@tiXAxisString = X_desc
     opts_xy@tiYAxisString = "Height AGL (km)"
     opts_xy@cnMissingValPerimOn = True
     opts_xy@cnMissingValFillColor = 0
     opts_xy@cnMissingValFillPattern = 11
     opts_xy@tmXTOn = False
     opts_xy@tmYROn = False
     opts_xy@tmXBMode = "Explicit"
     opts_xy@tmXBValues = fspan(0,xspan,nx) ; Create tick marks
     opts_xy@tmXBLabels = sprintf("%.1f",fspan(xmin,xmax,nx)) ; Create labels
     opts_xy@tmXBLabelFontHeightF = 0.015
     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@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 = t_planec@Orientation

  ; Temp contour resources
     optst = opts_xy
     optst@cnFillOn = False
     optst@ContourParameters = contourst
     optst@cnLineColor = "red"
     
   ; Q resources
     optsq = opts_xy
     optsq@cnFillOn = True
     optsq@ContourParameters = contoursq
  
  ; Wind arrows resources
     optsw = opts_xy
     optsw@vcRefMagnitudeF = 20
     optsw@vcGlyphStyle = "CurlyVector"
     optsw@vcMonoLineArrowColor = True
     optsw@vcLineArrowColor = "grey38"
  ; Added text resources
    optstx = res
    optstx@txFontHeightF = 0.01

  ; T diff resources
    optstd = opts_xy
    optstd@cnFillOn = False
    optstd@cnLevelSelectionMode = "ExplicitLevels"
    optstd@cnLevels = (/-1.,-0.8,-0.6,-0.4,-0.2,0.2,0.4,0.6,0.8,1.0/)
    ;optstd@cnInfoLabelOn =
    optstd@cnInfoLabelOrthogonalPosF = -0.11
    optstd@cnInfoLabelString = "CONTOURS FROM $CMN$ to %CMX$ BY 0.2"
    ;optstd@cnInfoLabelSide = "Top"
    ;optstd@cnInfoLabelJust = "CenterCenter"
 
 ; Q diff resources
    optsqd= opts_xy
    optsqd@gsnSpreadColors = True
    optsqd@gsnSpreadColorStart = 2
    optsqd@gsnSpreadColorEnd = 128
    optsqd@cnFillOn = True
    optsqd@ContourParameters = (/-1.,1.,0.1/)
  
  ; Wind diff resources
     optswd = opts_xy
     optswd@vcRefMagnitudeF = 2
     optswd@vcGlyphStyle = "CurlyVector"
     optswd@vcMonoLineArrowColor = True
    

    gsn_merge_colormaps(wks,"MPL_BrBG","MPL_Summer")
   ; gsn_draw_colormap(wks)

; Create contour, vector plots but don't plot yet
   contourtc = wrf_contour(a,wks,t_planec(0:zmax_pos,:),optst)
   contourtm = wrf_contour(b,wks,t_planem(0:zmax_pos,:),optst)
   contourtd = wrf_contour(b,wks,t_planed(0:zmax_pos,:),optstd)
   contourqc = wrf_contour(a,wks,q_planec(0:zmax_pos,:),optsq)
   contourqm = wrf_contour(b,wks,q_planem(0:zmax_pos,:),optsq)
   contourqd = wrf_contour(b,wks,q_planed(0:zmax_pos,:),optsqd)
   vectorc = wrf_vector(a,wks,u_planec(0:zmax_pos,:),v_planec(0:zmax_pos,:),optsw)
   vectorm = wrf_vector(b,wks,u_planem(0:zmax_pos,:),v_planem(0:zmax_pos,:),optsw)
   vectord = wrf_vector(b,wks,u_planed(0:zmax_pos,:),v_planed(0:zmax_pos,:),optswd)

   pltres = True
   pltres@PanelPlot = True
  pltres@gsnSpreadColorStart = 129
  pltres@gsnSpreadColorEnd = 256
  pltres@lbLabelBarOn = False
  plot(0) = wrf_overlays(a,wks,(/contourtc,contourqc,vectorc/),pltres)
  plot(1) = wrf_overlays(b,wks,(/contourtm,contourqm,vectorm/),pltres)
  pltres@gsnSpreadColorStart = 2
  pltres@gsnSpreadColorEnd = 128
  plot(2) = wrf_overlays(b,wks,(/contourtd,contourqd,vectord/),pltres)

;************************************************
; create panel
;************************************************
  resP = True ; modify the panel plot
  resP@gsnPanelLabelBar = False ; add common colorbar
  ;resP@TimeLabel = times(i)
  resP@txString = "BL East-West Cross Section 19-20Z"
  resP@NoTitles = True
    resP@lbLabelAutoStride = True ; Spacing of lbar labels.
    resP@lbBoxMinorExtentF = 0.13
  resP@gsnMaximize = True
  resP@gsnPaperOrientation = "auto"
  resP@gsnPaperMargin = 0.05
  label1 = "CTRL"
  label2 = "OKCM"
  gsn_panel(wks,plot,(/1,3/),resP) ; now draw as one plot

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end

Thank you,

Larissa
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Thu Jan 16 10:03:48 2014

This archive was generated by hypermail 2.1.8 : Sun Jan 19 2014 - 21:56:35 MST