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