[gradsusr] GFS_0p25 and total precip accum

Jeff Chabot jsc219 at gmail.com
Thu Jun 24 01:43:39 EDT 2021


Thanks guys, that's very helpful.  I figured out a different way to
get it to work using this equation:

'define accum = sum(const(apcpsfc/25.4,0,-u),t-1,t+0) -
sum(const(apcpsfc/25.4,0,-u),t-1,t-1)'

I am using the const to take t =1 into account where the entire precip
field is undefined at the initialization.  To be honest, I think it
works with or without that.

I spent many hours on it, but in the end the above equation worked really well.

Sincerely,

Jeff

On Thu, Jun 24, 2021 at 12:15 AM Jeff Duda <jeffduda319 at gmail.com> wrote:
>
> Oh yeah, I almost forgot...the default units of apcpsfc are kg/m^2 (equivalent to mm). If you want values in inches, you need to divide the final value by 25.4. That should really shave down your final values.
>
> Jeff
>
> On Wed, Jun 23, 2021 at 2:11 PM Bill Reilly <bill_reilly at compuserve.com> wrote:
>>
>> I don't know if this helps, but this is how I display 3hr precipitation:
>>
>> if (tstep="006" | tstep="012" | tstep="018" | tstep="024" | tstep="030"
>> | tstep="036" | tstep="042" | tstep="048" | tstep="054" | tstep="060" |
>> tstep="066" | tstep="072" | tstep="084" | tstep="096" | tstep="108" |
>> tstep="120" | tstep="132" | tstep="144" | tstep="156" | tstep="168" |
>> tstep="180")
>>     'd (apcp03-apcp03(t-1))*10'
>> else
>>     'd const(apcp03,0.001,-u)*10'
>> endif
>>
>> --
>>
>> Bill Reilly
>>
>> (+34) 686-110-748
>>
>> bill at passageweather.com
>> www.passageweather.com
>>
>> On 06/23/2021 20:49, Jeff Duda wrote:
>> > Then I'd start checking the apcpsfc arrays in your individual files,
>> > because that might be the culprit.
>> >
>> > By the way, your looping syntax is incorrect. In grads, you perform
>> > modular arithmetic using R = math_fmod(N,D) for remainder R, number N,
>> > and divisor D. So you would use
>> > if (R = 0) ...
>> >
>> > On Tue, Jun 22, 2021 at 3:19 PM Jeff Chabot <jsc219 at gmail.com
>> > <mailto:jsc219 at gmail.com>> wrote:
>> >
>> >     Hi Jeff,
>> >
>> >     Thanks for the quick response.  I removed the const function. I was
>> >     using that part for my precip type equations, but as you said, I
>> >     probably don't need it.
>> >
>> >     As for what you mentioned, I couldn't get it to work.  I am trying to
>> >     show a running total of precip accum every 3 hours even though it
>> >     alternates between 3 and 6 hours precip.
>> >
>> >     So, I came up with the following based on what you wrote:
>> >
>> >     if (hh = 0 mod 6)
>> >       'display sum(apcpsfc/25.4,t=1,t-0,2)'
>> >      else
>> >       'display sum(apcpsfc/25.4,t=1,t-1,2) + apcpsfc/25.4'
>> >     endif
>> >
>> >     Where hh = forecast hour.
>> >
>> >     Unfortunately, it is still resulting in overestimated values such as
>> >     8-12 inches of total precip in 32 hours when it should be more like
>> >     3-5 inches and I don't have precip accum until hour 6 (hour 3 I get no
>> >     data).
>> >
>> >     I am missing something, I just don't know what.
>> >
>> >     Thanks again,
>> >
>> >     Jeff Chabot
>> >
>> >
>> >     On Tue, Jun 22, 2021 at 11:19 AM Jeff Duda <jeffduda319 at gmail.com
>> >     <mailto:jeffduda319 at gmail.com>> wrote:
>> >     >
>> >     > Jeff,
>> >     > It seems you are overcomplicating this.
>> >     >
>> >     > First, why are you using the const function for your sum? There
>> >     should be no negative values nor any undefined values in the
>> >     apcpsfc field. If there are, then there are problems at the level
>> >     of the data processing upstream of you.
>> >     >
>> >     > Second, my understanding of the precip array in GFS output is
>> >     that it alternates between 3- and 6-hour accumulation. So at 0300,
>> >     0900, 1500, 2100, apcpsfc contains 3-hour precipitation, whereas
>> >     at 0000, 0600, 1200, and 1800 UTC, apcpsfc contains 6-hour
>> >     precipitation. That means that pairs of adjacent time stamp
>> >     apcpsfc arrays are not independent of each other; the 6-hour
>> >     accumulation field completely contains the 3-hour precipitation
>> >     field. Therefore, if you are looking for run-total precipitation,
>> >     you only need to sum the apcpsfc arrays every other time stamp up
>> >     to the time before the valid time (or the valid time itself, if
>> >     the forecast hour is divisible by 6). The simple function
>> >     math_fmod(t,6) will give you the ability to decide if you are
>> >     computing this for forecast hours divisible only by 3.
>> >     >
>> >     > In essence, your display command really only needs to be
>> >     >
>> >     > * if forecast hour = 0 mod 6
>> >     > 'd sum(apcpsfc,t=1,t-0,2)'
>> >     > * else
>> >     > 'd sum(apcpsfc,t=1,t-1,2) + apcpsfc'
>> >     >
>> >     > ...or something similar to that.
>> >     >
>> >     > Jeff Duda
>> >     >
>> >     > On Tue, Jun 22, 2021 at 8:43 AM Jeff Chabot <jsc219 at gmail.com
>> >     <mailto:jsc219 at gmail.com>> wrote:
>> >     >>
>> >     >> Hi GrADS Users,
>> >     >>
>> >     >> I am having trouble with computing precip accum using just GFS_0p25
>> >     >> from NCEP.  The source that I am using is the following:
>> >     >>
>> >     >>
>> >     http://nomads.ncep.noaa.gov:80/dods/gfs_0p25/gfs20210622/gfs_0p25_00z
>> >     <http://nomads.ncep.noaa.gov:80/dods/gfs_0p25/gfs20210622/gfs_0p25_00z>
>> >     >>
>> >     >> To compute precip, I'm using:
>> >     >> 'define precip = const((apcpsfc/25.4),0,-u)'
>> >     >>
>> >     >> I set the following variables:
>> >     >> t=1
>> >     >> t0=0
>> >     >>
>> >     >> Then, in the while loop, I am using this equation to subtract 0-6
>> >     >> hours from 0-3 hours (Please note, I only need to do this for GFS):
>> >     >> 'define rain = const(precip(t='t') - precip(t='t0'),0,-u)'
>> >     >>
>> >     >> This works well for a 3 hour interval of precip (every three
>> >     hours up
>> >     >> to 10 days).
>> >     >>
>> >     >> Next, I am trying to apply a sum to it to get total accumulated
>> >     precip totals:
>> >     >> 'define accum = sum(rain,t=1,t='t')'
>> >     >>
>> >     >> For other models like NAM, I use the following since I don't
>> >     need the
>> >     >> define rain:
>> >     >> 'define accum = sum(precip,t=1,t='t')'
>> >     >>
>> >     >> I then do the counter and then end my loop:
>> >     >>
>> >     >> t = t+1
>> >     >> t0 = t0+1
>> >     >> endwhile
>> >     >>
>> >     >> I have tried modifying the define accum equation with no luck.
>> >     If I
>> >     >> use precip in the equation, then I get ridiculous precip totals
>> >     of 24
>> >     >> inches for 1/2 of the country in 10 days.  If I use rain, then
>> >     I'm not
>> >     >> getting total precipitation, instead I'm getting an interval.
>> >     >>
>> >     >> Any suggestions would be greatly appreciated.  I suspect that I
>> >     have
>> >     >> an error in my equation. the correct accum equation.
>> >     >>
>> >     >> Sincerely,
>> >     >>
>> >     >> Jeff
>> >     >> _______________________________________________
>> >     >> gradsusr mailing list
>> >     >> gradsusr at gradsusr.org <mailto:gradsusr at gradsusr.org>
>> >     >> http://gradsusr.org/mailman/listinfo/gradsusr
>> >     <http://gradsusr.org/mailman/listinfo/gradsusr>
>> >     >
>> >     >
>> >     >
>> >     > --
>> >     > Jeff Duda, Research Scientist
>> >     > University of Colorado Boulder
>> >     > Cooperative Institute for Research in Environmental Sciences
>> >     > NOAA/OAR/ESRL/Global Systems Laboratory
>> >     > Boulder, CO
>> >     > _______________________________________________
>> >     > gradsusr mailing list
>> >     > gradsusr at gradsusr.org <mailto:gradsusr at gradsusr.org>
>> >     > http://gradsusr.org/mailman/listinfo/gradsusr
>> >     <http://gradsusr.org/mailman/listinfo/gradsusr>
>> >
>> >     _______________________________________________
>> >     gradsusr mailing list
>> >     gradsusr at gradsusr.org <mailto:gradsusr at gradsusr.org>
>> >     http://gradsusr.org/mailman/listinfo/gradsusr
>> >     <http://gradsusr.org/mailman/listinfo/gradsusr>
>> >
>> >
>> >
>> > --
>> > Jeff Duda, Research Scientist
>> > University of Colorado Boulder
>> > Cooperative Institute for Research in Environmental Sciences
>> > NOAA/OAR/ESRL/Global Systems Laboratory
>> > Boulder, CO
>> >
>> > _______________________________________________
>> > gradsusr mailing list
>> > gradsusr at gradsusr.org
>> > http://gradsusr.org/mailman/listinfo/gradsusr
>>
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>
>
>
> --
> Jeff Duda, Research Scientist
> University of Colorado Boulder
> Cooperative Institute for Research in Environmental Sciences
> NOAA/OAR/ESRL/Global Systems Laboratory
> Boulder, CO
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr


More information about the gradsusr mailing list