[Thread Prev][Thread Next][Index]

Re: bug in mp_graticule



Hi Muyin,
          To make stereographic plots we need to "set grid my_variable" &
this will load the information about abstract axis "K" of the variable along
with other axis. In mp_graticule.jnl (ferret/go dir.) one repeat loop is 
defined as "repeat/k=2:5". So when we use a variable with the size of abstract
axis "K" as 1 (as in your case [Z=1]) Ferret will complain that the size of 
abstract axis "K" set by the "set grid my_variable" is 1 ..so any value of "k"
greater than 1 ( set by the `k` in DEFINE VARIABLE/quiet mp_xaxdel = mp_xdel/`k`;
inside the repeat loop) is not possible. You can get rid of this problem 
as described below. 

NOTE : 
I think the repeat loops in the go files (provided with Ferret 5.6 and 5.7) 
can be changed to REPEAT/RANGE to avoid this kind of problems. 

 Method.1 
 --------
     If your Ferret version is 5.6 or 5.7 use "REPEAT/RANGE=2:5" instead of 
          "REPEAT/k=2:5" in mp_graticule.jnl (ferret/go dir.). So you need to
           change line 137  from
 repeat/k=2:5 (if `mp_xaxdel gt 1` then let/quiet mp_xaxdel = mp_xdel/`k`)
              to
 repeat/range=2:5 (if `mp_xaxdel gt 1` then let/quiet mp_xaxdel = mp_xdel/`repcount`)  
     To know more about REPEAT/RANGE plese see 
http://ferret.pmel.noaa.gov/Ferret/Documentation/Release_Notes/v56.html#repeat_range
     In this case you can use "[Z=1]" variable as it is without any problem.

 Method.2
 --------
     If your Ferret version is older one (and if you don't wamt to upgrade it )
     then you can remove the information about "K" or rather "Z" axis from the 
         variable since it does have only one value over this axis. Define a 
         dummy variable with same X-Y grid as the variable then use "RESHAPE" 
         function to wrap the variable to this X-Y grid. 
          
        let xy_stamp = x[gx=myvar]*0 + y[gy=myvar]*0
        let myvar_xy = RESHAPE(my_var,xy_stamp)

        Then use this new variable in "set grid". Please note that you can use
          either the new variable or the old one itself in the "SHADE" or "FILL"
          command since the "set grid" loads the information about the abstract
          axes.

    Before saving the variable[Z=1] to a file also you can use the RESHAPE function
       (variable[Z=1:1@ave] will remove the information about "Z" axis).

 Example (method.2)
---------------------
!  Let us make some dummy data defined as over [Z=1] to work with
!
   use levitus_climatology
   let temp_extr = temp[z=1] !!!! let temp_extr = temp[z=1:1@ave]
                                ! will remove the "Z axis" 
   ! you can do the "Z axis removal" using "reshape" also..
   !  let  let xy_stamp = x[gx=temp]*0 + y[gy=temp]*0
   !  let temp_ex  = RESHAPE(temp_extr,xy_stamp) 
   !  save/file=temp_extr.nc/append temp_extr

   save/file=temp_extr.nc/append temp_extr
   cancel data 1 ; cancel var/all
   set data temp_extr.nc
   ! if Z axis exits ..remove it now
   let xy_stamp = x[gx=temp_extr]*0 + y[gy=temp_extr]*0   
   let temp_ex  = RESHAPE(temp_extr,xy_stamp)
   set grid temp_ex 
   set region/x=0:360/y=00:90
   go mp_stereographic_north
   shade/lev=(-5,30,2) temp_ex, x_page, y_page 
   ! or  shade/lev=(-5,30,2) temp_extr, x_page, y_page
   go my_mp_graticule 0 360 30 0 90 15
   go mp_fland 120 black 

Hope This helps

With Regards

Jaison 


On Tue, 28 Sep 2004, Muyin Wang wrote:

> 
> Hi, Ansley:
> I am trying to use stereographic_north projection to do some contour
> plots. When the plot is done, I'd like to add "mp_graticule" to the plot.
> However, the mp_graticule works for 3D data or 2D data, but not the ones I
> extracted of a 2D data with z=1 dimension from a 3D data set.
> The error message looks like this:
> 
> **ERROR: illegal limits: "K" is not in the range K=2
>           Axis extremes are K=1
> DEFINE VARIABLE/quiet mp_xaxdel = mp_xdel/`k`
> Command file, command group, or REPEAT execution aborted
> 
> Is there a way to work around this?
> Thanks,
> Muyin
> 
> 
> 

-- 
___________________________________________________

    Jaison Kurian                           
    Centre for Atmospheric and Oceanic Sciences
    Indian Institute of Science
    B A N G A L O R E   560 012
    Ph: +91-80-3942505
        +91-80-3600450
    Fax:+91-80-3600865
___________________________________________________



[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement