[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 20041027: Time interpolation?
- Subject: Re: 20041027: Time interpolation?
- Date: Wed, 27 Oct 2004 15:34:01 -0400
Thanks, this is exactly what I need!
Regards,
--
Christian Pagé
http://meteocentre.com/ http://meteoalerte.com/
Etudiant au Doctorat en Sciences de l'environnement UQAM
On 27 Oct 2004 13:13:10 -0600, Steve Chiswell <address@hidden> wrote:
> On Wed, 2004-10-27 at 12:11, Christian Pagé wrote:
> > Hi everyone,
> >
> > Is there a way to do time interpolation in gempak with a grid file?
> > I have 3-hourly data model data that I would like to interpolate to
> > 1-hourly data. Is it possible?
> >
> > Thanks
>
> Christian,
>
> You can use GDDIAG and interpolate a field using the formula:
> Xi = X0 + ( X1 - X0)/(t1 - t0) * (ti - t0)
> where ti is a time in the range t0 to t1.
>
> As example, here is a script that would interpolate the 3 hourly 500mb
> heights in the eta212 to the f+1 and f+2 times for a a starting forcast
> time, and looped for each 3 hourly forecast interval. The desired
> function could also be looped though the desired parameters as well.
> Note that gddiag is runs twice for each 3 hour forecast interval,
> the first for t+1 hour and the second for t+2 hours.
>
> Also, you can use the ddt(s) function in place of the sub(s1,s2) and
> use the GDATTIM=time1:time2 time interval.
>
> Steve Chiswell
> Unidata User Support
>
> #!/bin/csh -f
>
> # set starting forecast hour and forecast increment
> @ START = 0
> @ INC = 3
>
> # set model run time
> set MODTIME="041027/1200"
>
> # initialize forecast time array
> set FTIM=("" "" "" "")
>
> while ( $START < 84 )
> @ STOP = $START + $INC
>
> @ TN1 = $START + 1
> @ TN2 = $START + 2
>
> # create forecast fxxx strings
> set TARR=(${START} $TN1 $TN2 $STOP)
> @ CNT = 1
> while ( $CNT <= 4 )
> if ( $TARR[$CNT] < 10 ) then
> set FTIM[$CNT] = f00${TARR[$CNT]}
> else
> set FTIM[$CNT] = f0${TARR[$CNT]}
> endif
> echo look $CNT $TARR[$CNT] ftim $FTIM[$CNT]
> @ CNT = $CNT + 1
> end
>
> gddiag << EOF
> GDFILE = eta212|${MODTIME}
> GDOUTF = eta212|${MODTIME}
> GFUNC = add(hght,mul(quo(sub(hght^${FTIM[4]},hght),${INC}),1)
> GDATTIM = $FTIM[1]
> GLEVEL = 500
> GVCORD = pres
> GRDNAM = hght^${MODTIME}${FTIM[2]}
> GPACK = grib
> GRDHDR =
> r
>
> GFUNC = add(hght,mul(quo(sub(hght^${FTIM[4]},hght),${INC}),2)
> GRDNAM = hght^${MODTIME}${FTIM[3]}
> r
>
> e
> EOF
>
> @ START = $START + $INC
> end
>
>