Re: possible problem in panel_23.ncl example ...

From: <u.utku.turuncoglu_at_nyahnyahspammersnyahnyah>
Date: Wed Mar 30 2011 - 11:12:41 MDT

Hi,

I really appreciate for your help. I solved the problem by activating the
labelbar for the latest plot in the panel. It is not a real solution but
is a simple trick. I also tried to create a dummy gsn_csm_contour plot
which has the exactly the same contour intervals and color map and i sent
it to the labelbar function but it is not working and the dummy plot
appears in the panel plot. May be i done something done. Anyway, it is
working now and if you fix it, i will modify the script.

Thanks again,

--ufuk

> Hi Ufuk,
>
> This really does seem like a bug; after inspecting your script, I put
> together a minimal script that exhibits the same problem. I will consult
> with one of my colleagues here and most likely file a bug report.
>
> As a possible work-around, you might take a look at the panel_25 example;
> it creates a paneled plot using gsn_csm_contour_map(), and has only a
> singular labelbar. The key to that example is the last dozen+ lines
> beginning with "create panel". The example uses gsn_panel() to group the
> plots. In your instance, you'd want to comment out your call to
> labelbar(), and to achieve the affects of example panel_23, you'd probably
> want to set gsnPanel[X|Y]WhiteSpacePercent = 0, and of course set the
> grouping as (/ 4,4 /) rather than the (/ 1, nplots /) in the example.
>
> I can't guarantee this will work, but it looks like it would be
> straightforward to copy those lines into (a copy of) your script, trim out
> the parts that don't apply to your case, and give it a shot.
>
> Hope that helps...
> Rick
>
> On Mar 30, 2011, at 3:10 AM, u.utku.turuncoglu@be.itu.edu.tr wrote:
>
>> Hi,
>>
>> Thanks for your help. You can find the script as follows,
>>
>> ---
>> ;-----------------------------------------------------------
>> 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/csm/contributed.ncl"
>> ;-----------------------------------------------------------
>> ;-----------------------------------------------------------
>> ; Functions
>> ;-----------------------------------------------------------
>> function labelbar(wks, plot)
>> local colors, levels, labels, nboxes
>> begin
>>
>> ;--- retrieve the contour levels and their associated colors ---
>> getvalues plot
>> "cnLevels" : levels
>> "cnFillColors" : colors
>> end getvalues
>>
>> nboxes = dimsizes(colors)
>>
>> labels = ""+levels ; labels for the labelbar
>>
>> ;--- set some labelbar resources ---
>> lbres = True
>> lbres@vpXF = 0.15 ; Position labelbar at
>> lbres@vpYF = 0.08 ; bottom center of frame.
>> lbres@vpWidthF = 0.70
>> lbres@vpHeightF = 0.10
>>
>> lbres@lbPerimOn = False ; Turn off perimeter.
>> lbres@lbOrientation = "Horizontal" ; Default is vertical.
>> lbres@lbFillColors = colors
>> lbres@lbMonoFillPattern = True ; Fill them all solid.
>> lbres@lbLabelFontHeightF = 0.013 ; Label font height
>> lbres@lbLabelAlignment = "InteriorEdges"
>>
>> lbid = gsn_create_labelbar(wks,nboxes,labels,lbres)
>>
>> draw(lbid)
>> return(lbid)
>> end
>> ;-----------------------------------------------------------
>> begin
>> ;--- read input files ---
>> nc_obs = addfile("./input.nc", "r")
>> nc_lake = addfile("./cas_lake.nc", "r")
>> nc_nolake = addfile("./cas_nolake.nc", "r")
>> nc_ssc = addfile("./cas_ssc.nc", "r")
>>
>> ;--- read rcm grid ---
>> domain = addfile("./grid.nc", "r")
>> lsmask = domain->mask
>> xlat = domain->xlat
>> xlon = domain->xlon
>>
>> ;--- read data ---
>> lswt = short2flt(nc_obs->lswt)
>> lat = nc_obs->lat
>> lon = nc_obs->lon
>>
>> tg_lake = nc_lake->tg
>> tg_lake!0 = "lat"
>> tg_lake!1 = "lon"
>> tg_lake@lat2d = xlat
>> tg_lake@lon2d = xlon
>>
>> tg_nolake = nc_nolake->tg
>> tg_nolake!0 = "lat"
>> tg_nolake!1 = "lon"
>> tg_nolake@lat2d = xlat
>> tg_nolake@lon2d = xlon
>>
>> tg_ssc = nc_ssc->tg
>> tg_ssc!0 = "lat"
>> tg_ssc!1 = "lon"
>> tg_ssc@lat2d = xlat
>> tg_ssc@lon2d = xlon
>>
>> ;--- create plot workspace ---
>> wks = gsn_open_wks ("pdf", "plot_vs")
>> gsn_define_colormap (wks, "amwg_blueyellowred")
>> i = NhlNewColor(wks, 0.8, 0.8, 0.8)
>>
>> ;--- define plor resource ---
>> res = True
>> res@gsnAddCyclic = False
>> res@gsnFrame = False
>> res@gsnLeftString = ""
>> ;res@gsnMaximize = True
>> res@gsnRightString = ""
>> res@gsnSpreadColors = True
>> res@gsnSpreadColorEnd = -3
>> res@cnFillOn = True
>> res@cnFillMode = "RasterFill"
>> res@cnInfoLabelOn = False
>> res@cnLinesOn = False
>> res@cnLineLabelsOn = False
>> res@lbLabelBarOn = False
>> res@pmTickMarkDisplayMode = "Always"
>> res@tiXAxisFontHeightF = 0.008
>> res@tiYAxisFontHeightF = 0.008
>> res@tmXBLabelFontHeightF = 0.008
>> res@tmYLLabelFontHeightF = 0.008
>> res@vpWidthF = 0.2
>> res@vpHeightF = 0.2
>>
>> res@cnLevelSelectionMode = "ManualLevels"
>> res@cnMinLevelValF = floor(min(lswt))-2
>> res@cnMaxLevelValF = ceil(max(lswt))+2
>> res@cnLevelSpacingF = 2
>>
>> ;--- mapping properties ---
>> res@mpDataBaseVersion = "HighRes"
>> res@mpProjection = "LambertConformal"
>> res@mpOutlineDrawOrder = "PostDraw"
>> res@mpGridAndLimbOn = False
>> res@mpLambertParallel1F = 30
>> res@mpLambertParallel2F = 60
>>
>> res@mpLimitMode = "Corners"
>> res@mpLeftCornerLatF = min(lat)
>> res@mpLeftCornerLonF = min(lon)
>> res@mpRightCornerLatF = max(lat)
>> res@mpRightCornerLonF = max(lon)
>> res@mpLambertMeridianF = 51.0
>>
>> ;--- positions for plots ---
>> xpos = (/0.1,0.218,0.336,0.454/)
>> ypos = (/0.9,0.7,0.5,0.3/)
>>
>> nplots = 16
>> months = (/ "DJF", "MAM", "JJA", "SON" /)
>> plot = new(nplots, graphic)
>>
>> do i = 0, nplots-1
>> ii = i%4
>>
>> if (ii .eq. 0) then
>> mm = months(i/4)
>> end if
>> print(i+" "+mm)
>>
>> ;--- top four plots ---
>> if(any(i.eq.(/0, 1, 2, 3/))) then
>> res@vpYF = ypos(0)
>> res@vpXF = xpos(i)
>> res@tmXTOn = False
>> res@tmXTLabelsOn = False
>> else
>> res@tmXTOn = False
>> res@tmXTLabelsOn = False
>> end if
>>
>> ;--- bottom four plots ---
>> if(any(i.eq.(/12, 13, 14, 15/))) then
>> res@vpYF = ypos(3)
>> res@vpXF = xpos(i-12)
>> res@tmXBOn = True
>> res@tmXBLabelsOn = True
>> res@tiXAxisString = "Longitude"
>> else
>> res@tmXBOn = False
>> res@tmXBLabelsOn = False
>> res@tmYLOn = False
>> res@tmYLLabelsOn = False
>> res@tiXAxisString = ""
>> end if
>>
>> ;--- rightmost four plots ---
>> if(any(i.eq.(/0, 4, 8, 12/))) then
>> res@vpYF = ypos(i/4)
>> res@vpXF = xpos(0)
>> res@tmYLOn = True
>> res@tmYLLabelsOn = True
>> res@tiYAxisString = "Latitude"
>> else
>> res@tmYLOn = False
>> res@tmYLLabelsOn = False
>> res@tiYAxisString = ""
>> end if
>>
>> ;--- leftmost four plots ---
>> if(any(i.eq.(/3, 7, 11, 15/))) then
>> res@vpYF = ypos(i/4)
>> res@vpXF = xpos(3)
>> res@tmYROn = False
>> res@tmYRLabelsOn = False
>> else
>> res@tmYROn = False
>> res@tmYRLabelsOn = False
>> end if
>>
>> if(any(i.eq.(/5, 6, 9, 10/))) then
>> res@vpYF = ypos(i/4)
>> res@vpXF = xpos(i%4)
>> res@tmXBOn = False
>> res@tmXBLabelsOn = False
>> res@tmXTOn = False
>> res@tmXTLabelsOn = False
>> res@tmYROn = False
>> res@tmYRLabelsOn = False
>> res@tmYLOn = False
>> res@tmYLLabelsOn = False
>> end if
>>
>> if (any(i.eq.(/0, 4, 8, 12/))) then
>> var_obs = month_to_season(lswt, mm)
>> plot(i) = gsn_csm_contour_map(wks, var_obs(0,:,:), res)
>> delete(var_obs)
>> end if
>>
>> if (any(i.eq.(/1, 5, 9, 13/))) then
>> tmp = month_to_season(tg_lake, mm)
>> var_lake = tmp
>> var_lake = mask(tmp, lsmask, 0)
>> plot(i) = gsn_csm_contour_map(wks, var_lake(0,:,:), res)
>> delete(var_lake)
>> end if
>>
>> if (any(i.eq.(/2, 6, 10, 14/))) then
>> tmp = month_to_season(tg_nolake, mm)
>> var_nolake = tmp
>> var_nolake = mask(tmp, lsmask, 0)
>> plot(i) = gsn_csm_contour_map(wks, var_nolake(0,:,:), res)
>> delete(var_nolake)
>> end if
>>
>> if (any(i.eq.(/3, 7, 11, 15/))) then
>> tmp = month_to_season(tg_ssc, mm)
>> var_ssc = tmp
>> var_ssc = mask(tmp, lsmask, 0)
>>
>> plot(i) = gsn_csm_contour_map(wks, var_ssc(0,:,:), res)
>> delete(var_ssc)
>> end if
>> end do
>>
>> ;--- add label bar ---
>> lb = labelbar(wks, plot(0))
>>
>> ;--- add title ---
>> txres = True
>> txres@gsnFrame = False
>> txres@txFontHeightF = 0.008
>> txres@txFont = "Helvetica-bold"
>>
>> title = (/ "OBS", "LAKE", "NOLAKE", "SSC" /)
>> do i = 0, 3
>> txres@txPosXF = xpos(i)+0.1
>> txres@txPosYF = ypos(0)+0.01
>> txid = gsn_create_text(wks, title(i), txres)
>> draw(txid)
>> end do
>>
>> txres@txAngleF = 90
>>
>> do i = 0, 3
>> txres@txPosXF = xpos(3)+0.17
>> txres@txPosYF = ypos(i)-0.1
>> txid = gsn_create_text(wks, months(i), txres)
>> draw(txid)
>> end do
>>
>> frame(wks)
>>
>> ;--- maximize plot ---
>> ;psres = True
>> ;maximize_output(wks, psres)
>> end
>> -----
>>
>>> Hard to say offhand. Do you want to post your script?
>>>
>>>
>>> On Mar 29, 2011, at 9:39 AM, u.utku.turuncoglu@be.itu.edu.tr wrote:
>>>
>>>> Hi,
>>>>
>>>> I try to plot that is similar to following link,
>>>>
>>>> http://www.ncl.ucar.edu/Applications/Scripts/panel_23.ncl
>>>>
>>>> but in my case i am using gsn_csm_contour_map instead of
>>>> gsn_csm_contour.
>>>> The code gives following error in labelbar function.
>>>>
>>>> warning:cnFillColors is not a valid resource in map at this time
>>>> warning:NhlGetValues:Error retrieving cnFillColors
>>>> fatal:Execute: Error occurred at or near line 16 in file plot_vs.ncl
>>>>
>>>> fatal:Execute: Error occurred at or near line 239 in file plot_vs.ncl
>>>>
>>>> How can i solve it? I think that gsn_csm_contour_map causes this error
>>>> because when i change it to gsn_csm_contour, it works without error.
>>>>
>>>> Thanks,
>>>>
>>>> --ufuk
>>>>
>>>>
>>>> --
>>>> This message has been scanned for viruses and
>>>> dangerous content by MailScanner, and is
>>>> believed to be clean.
>>>>
>>>> _______________________________________________
>>>> ncl-talk mailing list
>>>> List instructions, subscriber options, unsubscribe:
>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>> --
>>> This message has been scanned for viruses and
>>> dangerous content by MailScanner, and is
>>> believed to be clean.
>>>
>>
>>
>>
>> --
>> This message has been scanned for viruses and
>> dangerous content by MailScanner, and is
>> believed to be clean.
>>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Wed Mar 30 11:08:15 2011

This archive was generated by hypermail 2.1.8 : Tue Apr 05 2011 - 09:01:21 MDT