def hybToPress(self, x, pnew, ps, Extrapolate, FillValue): # interpolate from hybrid levels to pressure levels p p = (self.hyam[:, None, None] * self.p0 + self.hybm[:, None, None] * ps[None, :, :]) / 100.0 pnew = pnew[:, None, None] + ps[None, :, :] * 0.0 xnew = vinterpol(p, x, pnew, Extrapolate=Extrapolate, FillValue=FillValue) return xnew
def interpolate(self,xold,ps,p): pnew = p[:,None,None] + ps[None,:,:]*0. pold = (self.hyam[:,None,None]+self.hybm[:,None,None]*ps[None,:,:])/100. xnew = vinterpol(pold,xold,pnew,Extrapolate=False,FillValue=self.FillValue) return xnew