This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
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 > >