From: Arlindo da S. <da...@al...> - 2009-03-22 15:09:23
|
Mike, You may be the best person to help me out with this. My goal is to have a wrapper function call regrid() which behaves much like Mike's classic regrid2() UDF. The starting point if the re() manual page: http://opengrads.org/doc/udxt/re/ Could you help me compile the difference in syntax between re() and regrid2(). Here is what I am aware of: 1) Shorthand syntax. d regrid2(expr,dlon) d regrid2(expr,dlon,dlat) d regrid2(expr,dlon,dlat,['ig',nyig],['ba'|'bl'|'bs'|'vt',vtmax,vtmin|'ma',min]) These have equivalent syntax in re(), but the behavior is not the same: if the input grid is global and contains the pole, the output grid in re() does not include the poles (pole is now a gridbox edge), while in regrid2() the pole is the center of the gridbox (as in many of the standard lat/lon reanalysis grids these days). B.-J.: Is there a good reason why you chose to shift the global grids off the poles? Would it make sense to have re() nehave like regrid2() in this regard? (Same for the longitudinal grid). Keeping re() as it is, the regrid() wrapper would use the long-hand syntax to get the same rerid2() behavior: d regrid(expr,dlon) --> d re(expr,nlon,'linear',lon0,dlon,nlat,'linear',lat0,dlat,'ba') where lon0 = first longitude on the globe: prime-meridian nlon = 1 + (lonN - lon0)/dlon, lonN = last longitude of input grid dlat = dlon nlat = 1 + (latN - lat0)/dlat, lat0=90S, latN=90N Note: regrid2() appears to always use 'ba' as the interpolation method, while re() uses either 'ba' or 'bl' depending on whether you are from lower to higher resolution, or vice-versa. Mike: could you confirm that this is indeed the behavior. 2) Long-hand I personally find the ctl-like syntax of re() much more intuitive than the original regrid2() general syntax: regrid(G1,X1,X2,C1,X3,X4,X5,X6) G1 = a GrADS grid expression (e.g., z or ave(z.3(t+0,t=120,1yr)) X? = a float parameter C1 = character string parameter REQUIRED params: G1, X1 where: G1 = any valid GrADS grid expression X1 = delta longitude (dlon) or # of gaussian longitudes on the GLOBE X2 = delta latitude (dlat) or # of gaussian latitudes on the GLOBE C1 = character option string X3 = special case options #1 X4 = special case options #2 X5 = special case options #3 X6 = special case options #4 The only reason for supporting the C1/X3-X6 parameters is to make it easier for current users of regrid2() to make the transition. Mike/B.-J.: I'll write a simple wrapper that starts handling the short-hand; could one of you complete the long-hand? Thank you, Arlindo -- Arlindo da Silva da...@al... |