[Thread Prev][Thread Next][Index]

Re: time_counter as axis



Hi Greene,
           
             These are the necessary steps to find a climatology for your 
data set.

    1. To find climatology we need the variable in actual calendar 
          "time axis" instead of the index axis. So we need to "impose"
          a calendar time axis to the variable.
       If you know the exact years over which the data is collected then
          use it or use arbitary years to define the calendar time axis.

    2. Define a monthly climatological axis and regrid the variable on 
          calendar time grid to this climatological axes via "MODULO"
          regridding.

Your questions....

     (a) how to produce such a delimited-interval climatology ?
   
  From ferret user manual, Ch4 Sec2.5. Modulo regridding

   "To generate a climatology based on a restricted range of input data 
   simply define an intermediate variable with the desired points".
   ....then use this intermediate variable to find the climatology (see
   the example below).

    (b) what was the problem with my formulation ?

     let vclim = v[GT=month_reg@asn]   this should be like

     let vclim = v[GT=month_reg@MOD]   provided "v" is on "actual" time
                                        axis

 @ASN regridding associates by subscript (blindly) the points from the 
 source grid onto destination coordinates (see the example below where
 @ASN is used to impose the calendat time axis intead of the abstract
 one). 
 @MOD regriddging computes climatology/mean by averaging the full time 
 domain of the input variable in a "modulo fashion" into the time points
 of the climatological axis. 
   
     let v1 = v[T=13:60]
     let v1clim = v1[GT=month_reg@asn]
     plot v1clim

  Try listing "list/l=1:10 v1" ...you will get all the 48 values from 
  v[T=13] to v[T=60] instead of v[T=13] to v[T=24]...why ? v1 is defined
  as data "segment" with no identity to individual entries in the segment.
  You are making an attempt to "assign" a 12 point grid (month_reg) to a 
  sata segment with 48 values. That is why you are getting blank plot and
  empty values.

  So the preferred way to define v1 is 

    let v1 = TSEQUENCE(v[T=13:60]) (see example below)

  TSEQUENCE unravels the data from the argument into a 1-dimensional line
  of data on "ABSTRACT" axis L.
 
  Again you should use "@mod" instead of "@asn".


  Please go thorugh the example below. If anything remains not explained
  please let me know.

  Hope this hleps 

  With Regards 

  Jaison

! --------------example.jnl--------------------------------

! get some dummy data

      define axis/t=1:60:1 tabs
      let v   = 30 - ( sin(t[gt=tabs]) ) + RANDU(t[gt=tabs])
      set var/title="Some variable"/units="something" v

! Suppose your data is from 16-JAN-1995 to 16-DEC-1999 (60 points).
! You want to calculate a climatology from ..say last 3 year's of data
! ( from JAN-1997 to DEC-1999). Then..

   ! extract last three years data ie. abstract index L=25:60

   let v_3to5yr = TSEQUENCE(v[L=25:60])

   ! define monthly time axis from JAN-1997 to DEC-1999 & assign it
   !     T=0:`365.2425*3`/NPOINTS=36/UNITS=DAYS together will make it for 
   !      3 years and  T0 will take care of actual year stamp.

      define axis/T=0:`365.2425*3`/NPOINTS=36/EDGES/units=days/\
                  T0="01-JAN-1997:00:00" t3to5yr

      let v_3to5yr_t = v_3to5yr[gt=t3to5yr@asn] 

   ! Define a monthly climatological axis 
   
      define axis/T=0:365.2425/EDGES/NPOINTS=12/T0=1-JAN-0001/\
                     UNITS=DAYS/MODULO tclim

   ! Find monthly climatology by "MODULO" regridding

      let v_clim_12mon = v_3to5yr_t[GT=tclim@MOD]
      plot v_clim_12mon     

! If you want to find anomaly or want to plot the climatology
!   over the data then please refer :
!   http://ferret.pmel.noaa.gov/Ferret/Mail_Archives/fu_2003/msg01470.html

!---------------------- end of example.jnl-------------


On Tue, 31 Aug 2004, Arthur M. Greene wrote:

> Hello Ferreters...
> 
> I have 5 years of monthly data at a single gridpoint, with the time axis
> specified by a simple index: 1,2,3,4,5... 60, rather than by specific
> dates. According to the "show axis" command, this is a "time_counter,"
> and ferret shows "# pts" as "60 r," beginning at 1 and ending at 60. I
> would like to display a monthly climatology, but only for the last four
> (or possibly three) years. 
> 
> Let's call the variable in question v. Then, when I do
> 
> let vclim = v[GT=month_reg@asn]
> plot vclim
> 
> I get a nice climatological plot, with Jan Feb Mar... along the x-axis
> (these happen to be the correct months, even though I haven't told
> ferret how to map the time index to the calendar.)
> 
> However, if I pick off the last four years,
> 
> let v1 = v[T=13:60]
> let v1clim = v1[GT=month_reg@asn]
> plot v1clim
> 
> the resulting plot is blank; a listing shows empty values.
> 
> I have read a lot of the grid and axis parts of the docs, but I'm afraid
> it is still not clear to me (a) how to produce such a delimited-interval
> climatology, and (b) what the problem actually is with the formulation
> as given above.
> 
> Comments appreciated, and thanks!
> 
> A. Greene
> 
> 
> 

-- 
___________________________________________________

    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