[ncl-talk] fatal:Or: operation not supported on type (string) / Plotting WRF output
Mary Haley
haley at ucar.edu
Thu Jul 5 09:23:37 MDT 2018
Hi Stephen,
My apologies, we updated some of our NCL scripts to use newer methods, and
this particular script was inadvertently modified before the new release of
NCL was out.
Simply comment this line:
res at tfDoNDCOverlay = "NDCViewport"
and uncomment this line:
; res at tfDoNDCOverlay = True ; old method
--Mary
On Tue, Jul 3, 2018 at 11:12 AM, Stephen Kirby <thinjogger at gmail.com> wrote:
> Hi,
>
> I am getting the error seen on the subject line as I try to plot WRF
> data. I am using wrf_gsn_5.ncl straight out of the box from the NCL site
> page supporting plotting WRF output. I only changed the WRF output file to
> one I generated. I'm running NCL version 6.4.0.
>
> I'm pasting the code below for reference and please note the error comes
> from this line of code:
>
> *contour_tf = gsn_csm_contour(wks,tf2,tf_res)*
>
> and the other errors listed are:
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 3642 in
> file $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl
> which are these lines of code:
> if(get_res_value_keep(res,"tfDoNDCOverlay",False).or.ftype.ne."map") then
> return(False)
> end if
>
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 13313 in
> file $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl
> which are these lines of code:
> if(get_lon_cyclic_point_default(data,res2,"",False)) then
> datanew = gsn_add_cyclic_point(data)
> else
> datanew = data
> end if
>
> Thanks for any tips you can provide.
>
> --Steve
>
> ;----------------------------------------------------------------------
> ; wrf_gsn_5.ncl
> ;----------------------------------------------------------------------
> ; Concepts illustrated:
> ; - Using gsn_csm scripts to plot WRF-ARW data
> ; - Overlaying line contours, filled contours, and vectors on a map
> ; - Setting the correct WRF map projection using wrf_map_resources
> ; - Setting lots of resources to customize a WRF plot
> ;----------------------------------------------------------------------
> ; This script is meant to show the difference between plotting WRF
> ; data using wrf_xxx scripts, and using gsn_csm_xxx scripts.
> ;
> ; See wrf_nogsn_5.ncl for an example of using wrf_xxxx scripts to
> ; plot WRF data.
> ;----------------------------------------------------------------------
> ; In NCL Versions 6.3.1 and earlier, you will get these warnings which
> ; you can safely ignore:
> ;
> ; warning:start_lat is not a valid resource in wrf_gsn_contour at this time
> ; warning:start_lon is not a valid resource in wrf_gsn_contour at this time
> ; warning:end_lat is not a valid resource in wrf_gsn_contour at this time
> ; warning:end_lon is not a valid resource in wrf_gsn_contour at this time
> ; warning:mpNestTime is not a valid resource in map at this time
> ;----------------------------------------------------------------------
> ; These files are loaded by default in NCL V6.2.0 and newer
> ; 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"
>
> begin
> ;---Open WRF output file
> filename = "wrfout_d01_2005-12-14_13:00:00"
> a = addfile(filename,"r")
>
> ;---Read several WRF variables at first time step
> it = 0
> slp = wrf_user_getvar(a,"slp",it) ; sea level pressure
> wrf_smooth_2d( slp, 3 ) ; smooth slp
> tc = wrf_user_getvar(a,"tc",it) ; 3D temperature
> u = wrf_user_getvar(a,"ua",it) ; 3D U at mass points
> v = wrf_user_getvar(a,"va",it) ; 3D V at mass points
>
> ;---Now get the lowest (bottommost) level
> nl = 0
> tc2 = tc(nl,:,:)
> u10 = u(nl,:,:)
> v10 = v(nl,:,:)
> tf2 = 1.8*tc2+32. ; Convert temperature to Fahrenheit
> u10 = u10*1.94386 ; Convert wind into knots
> v10 = v10*1.94386
>
> ;---Change the metadata
> tf2 at description = "Surface Temperature"
> tf2 at units = "degF"
> u10 at units = "kts"
> v10 at units = "kts"
>
> wks = gsn_open_wks("png","wrf_gsn")
>
> ;---Set common resources for all plots
> res = True
> res at gsnFrame = False
> res at gsnDraw = False
> res at gsnLeftString = ""
> res at gsnRightString = ""
>
> ;---Necessary for contours to be overlaid correctly on WRF projection
> res at tfDoNDCOverlay = "NDCViewport"
> ; res at tfDoNDCOverlay = True ; old method
>
> ;---Temperature filled contour plot
> tf_res = res
> tf_res at cnFillOn = True
> tf_res at cnLevelSelectionMode = "ExplicitLevels"
> tf_res at cnLevels = ispan(-20,90,5)
> tf_res at lbLabelFontHeightF = 0.015
> tf_res at lbOrientation = "Vertical"
> tf_res at pmLabelBarOrthogonalPosF = -0.005
>
> contour_tf = gsn_csm_contour(wks,tf2,tf_res)
>
> ;---SLP line contour plot
> levels = ispan(900,1100,4)
> info_string = "Sea level pressure contours from 900 to 1100 by 4"
>
> slp_res = res
> slp_res at cnLineColor = "NavyBlue"
> slp_res at cnLevelSelectionMode = "ExplicitLevels"
> slp_res at cnLevels = levels
> slp_res at cnLineLabelBackgroundColor = -1 ; transparent
> slp_res at cnLineThicknessF = 2.5
> slp_res at cnHighLabelsOn = True
> slp_res at cnLowLabelsOn = True
> slp_res at cnHighLabelBackgroundColor = -1
> slp_res at cnLowLabelBackgroundColor = -1
> slp_res at cnInfoLabelString = info_string
> slp_res at cnInfoLabelFontColor = "NavyBlue"
> slp_res at cnInfoLabelPerimOn = False
>
> contour_psl = gsn_csm_contour(wks,slp,slp_res)
>
> ;---Wind vector plot
> vec_res = res
> vec_res at vcMinDistanceF = 0.02
> vec_res at vcRefLengthF = 0.02
> vec_res at vcMinFracLengthF = 0.2
> vec_res at vcGlyphStyle = "WindBarb"
> vec_res at vcRefAnnoOn = False
>
> vector = gsn_csm_vector(wks,u10,v10,vec_res)
>
> ;---Map plot
> map_res = True
> map_res at gsnFrame = False
> map_res at gsnDraw = False
> map_res at tiMainString = filename
> map_res at gsnLeftString = tf2 at description + " (" + tf2 at units + ")~C~" + \
> slp at description + " (" + slp at units + ")~C~" + \
> "Wind (" + u10 at units + ")"
> map_res at gsnLeftStringFontHeightF = 0.01
>
> ;---Set map resources based on projection on WRF output file
> map_res = wrf_map_resources(a,map_res)
>
> map = gsn_csm_map(wks,map_res)
>
> ;---Overlay plots on map and draw.
> overlay(map,contour_tf)
> overlay(map,contour_psl)
> overlay(map,vector)
>
> draw(map) ; This will draw all overlaid plots and the map
> frame(wks)
> end
>
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180705/768ff2c3/attachment.html>
More information about the ncl-talk
mailing list