Ngl.vinth2p
Interpolates CCSM hybrid coordinates to pressure coordinates.
Prototype
array = Ngl.vinth2p(datai, hbcofa, hbcofb, plevo, psfc, intyp, p0, ii, kxtrp)
Arguments
dataiA NumPy array of 3 or 4 dimensions. This array needs to contain a level dimension in hybrid coordinates. The order of the dimensions is specific. The three rightmost dimensions must be level x lat x lon [e.g. TS(time,lev,lat,lon)]. The order of the level dimension must be top-to-bottom.
hbcofaA one-dimensional NumPy array or Python list containing the hybrid A coefficients. Must have the same dimension as the level dimension of datai. The order must be top-to-bottom.
hbcofbA one-dimensional NumPy array or Python list containing the hybrid B coefficients. Must have the same dimension as the level dimension of datai. The order must be top-to-bottom.
plevoA one-dimensional NumPy array of output pressure levels in mb.
psfcA multi-dimensional NumPy array of surface pressures in Pa. Must have the same dimension sizes as the corresponding dimensions of datai.
intypA scalar integer value equal to the interpolation type: 1 = LINEAR, 2 = LOG, 3 = LOG LOG.
p0A scalar value equal to surface reference pressure in mb.
iiNot used at this time. Set to 1.
kxtrpA logical value. If False, then no extrapolation is done when the pressure level is outside of the range of psfc.
Return value
arrayA multi-dimensional NumPy array of the same shape as datai, except that the input level coordinate has been replaced by plevo.
Description
This function interpolates CCSM hybrid coordinates to pressure coordinates. The type of interpolation is currently a variant of transformed pressure coordinates with the interpolation type specified by intyp. All hybrid coordinate values are transformed to pressure values. If datai is on midlevels, then hyam/hybm coefficients should be input; If datai is on interfaces, then hyai/hybi) coefficients should be input.
This is the exact routine used within the CCSM Processor. Note that the units for psfc are Pascals (Pa) whereas the units for plevo and p0 are millibars (mb).
Examples
See the PyNGL script vinth2p.py.