[Thread Prev][Thread Next][Index]

Re: Daily data to monthly climatology...



hello Ferreters,
	this may be continuation of the discussion about making
monthly average from daily data. I've daily data of one year and I'm
facing problem in making monthly means from it. To test the monthly 
mean created I've used a dummy daily variable which takes the value as
the Julian day:

! define daily axis and variable
def axis/t="01-jan-1998":"31-dec-1998"/npoint=365/units=days t_day
def grid/t=t_day g_day
let vardy = l[gt=g_day,l=1:365]
list vardy[l=1:4]
             L[GT=G_DAY,L=1:365]
 01-JAN-1998 00 / 1:  1.000
 02-JAN-1998 00 / 2:  2.000
 03-JAN-1998 00 / 3:  3.000
 04-JAN-1998 00 / 4:  4.000


Now monthly axis is defined and monthly means were made:
let month = mod(l-1,12)+1
let add_year = int((l-1)/12)
let tstep = days1900(1998+add_year,month,1)
define axis/t/units=days/t0=1-jan-1900/edges/name=truemonth 
tstep[l=1:13]
def grid/t=truemonth g_mon
let varmn1 = vardy[gt=g_mon@ave]
list varmn1
             VARDY[GT=G_MON@AVE]
 16-JAN-1998 12 /  1:   16.5
 15-FEB-1998 00 /  2:   46.0
 16-MAR-1998 12 /  3:   75.5
... ...

Clearly, both edges are included to make the monthly mean.
(JAN mean should be 31*(31+1)/2/31 = 16.0 but it is 32*(32+1)/2/32 =
16.5 and similarly for the other months, except for the 12th).
But I want to exclude the 1st data value of the next month while
making monthly mean for the present one. I tried like this too:

! define another monthly axis at the middle of every month
let ts98 = days1900(1998+add_year,month,1)
let te98 = ts98[l=@shf:1] - 1
define axis/t/units=days/t0="1-jan-1900:00:00"/name=t_month
(ts98[l=1:12]+te98[l=1:12])/2
let varmn2 = vardy[gt=t_month@ave]
list varmn2
             VARDY[GT=T_MONTH@AVE]
 16-JAN-1998 00 /  1:   16.0
 14-FEB-1998 12 /  2:   45.5
 16-MAR-1998 00 /  3:   75.2
 15-APR-1998 12 /  4:  105.5
 16-MAY-1998 00 /  5:  136.0
 15-JUN-1998 12 /  6:  166.5
 16-JUL-1998 00 /  7:  197.1
 16-AUG-1998 00 /  8:  227.9
 15-SEP-1998 12 /  9:  258.5
 16-OCT-1998 00 / 10:  289.0
 15-NOV-1998 12 / 11:  319.5
 16-DEC-1998 00 / 12:  350.0

Here all values are correct except MAR (should be 75.0),
JUL (should be 197.0) and AUG (should be 228.0). I'm not able
to figure out what's happening for these months. Is there any
work around? To make the monthly mean I want to consider only those
many data points as many days of that month.

I'm using Ferret version 5.22 in Linux.

thanks,

arindam
------------------------------------------
 ARINDAM CHAKRABORTY
 Centre for Atmospheric & Oceanic Sciences
 Indian Institute of Science
 Bangalore 560 012; INDIA
 Tel: 091-080-3942505, 091-080-3600450
 Fax: 091-080-3600865
__________________________________________

On Fri, 10 Jan 2003, Andrew Wittenberg wrote:

> On Fri, 10 Jan 2003, Ansley Manke wrote:
> > To make monthly data you would define a monthly time axis for the
> > period in question, and regrid your data to it:
> > 
> > DEFINE AXIS/T="1-Jan-1961":"1-jan-1991":1/unit=month t_month
> > LET precip_month = precip[GT=t_month]
> 
> Gary & Ansley,
> 
> If your precip is a daily field, you probably want 
> 
>    precip[GT=t_month@ave]
> 
> which gives monthly averages.  Otherwise you'll get linear interpolation
> (the default regridding).
> 
> Cheers,
> 
> Andrew
> 
> +---------------------------------------+
> |  Andrew Wittenberg  |  GFDL/NOAA      |
> |  atw@gfdl.noaa.gov  |  Princeton, NJ  |
> +---------------------------------------+
> 
> 



[Thread Prev][Thread Next][Index]

Dept of Commerce / NOAA / OAR / PMEL / TMAP

Contact Us | Privacy Policy | Disclaimer | Accessibility Statement