def plotFrame(t): fig.clf() ax=plotAx() cplot=[]; gplot=[]; qplot=[]; bcplot=[] for mat1,ax1 in zip(mat,ax): #Time fig.suptitle(plotter.num2time(t).strftime('%Y-%b-%d %H:%M')) fig.subplots_adjust(bottom=.15,top=.85) it=np.interp(t,mat1['t'],np.arange(0,len(mat1['t']))) rho1=sw.pden(mat1['salt'][:,:,int(it)]*(1.-it%1)+mat1['salt'][:,:,int(it)+1]*(it%1), mat1['temp'][:,:,int(it)]*(1.-it%1)+mat1['temp'][:,:,int(it)+1]*(it%1), 0.0*mat1['temp'][:,:,int(it)]*(1.-it%1)+0.0*mat1['temp'][:,:,int(it)+1]*(it%1) ) salt1=mat1['salt'][:,:,int(it)]*(1.-it%1)+mat1['salt'][:,:,int(it)+1]*(it%1) it=np.interp(t,mat0['t'],np.arange(0,len(mat0['t']))) rho0=sw.pden(mat0['salt'][:,:,int(it)]*(1.-it%1)+mat0['salt'][:,:,int(it)+1]*(it%1), mat0['temp'][:,:,int(it)]*(1.-it%1)+mat0['temp'][:,:,int(it)+1]*(it%1), 0.0*mat0['temp'][:,:,int(it)]*(1.-it%1)+0.0*mat0['temp'][:,:,int(it)+1]*(it%1) ) salt0=mat0['salt'][:,:,int(it)]*(1.-it%1)+mat0['salt'][:,:,int(it)+1]*(it%1) #print([np.nanmax(rho1-rho0),np.nanmin(rho1-rho0)]) cplot1=ax1.contourf(mat1['lon'],mat1['lat'],rho1-rho0,[tick1 for tick1 in np.arange(-5.0,5.01,.25) if np.abs(tick1)>1e-8],cmap=cmap,extend='both') bcplot1=ax1.contour(mat1['lon'],mat1['lat'],salt1,levels=[31.5],colors='k',linewidth=1) it=np.interp(t,mat1['t'],np.arange(0,len(mat1['t']))) u1=mat1['u'][:,:,int(it)]*(1.-it%1)+mat1['u'][:,:,int(it)+1]*(it%1) v1=mat1['v'][:,:,int(it)]*(1.-it%1)+mat1['v'][:,:,int(it)+1]*(it%1) it=np.interp(t,mat0['t'],np.arange(0,len(mat0['t']))) u0=mat0['u'][:,:,int(it)]*(1.-it%1)+mat0['u'][:,:,int(it)+1]*(it%1) v0=mat0['v'][:,:,int(it)]*(1.-it%1)+mat0['v'][:,:,int(it)+1]*(it%1) qplot1=plotter.add_uv2d(ax1,mat1['lon'],mat1['lat'],(u1-u0)*2,(v1-v0)*2) #print([np.nanmin(u1-u0),np.nanmax(u1-u0),np.nanmin(v1-v0),np.nanmax(v1-v0)]) tLim1=3.*int((t-2)/3)+np.array([2.,5.]) obsll=[(lon1,lat1) for (lon1,lat1,type1,t1) in zip(obs['lon'],obs['lat'],obs['type'],obs['t']) if type1==6 and tLim1[0]<=t1<=tLim1[1]] lon1,lat1=zip(*obsll) gplot1=ax1.plot(lon1,lat1,'.',color=(1.,.55,0.),markersize=2,fillstyle='full') #Colorbar fig.subplots_adjust(right=.8) cax=fig.add_axes([.82,.15,.02,.7]) cbar=fig.colorbar(cplot1,cax=cax,orientation='vertical',spacing='proportional') cbar.set_ticks([tick1 for tick1 in np.arange(-5.0,5.01,1.)]) cbar.formatter=ticker.FuncFormatter(lambda x,pos:'{:.1f}'.format(x)) cbar.update_ticks() cbar.set_label(r'Density difference [$\mathrm{kg m^{-3}}$]') cplot.append(cplot1) gplot.append(gplot1) qplot.append(qplot1) bcplot.append(bcplot1) #plt.tight_layout() return cplot,qplot,gplot,bcplot
def plotFrame(t): fig.clf() ax=plotAx() cplot=[]; gplot=[]; qplot=[] for mat1,ax1 in zip(mat,ax): #Time #fig.suptitle(plotter.num2time(t).strftime('%Y-%b-%d %H:%M')) it=np.interp(t,mat1['t'],np.arange(0,len(mat1['t']))) vort1=mat1['vort'][:,:,int(it)]*(1.-it%1)+mat1['vort'][:,:,int(it)+1]*(it%1) cplot1=ax1.contourf(mat1['lon'],mat1['lat'],vort1,[tick1 for tick1 in np.arange(-1.4e-4,1.401e-4,.2e-4) if np.abs(tick1)>1e-8],cmap=cmap,extend='both') u1=mat1['u'][:,:,int(it)]*(1.-it%1)+mat1['u'][:,:,int(it)+1]*(it%1) v1=mat1['v'][:,:,int(it)]*(1.-it%1)+mat1['v'][:,:,int(it)+1]*(it%1) qplot1=plotter.add_uv2d(ax1,mat1['lon'],mat1['lat'],u1,v1) tLim1=3.*int((t-2)/3)+np.array([2.,5.]) obsll=[(lon1,lat1) for (lon1,lat1,type1,t1) in zip(obs['lon'],obs['lat'],obs['type'],obs['t']) if type1==6 and tLim1[0]<=t1<=tLim1[1]] lon1,lat1=zip(*obsll) gplot1=ax1.plot(lon1,lat1,'.',color=(1.,.55,0.),markersize=5,fillstyle='full') ax1.set_title(mat1['name']) #Colorbar fig.subplots_adjust(right=.8) cax=fig.add_axes([.82,.15,.02,.7]) cbar=fig.colorbar(cplot1,cax=cax,orientation='vertical',spacing='proportional') cbar.set_ticks([tick1 for tick1 in np.arange(-1.4e-4,1.401e-4,.2e-4)]) cbar.formatter=ticker.FuncFormatter(lambda x,pos:'{:.1f}'.format(x*1e4)) cbar.update_ticks() cbar.set_label(r'Rel. vorticity [$10^{-4}\,\mathrm{s^{-1}}$]') cplot.append(cplot1) gplot.append(gplot1) qplot.append(qplot1) #plt.tight_layout() return cplot,qplot,gplot
def plotFrame(ax): cplot = [] qplot = [] bcplot = [] for ax1, t in zip(ax, mat1['t']): #Time fig.subplots_adjust(bottom=.15, top=.85) it = np.interp(t, mat1['t'], np.arange(0, len(mat1['t']))) it2 = np.minimum(int(it) + 1, len(mat1['t']) - 1) print([it, it2]) salt1 = mat1['salt'][:, :, int(it)] * ( 1. - it % 1) + mat1['salt'][:, :, it2] * (it % 1) #print([np.nanmax(rho1),np.nanmin(rho1)]) cplot1 = ax1.contourf(mat1['lon'], mat1['lat'], salt1, [tick1 for tick1 in np.arange(24., 33.01, .5)], cmap=cmap, extend='min') bcplot1 = ax1.contour(mat1['lon'], mat1['lat'], salt1, levels=[31.5], colors='k', linewidth=1) it = np.interp(t, mat1['t'], np.arange(0, len(mat1['t']))) u1 = mat1['u'][:, :, int(it)] * ( 1. - it % 1) + mat1['u'][:, :, it2] * (it % 1) v1 = mat1['v'][:, :, int(it)] * ( 1. - it % 1) + mat1['v'][:, :, it2] * (it % 1) qplot1 = plotter.add_uv2d(ax1, mat1['lon'], mat1['lat'], u1, v1) #print([np.nanmin(u1-u0),np.nanmax(u1-u0),np.nanmin(v1-v0),np.nanmax(v1-v0)]) #Add glider obsll = [(lon1, lat1) for (lon1, lat1, type1, t1) in zip(obs['lon'], obs['lat'], obs['type'], obs['t']) if type1 == 6] lon1, lat1 = zip(*obsll) gplot1 = ax1.plot(lon1, lat1, '.', color=(1., .55, 0.), markersize=2, fillstyle='full') ax1.set_title(plotter.num2time(t).strftime('%m/%d/%y')) #Colorbar fig.subplots_adjust(right=.8) cax = fig.add_axes([.82, .15, .02, .7]) cbar = fig.colorbar(cplot1, cax=cax, orientation='vertical', spacing='proportional') cbar.set_ticks([tick1 for tick1 in np.arange(24.0, 33.01, 1.)]) cbar.formatter = ticker.FuncFormatter( lambda x, pos: '{:.0f}'.format(x)) cbar.update_ticks() cbar.set_label(r'Salinity [$\mathrm{ppt}$]') cplot.append(cplot1) qplot.append(qplot1) bcplot.append(bcplot1) #plt.tight_layout() return cplot, qplot, bcplot