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.
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