def plotu(dirname): import pickle from pylab import * import math from uplotfunc import upf ion() from readjet2h import readjet2h vardict=readjet2h(dirname) locals().update(vardict) predir='/data/ilebras/twolayer-jets-climate/' [psi,q,qfull,u,v,h,hbp,x,y]=pickle.load(open(predir+'pickles/quickfields/'+dirname+'_qfield.p', 'r' )) [L,beta_dim,f0_dim,h1]=pickle.load(open('/data/ilebras/twolayer-jets-climate/pickles/dimize.p','r')) U=beta_dim*L**2/beta1 # xmid=x[:-1]+diff(x)/2 # ymid=y[:-1]+diff(y)/2 [xmmat,ymmat]=meshgrid(x,y) # um1p=u['m1'][:-1,:]+diff(u['m1'],axis=0)/2 # vm1p=v['m1'][:,:-1]+diff(v['m1'],axis=1)/2 # ui1p=u['i1'][:-1,:]+diff(u['i1'],axis=0)/2 # vi1p=v['i1'][:,:-1]+diff(v['i1'],axis=1)/2 # um2p=u['m2'][:-1,:]+diff(u['m2'],axis=0)/2 # vm2p=v['m2'][:,:-1]+diff(v['m2'],axis=1)/2 # ui2p=u['i2'][:-1,:]+diff(u['i2'],axis=0)/2 # vi2p=v['i2'][:,:-1]+diff(v['i2'],axis=1)/2 umag={} uang={} umag['m1']=np.sqrt(u['m1']**2+v['m1']**2)*U uang['m1']=zeros((n,m)) for i in range(n-1): for j in range(m-1): uang['m1'][i,j]=math.atan2(v['m1'][i,j],u['m1'][i,j]) umag['i1']=np.sqrt(u['i1']**2+v['i1']**2)*U uang['i1']=zeros((n,m)) for i in range(n-1): for j in range(m-1): uang['i1'][i,j]=math.atan2(v['i1'][i,j],u['i1'][i,j]) umag['m2']=np.sqrt(u['m2']**2+v['m2']**2)*U uang['m2']=zeros((n,m)) for i in range(n-1): for j in range(m-1): uang['m2'][i,j]=math.atan2(v['m2'][i,j],u['m2'][i,j]) umag['i2']=np.sqrt(u['i2']**2+v['i2']**2)*U uang['i2']=zeros((n,m)) for i in range(n-1): for j in range(m-1): uang['i2'][i,j]=math.atan2(v['i2'][i,j],u['i2'][i,j]) upf(umag,uang,'uall',dirname,xmmat,ymmat,30,90,mspo,0) upf(umag,uang,'unorth',dirname,xmmat,ymmat,6,90,mspo,400)
def loadmeans(dirname): import numpy as np import fortranfile from pylab import * import pickle import os from operators import * from uplotfunc import upf import math from readjet2h import readjet2h vardict=readjet2h(dirname) locals().update(vardict) [L,beta_dim,f0_dim,h1]=pickle.load(open('/data/ilebras/twolayer-jets-climate/pickles/dimize.p','r')) U=beta_dim*L**2/beta1 gprime=f0_dim**2*L**2/h1/fr1 h2=f0_dim**2*L**2/gprime/fr2 f0_nd=f0_dim*L/U #define x and y (m) x=arange(xmin,xmax,(xmax-xmin)/n) y=arange(ymin,ymax,(ymax-ymin)/m) dx=(xmax-xmin)/(n-1) dy=(ymax-ymin)/(m-1) dx2=dx**2 tdx=1.0/(2.0*dx) tdy= 1.0/(2.0*dy) t4dx=1.0/(8.0*dx) t4dy=1.0/(8.0*dy) t4dx2=1.0/(4.0*dx2) t4dxdy=1.0/(4.0*dx*dy) t4dy2=1.0/(4.0*dy**2) twdx2=1.0/(12.0*dx2) betay_vec=beta1*y/L betay=tile(betay_vec,(n,1)) predir='/data/ilebras/twolayer-jets-climate/' rundir=predir+'testing/'+dirname+'/' #--------move on to load psi-------------- psi={} pload=fortranfile.FortranFile(rundir+'pm1.dat') pvec=pload.readReals() pm1=pvec.reshape(n,m,order='F') psi['m1']=pm1 pload=fortranfile.FortranFile(rundir+'pm2.dat') pvec=pload.readReals() pm2=pvec.reshape(n,m,order='F') psi['m2']=pm2 # #--------and then calculate q (zeta)-------------- q={} q['m1']=gradxx(psi['m1'],t4dx2,n,m)+gradyy(psi['m1'],t4dy2,n,m) q['m2']=gradxx(psi['m2'],t4dx2,n,m)+gradyy(psi['m2'],t4dy2,n,m) #--------if there is bottom topography, plot it----- try: pload=fortranfile.FortranFile(rundir+'hbt.dat') pvec=pload.readReals() hb=pvec.reshape(n,m,order='F') except: hb=zeros((n,m)) hbp=hb #--------and then plot qfull= q +fr(psi-psi, depending) + betay + hb-------- qfull={} qfull['m1']=q['m1']*L/U+betay+fr1*(psi['m2']-psi['m1'])+f0_nd qfull['m2']=q['m2']*L/U+betay+fr2*(psi['m1']-psi['m2'])+hb+f0_nd #--------calculate a few more things leading up to transport-------- u={} v={} u['m1']=-grady(psi['m1'],t4dy,n,m) u['m2']=-grady(psi['m2'],t4dy,n,m) v['m1']=gradx(psi['m1'],t4dx,n,m) v['m2']=gradx(psi['m2'],t4dx,n,m) umag={} uang={} umag['m1']=np.sqrt(u['m1']**2+v['m1']**2) uang['m1']=zeros((n,m)) for i in range(n-1): for j in range(m-1): uang['m1'][i,j]=math.atan2(v['m1'][i,j],u['m1'][i,j]) umag['m2']=np.sqrt(u['m2']**2+v['m2']**2) uang['m2']=zeros((n,m)) for i in range(n-1): for j in range(m-1): uang['m2'][i,j]=math.atan2(v['m2'][i,j],u['m2'][i,j]) umag['i1']=umag['m1'] umag['i2']=umag['m2'] uang['i1']=uang['m1'] uang['i2']=uang['m2'] #xmid=x[:-1]+diff(x)/2 #ymid=y[:-1]+diff(y)/2 [xmmat,ymmat]=meshgrid(x,y) if not os.path.exists(predir+'pickles/quickfields/'+dirname[:6]): os.mkdir(predir+'pickles/quickfields/'+dirname[:6]) pickle.dump([psi,q,qfull,u,v,x,y], open(predir+'pickles/quickfields/'+dirname+'_qfield_tm.p', 'w' ) ) upf(umag,uang,'umeantest',dirname,xmmat,ymmat,6,90,mspo,400)