[ncl-talk] I can't manage to create a plot with multiple lines on it, each line having different x and y values. Attribute assignment type issue.

Maxime Colin m.colin at unsw.edu.au
Fri Apr 15 04:31:52 MDT 2016


Hi all,


Thanks to Rick Brownrigg for his help. That was really helpful!


Using the 2 following methods seem to work well:

- either both "delete(res)" and "delete(wks)" before each plot

- or a new "res" (like "res3" for a 3rd plot) and a new "wks" (like "wks3" for a 3rd plot) for each plot

I do get a figure with the things I want in it.


The only things remaining are the colours (to match with the legend of course)! I get 3 lines in "cyan", and 3 legend items in "cyan", while I do ask for several colours: e.g. res3 at xyLineColor = (/"cyan","blue","green"/). Do you have an idea on how to sort that out?


I attach a figure of what I get, so that you can visualise the small issue left.


Thank you,


Maxime



________________________________
From: Rick Brownrigg <brownrig at ucar.edu>
Sent: Friday, 1 April 2016 4:33 AM
To: Maxime Colin
Subject: Re: [ncl-talk] I can't manage to create a plot with multiple lines on it, each line having different x and y values. Attribute assignment type issue.

Just to follow up, I had meant to attach an example of what I was talking about in point i):



ncl 0> opt = True
ncl 1> res = opt
ncl 2> res at foo = 1
ncl 3> res at bar = 2
ncl 4> print(res)


Variable: res
Type: logical
Total Size: 4 bytes
            1 values
Number of Dimensions: 1
Dimensions and sizes:    [1]
Coordinates:
Number Of Attributes: 2
  bar :    2
  foo :    1
(0)    True
ncl 5> res = opt
ncl 6> print(res)


Variable: res
Type: logical
Total Size: 4 bytes
            1 values
Number of Dimensions: 1
Dimensions and sizes:    [1]
Coordinates:
Number Of Attributes: 2
  bar :    2  <<<<< NOTE these values are retained from previous settings
  foo :    1
(0)    True


On Thu, Mar 31, 2016 at 11:27 AM, Rick Brownrigg <brownrig at ucar.edu<mailto:brownrig at ucar.edu>> wrote:
Hi Maxine,

A couple of comments:

i) for each plot, you first set "opt = True", then either "res = opt" or "res2 = opt", and then assign a bunch of resources for the plot.  But after the first plot., performing "res = opt" doesn't affect the values or presence of resources associated with "res" from the previous plots.  So for example, in one plot, you've set "res at xyLineThickness = 8", a scalar integer value. In a subsequent plot, where the error message arises, you set "res at xyLineThickness = (/ ..... /), an array of floats, and as you likely know NCL won't allow reassignment of incompatible types.

The solution would be to "delete(res)" for each  plot.

ii) In a similar vein, you are re-opening the workstation for each plot and assigning it to "wks".  I'm not totally certain what the behavior is there, and whether the previous plots get written and closed out properly.  As odd as it seems, performing "delete(wks)" will close the plot/workstation.  Alternatively, if the workstation is the same for each plot, its not necessary to reopen a new instance for each plot -- just open once at the top, and it will get closed properly when the script terminates.

Hope that helps...
Rick


On Thu, Mar 31, 2016 at 10:57 AM, Maxime Colin <m.colin at unsw.edu.au<mailto:m.colin at unsw.edu.au>> wrote:



Dear NCL gurus,


I've used NCL for more than a year, but this problem seems to be particularly tough to solve, so I think I need to refer to you.


I've been working on a script for days, I've turned it in different ways (array of data, overlay, using a single y-axis, etc...), but I can't seem to find the solution. I had a script to plot several lines on the same graph, but these lines had exactly the same x-axis. That was working fine. Now I'm trying to plot several profiles, that all have different x and y values, but I always receive the following error (after a bunch of warnings due to the fact that I'm plotting several types of plots with the same script):


warning:MainTitle is not a valid resource in plot_theta_hor_ave_fct_time_and_z_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_contour at this time
warning:MainTitle is not a valid resource in plot_temp_hor_ave_fct_time_and_z_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_contour at this time
warning:MainTitle is not a valid resource in plot_eth_hor_ave_fct_time_and_z_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_contour at this time
warning:cnFillOn is not a valid resource in plot_T500_hor_ave_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_xy at this time
warning:gsnSpreadColors is not a valid resource in plot_T500_hor_ave_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_xy at this time
warning:cnLineLabelsOn is not a valid resource in plot_T500_hor_ave_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_xy at this time
warning:cnLevelSelectionMode is not a valid resource in plot_T500_hor_ave_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_xy at this time
warning:MainTitle is not a valid resource in plot_T500_hor_ave_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1_xy at this time

fatal:["NclAtt.c":262]:Attribute assignment type mismatch.

fatal:["Execute.c":8575]:Execute: Error occurred at or near line 589 in file plot_temperature.ncl



I attach the whole script if needed (plot_temperature.ncl), but here is the relevant part (the error I receive refering to line res at xyLineThicknesses = (/8.0,8.0,8.0/) ):


"

; PLOT NUMBER 11
;  type at wkPaperSize = "A4"
  wks = gsn_open_wks(type,"plot_prof_theta_ALL_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1")   ; Create a plot workstation + TITLE OF THE FILE TO SAVE
  opts = True
  res = opts
  res at lbOrientation   = "Vertical"
  res at gsnMaximize = True
  res at tmXTOn         = False

  res at pmLegendDisplayMode = "Always"
  res at pmLegendSide = "Top"
  res at pmLegendOrthogonalPosF = -0.58  ;-0.02 (too high), 0.15 the same, -0.15 half box is too high
  res at pmLegendParallelPosF = .67     ; 0.2 is very good
  res at pmLegendWidthF = 0.0375
  res at pmLegendHeightF = 0.28
  res at lgLabelFontHeightF = 0.02
  res at xyExplicitLegendLabels = (/legend_theta(0), legend_theta(1), legend_theta(2)/)

  res at xyLineThicknesses = (/8.0,8.0,8.0/)
  res at xyLineColor    =  (/"cyan","blue","green"/)
  res at xyDashPatterns    = (/0,0,0/)
  res at trXMinF        =  200.
  res at trXMaxF        =  800.
  res at trYMinF        =  0.
  res at trYMaxF        =  30.   ;30000
  res at tiXAxisString = "Pot. temp (K)"
  res at tiYAxisString = "z (km)"
  res at tiMainString = "Pot. Temp. profiles"

  plot  = gsn_csm_xy(wks,array_of_theta_prof,array_of_heights,res)


"


The netcdf files I'm using are just standard WRF output from an idealized quarter_ss type simulation. They are big files (~30GB) so I'd rather not add them now. If necessary, I'll put a few of them online.

NOTE: If you wish to try the script on a smaller number of wrfout files, just change the num_day_max variable to a small number (I receive the same error in any case). If you don't use 90 files (as the target is), then some of the profiles in array_of_heights and array_of_theta_prof may be undefined. But I have checked that this is not the reason for my issue, as I get the same errors when running on the full 90 files. To avoid this slight issue, you may run the cleaned version: plot_temperature_cleaned.ncl


For information, I'm using NCL v6.3.0.

And "uname -a" returns: Linux monsoon.ccrc.unsw.edu.au<http://monsoon.ccrc.unsw.edu.au> 2.6.32-573.8.1.el6.x86_64 #1 SMP Tue Nov 10 18:01:38 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


Thank you very much for your assistance.


Maxime.

_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu<mailto: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/20160415/c37a9fc7/attachment.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: plot_prof_eth_ALL_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1.png
Type: image/png
Size: 77582 bytes
Desc: plot_prof_eth_ALL_0130_3D_No_strong_nudg_CONTROL_ALL90d_v1.png
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20160415/c37a9fc7/attachment.png 


More information about the ncl-talk mailing list