pylab inline
Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline]. For more information, type 'help(pylab)'.
from grads.galab import GaLab # for python interface for grads
def readSSTanomaly():
#read OISST V2 anomary from 1982 to 2010
ga = GaLab(Bin='grads',Window=False,Echo=False,Verb=0,Port=False)
# read SST
script="""
sdfopen sst.mnmean.nc
set time jan1982 dec2010
deseason sst sstanom sstclim JAN1982 DEC2010
"""
ga(script)
sst=ga.exp("sstanom")
script2="""
set lat 0
set lon 180
define nino3=aave(sstanom,lon=210,lon=270,lat=-5,lat=5)
"""
ga(script2)
nino3=ga.expr("nino3")
return sst,nino3
/usr/local/lib/python2.7/dist-packages/mpl_toolkits/__init__.py:2: UserWarning: Module dap was already imported from None, but /usr/lib/python2.7/dist-packages is being added to sys.path __import__('pkg_resources').declare_namespace(__name__)
sst,nino3=readSSTanomaly()
from numba import autojit,jit
import numpy as np
@autojit # @jit('f8[:,:](f8[:],f8[:,:,:])')
def regress(x,Y):
""" calculate 2d correlation
"""
nt,ny,nx=Y.shape
coef=np.zeros((ny,nx),dtype=np.float)
for j in xrange(ny):
for i in xrange(nx):
coef[j,i]=(np.corrcoef(x,Y[:,j,i]))[0,1]
return coef
%timeit coef=regress(nino3,sst)
--------------------- Numba Encountered Errors or Warnings --------------------- nt,ny,nx=Y.shape ----^ Warning 8:4: Unused variable 'nt' -------------------------------------------------------------------------------- 1 loops, best of 3: 5.75 s per loop
/usr/local/lib/python2.7/dist-packages/numpy/lib/function_base.py:2122: RuntimeWarning: invalid value encountered in divide return c/sqrt(multiply.outer(d,d))
coef=regress(nino3,sst)
def readLandSeaMask():
"""
read land sea mask
"""
ga = GaLab(Bin='grads',Window=False,Echo=False,Verb=0,Port=False)
# read landseamask
script="""
sdfopen lsmask.nc
"""
ga(script)
lsmask=ga.exp("MASK")
return lsmask
lsmask=readLandSeaMask()
out=np.ma.masked_array(coef,lsmask<1)
lon=sst.grid.lon
lat=sst.grid.lat
contourf(lon,lat,out,linspace(-1,1,11))
colorbar()
<matplotlib.colorbar.Colorbar instance at 0xa9b4e60>