Re: Problem retuning graphic object from user defined function

From: Mohamed Abdel Kader <m.abdelkader_at_nyahnyahspammersnyahnyah>
Date: Sun Sep 15 2013 - 23:34:53 MDT

Dear Mary,
Thanks a lot for your help. Actually Adam helped me on this. I have pass the workstation from outside the function and don't draw and frame the workstation inside the function. So, the function is only for configuring the figure and the generation are outside.
Thanks a lot

Best Regards
Mohamed M. Abdel Kader
Atmosphere and Climate Modelling Group
Research Assistant/PhD student
Environmental & Atmospheric Sciences
The Cyprus Institute Graduate Studies
20 Constantinou Kavafi Street
P.O. Box: 27456
Nicosia 2121, Cyprus
Tel. +357 222 08679
Fax. +357 222 08625
Mobile: +357 992 62108
e-mails: m.abdelkader@cyi.ac.cy
         mmkader@gmail.com
Skype: mmkader
  _____

From: Mary Haley [mailto:haley@ucar.edu]
To: Mohamed Abdel Kader [mailto:m.abdelkader@cyi.ac.cy]
Cc: ncl-talk@ucar.edu
Sent: Mon, 16 Sep 2013 04:12:36 +0200
Subject: Re: Problem retuning graphic object from user defined function

Dear Mohamed,

I'm not sure what this code is all about:

 plot=plot1
      return (plot)
end

But you might want to try returning "plot1" instead of "plot". There's no need for you to assign "plot1" to "plot" and then return "plot".

--Mary

On Sep 9, 2013, at 12:05 PM, Mohamed Abdel Kader <m.abdelkader@cyi.ac.cy> wrote:

Dear All,
I would like to make a figure of different scatter plots super-imposed a global map. I have a user defined function that generates the scatter plots and I return the scatter plot graphic object. The returned graphic object has missing value.
I have to do in that way since the scatter plot is highly customized and it's being called many times from different scripts. So, I would like to keep one scatter plot script. Could you please help me on solving this problem.
 
I attached parts from the script.
P.S.: The scatter function works fine as standalone

Thanks a lot and let me know if you need more information.

========================================================================================================================
Scatter plot function:
function Plot_Scatter_function(x_title:string,y_title:string,data_x:numeric,data_y:numeric,f_name:string,data_set_string:string, ps_op:logical, plot:graphic)

local plot1, plot2
begin
.
.
.
. "many commands"
.
.
       wks = gsn_open_wks("eps", f_name )

  plot1 = gsn_csm_xy (wks,ndtooned(data_x),ndtooned(data_y),res)
  plot2 = gsn_csm_xy (wks,(/res@trXMinF,res@trXMaxF/),(/res@trYMinF,res@trYMaxF/),res2)

 overlay(plot1,plot2)
 draw(plot1)
 frame(wks)
 print(plot1)
 plot=plot1
      return (plot)
end

the print out from scatter function

Variable: plot
Type: obj
Total Size: 4 bytes
            1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
Number Of Attributes: 2
  dataspec : /EMAC_map_scatter_____tmp_data xyDataSpecClass 89
  data : /EMAC_map_scatter_____tmp_data coordArraysClass 67
(0) /EMAC_map_scatter_____tmp_xy xyPlotClass 88
========================================================================================================================

Parent script:
.
.
.
.
dum_poly = new(NREG,graphic)

do n=0,NREG-1
             dum_poly(n)= Plot_Scatter_function(x_title,y_title,data_xx,data_yy,f_name+"_____tmp",data_set_string, ps_op,dum_poly(n))
             ann = gsn_add_annotation (map,dum_poly(n),amres)
end do
.
.
.
.
.
.
end

the message error

warning:NhlAddAnnotation: bad HLU id passed in, ignoring it
fatal:_NclAddHLURef: internal error: ncl object 647412112 does not exist for vname anno_id
fatal:_NclAddHLURef: internal error: ncl object 647412112 does not exist for vname ann

The print out of dum_poly(n): from the Parent script.

Variable: dum_poly
Type: obj
Total Size: 4 bytes
            1 values
Number of Dimensions: 1
Dimensions and sizes: [1]
Coordinates:
Number Of Attributes: 3
  data : -1
  dataspec : -1
  _FillValue : -1
(0) -1
========================================================================================================================

  

Best Regards
Mohamed M. Abdel Kader
Atmosphere and Climate Modelling Group
Research Assistant/PhD student
Environmental & Atmospheric Sciences
Max-Planck Institute for Atmospheric chemistry, Germany
The Cyprus Institute, Cyprus
20 Constantinou Kavafi Street
P.O. Box: 27456
Nicosia 2121, Cyprus
Tel. +357 222 08679
Fax. +357 222 08625
Mobile: +357 992 62108
e-mails: m.abdelkader@cyi.ac.cy
mmkader@gmail.com
Skype: mmkader
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk

  

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sun Sep 15 23:35:13 2013

This archive was generated by hypermail 2.1.8 : Mon Sep 16 2013 - 13:43:52 MDT