5 day precipitation

Ben Burford benb at RESTEC.OR.JP
Thu Feb 9 06:17:09 EST 2006


Hello Arindam,

This is amazing!  Thank you very much.

I've been working on figuring out the functions and the logic, and I think t
here is a mistake in your answer (but its very close).  I'd appreciate it if
 you would check this.

In the innermost part you have:
maskout(sum(prec,t+0,t+4),sum(prec,t+0,t+4)-tenpanave)

I think this means: "if the sum (of the 5 days of prec) is not greater than
tenpanave, then change 'sum(prec,t+0,t+4)' to missing value".

I think the logic should be "if the sum (of the 5 days of prec) is not great
er than tenpanave, then change 'prec' to missing value".

So I think the innermost part should be:
maskout(prec,sum(prec,t+0,t+4)-tenpanave)


and the overall function would be:
'count = sum(  const(  const(  maskout(prec,sum(prec,t+0,t+4)-tenpanave)  ,1
)  ,0,-u)  ,t=1,t=2918)'


Is this right (or perhaps wrong)?

Thank you very much,

Ben




At 15:21 2006/02/07 -0500, you wrote:
> hi Ben,
>         you have an interesting problem to solve in grads. Probably
> it is possible to get the count and I'm giving the expression below,
> although I've not checked the answer thoroughly for my own data.
> You may try it out and see if it makes sense.
>
> If the threshold precipitation value is 'tenpanave' (you can
> define it the way you want before the expression to calculate
> the count, the way you showed the example in your mail).
> Then, the count is nothing but
> 'count = sum(const(const(maskout(sum(prec,t+0,t+4),sum(prec,t+0,t+4)-tenpa
nave),1),0,-u),t=1,t=2918)'
> ...
>
>
> Hope this helps,
> ----------------------------
>  ARINDAM CHAKRABORTY
>  Department of Meteorology
>  Florida State University
>  Tallahassee, FL-32306, USA
>  Tel: +001-850-6443524 (Off)
>       +001-850-5758550 (Res)
>  Fax: +001-850-6449642
> ____________________________
>
> On Tue, 7 Feb 2006, Ben Burford wrote:
>
> > Hello All,
> >
> > I'm trying to implement a script.  I studied functions (e.g. tloop) and
look
> > ed in the archives for help, but so far its over my head as a beginner,
I'm
> > not even sure if Grads can do this.
> >
> > I have an 8 year (t=1,2922) global gridded daily precipitation data set.
  Fo
> > r each grid cell I want to go through the time series and check each fiv
e da
> > y period (2918 possible 5 day periods) to see if the total of the precip
itat
> > ion for the five days is greater than a certain level, if it is I want t
o in
> > crement a counter.  The result will be a single value (total count) for
each
> >  grid cell (global grid of a single value per grid cell).
> >
> > The value that I want to check the five day total against is "10% of the
 ann
> > ual average rainfall" (tenpanave) which I'm calculating as follows (add
up a
> > ll the daily values for 8 years, divide by 8 to get the annual average,
then
> >  take 10% of that):
> > tenpanave = 0.1*((sum(prec,t=1,t=2922))/8)
> >
> > A flow chart for the script might look like:
> > * Calculate "10% of the annual average rainfall" (tenpanave)
> > tenpanave = 0.1*((sum(prec,t=1,t=2922))/8)
> >
> > * calculate the precipitation over 5 days (5dayprec), if that 5 day tota
l is
> >  greater than or equal to ten percent of the annual average precipitatio
n (t
> > enpanave) for that grid cell, then increment the counter for that grid c
ell.
> >   Perform this process for all grid cells, over the full time period of
2922
> >  days (x from 1 to 2918).
> > x=1
> > 5dayprec=sum(prec,t=x,t=x+4)
> > if 5dayprec is greater than or equal to tenpanave then count=count+1
> > x=x+1
> > if x=2919 then quit, else go up three steps and calculate the next 5 day
 win
> > dow (5dayp)
> >
> > * Display results
> > d count
> >
> >
> > As I say, I don't know if this can be done with Grads.  Any help would b
e gr
> > eatly appreciated.
> >
> > Thank you,
> >
> > Ben
> >
>



More information about the gradsusr mailing list