#! /usr/bin/env python from netCDF4 import Dataset from numpy import * import numpy as np import matplotlib.pyplot as mpl from matplotlib.cm import get_cmap import pylab from matplotlib import ticker import matplotlib.colors as colors import datetime from mpl_toolkits.basemap import Basemap, shiftgrid from FV3_utils import * ############################ fa='sans-serif' hfont = {'fontname':'Arial'} mpl.rc('font',family=fa) mpl.rc('pdf',fonttype=42) font=30 cc=['k'] pal=get_cmap(name="rainbow") norm=colors.LogNorm() #lvls=np.logspace(-6,-4,21) norm=None #colors.LogNorm() lvls=np.linspace(37,57,21) ### Data name2=name+'.nc' # name=name+'_A.nc' name=name+'.nc' print("Plot "+name) nc1=Dataset(name) nc2=Dataset(name2) ts=nc2.variables["temperature"][:,0,:,:] # ts=nc2.variables["tsurf"][:,:,:] u=nc1.variables["u"][:,:,:,:] v=nc1.variables["v"][:,:,:,:] lat=nc1.variables["lat"][:] alt=nc1.variables["altitude"][:] lon=nc1.variables["lon"][:] ps=nc2.variables["ps"][:,:] # ps=nc2.variables["phisinit"][:,:]/0.6169/1000. # altitude km numalt=getind(1,alt) # numalt=getind(1000,alt) print('numalt =',numalt,'altitude=',alt[numalt]) u=u[:,numalt,:,:] v=v[:,numalt,:,:] u=np.mean(u,axis=0) v=np.mean(v,axis=0) ts=np.mean(ts,axis=0) ps=np.mean(ps,axis=0) ts=switchlon(ts) u=switchlon(u) v=switchlon(v) # ps=switchlon(ps) # topo=switchlon(topo) # lon=lon+180. ### Figure fig=mpl.figure(figsize=(20, 10)) # CF=mpl.contourf(lon, lat, ts,lvls,cmap=pal,norm=norm,extend='both') # cbar=mpl.colorbar(CF, shrink=1, ticks=lvls[::2]) #,format="%1.0f") # cbar.ax.set_title("[K]",y=1.04,fontsize=font) # for t in cbar.ax.get_yticklabels(): # t.set_fontsize(font) # mpl.title('Surface temperatures and winds',fontsize=font) #vect=lvls # CS=mpl.contour(lon,lat,topo,np.linspace(-6,6,21),colors='k',linewidths=0.5) #lab=mpl.clabel(CS, inline=1, fontsize=20, fmt='%1.2e',inline_spacing=1) #for l in lab: # l.set_rotation(0) CF=mpl.contourf(lon, lat, ps,cmap=pal,norm=norm,extend='both') cbar=mpl.colorbar(CF, label="Pa") cbar.set_label("Pa", size=font) for t in cbar.ax.get_yticklabels(): t.set_fontsize(font) mpl.title('Surface pressures and winds',fontsize=font) getwinds(lon,lat,u,v,1,1,100,0.002,5) mpl.grid() mpl.ylabel(r'Latitude',labelpad=10,fontsize=font) mpl.xlabel('Longitude',labelpad=10, fontsize=font) pylab.ylim([-90,90]) yticks=np.linspace(-90,90,13) pylab.xlim([0,360]) xticks=np.linspace(0,360,7) mpl.yticks(yticks,fontsize=font) mpl.xticks(xticks,fontsize=font) mpl.tight_layout() mpl.savefig('mapwinds1km.png',bbox_inches='tight',dpi=70) mpl.show() #######################