cm = False try: extend = PL["extend"] except KeyError: extend = False cb = p.plot2D( vrbl, utc=t, level=PL["lv"], ncdir=ncdir, outdir=False, fig=fig, ax=ax, cb=False, clvs=PL["clvs"], nct=nct, plottype="contourf", cmap=cm, extend=extend, save=False, **lims ) if not cb_saved[vrbl]: p.plot2D( vrbl, utc=t, level=PL["lv"], ncdir=ncdir,
cmap = False # vrbl = 'dptp';lv=2000;clvs=N.arange(-20,1,1);cmap='terrain';extend='min' # vrbl = 'wind10';lv = 2000;clvs=N.arange(10,40,5);sm=False;extend='max'; cmap='jet'; # vrbl = 'wind';lv = lvl;clvs=N.arange(10,40,5);False;sm=False;cmap='jet';extend='max' ######### COMMAND HERE ######### if plot != 'RUC': cb = p.plot2D(vrbl, utc=t, level=lv, ncdir=ncdir, outdir=outdir, fig=fig, ax=ax, cb=False, clvs=clvs, nct=nct, match_nc=mnc, other=other, smooth=sm, plottype=pt, save=False, dom=dom, extend=extend, cmap=cmap, **lims) # cb = p.plot2D(vrbl,utc=t,level=lv,ncdir=ncdir,outdir=outdir,fig=fig,ax=ax,cb=cb,clvs=clvs,nct=nct,match_nc=mnc,other=other,smooth=sm,plottype=pt) # p.frontogenesis(utc=t,level=lv,ncdir=ncdir,outdir=outdir,clvs=clvs,smooth=5,fig=fig,ax=ax,cb=False,match_nc=mnc,nct=nct) # if plot!='RUC': cb = p.plot_strongest_wind(iwind,fwind,ncdir=ncdir,outdir=outdir,clvs=clvs,fig=fig,ax=ax,cb=False,nct=nct,dom=dom,save=False) ################################ if plot is not 'RUC': try:
if strongestwind: p.plot_strongest_wind(iwind,fwind,2000,ncdir=ncdir,nct=nct,outdir=outdir,clvs=windlvs,dom=dom, cmap='jet',cb=True) for t in times: if plot2D: # p.plot2D('Z',t,500,wrf_sd=wrf_sd,out_sd=out_sd,plottype='contour',smooth=10) # p.plot2D('Td2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(260,291,1)) # p.plot2D('Q2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(1,20.5,0.5)*10**-3) # p.plot2D('RAINNC',t,ncdir=wrf_sd,outdir=out_sd,locations=locs,clvs=N.arange(1,100,2)) # p.plot2D('fluidtrapping',t,ncdir=ncroot,nct=nct,outdir=outdir,cb=True,dom=dom,clvs=N.arange(-1,1,0.1)*10**-6) # p.plot2D('lyapunov',t,700,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom,clvs=N.arange(-7.5,8.0,0.5)*10**-3,cmap='bwr') # print(ncdir) # p.plot2D('WSPD10MAX',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom,clvs=N.arange(10,31,1)) p.plot2D('cref',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom,**lims) # p.plot2D('REFL_comp',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom) # p.plot2D('shear',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom) # p.plot2D('wind10',t,ncdir=ncdir,outdir=outdir,locations=locs,cb=True,clvs=N.arange(5,32,2)) if radarplot: verifdir = '/chinook2/jrlawson/bowecho/{0}/VERIF'.format(case) p.plot_radar(t,verifdir,outdir=outdir,ncdir=ncroot,nct=nct,dom=dom) if axesofdilatation: outdir = os.path.join(outroot,'hires','d0{0}'.format(dom)) for t in times: p.plot_axes_of_dilatation(utc=t,ncdir=ncroot,nct=nct,outdir=outdir,cb=True,dom=dom) if radarcomp: en = ensnames[0]
outdir, ncdir = get_folders(en,ex) p.plot_skewT(skewT_time,latlon=skewT_latlon,outdir=outdir,ncdir=ncdir) locs = {'Norman':(35.2,-97.4)} if plot2D or radarplot: for en in ensnames: for ex in experiments: for t in times: outdir, ncdir = get_folders(en,ex) if plot2D: # p.plot2D('Z',t,500,wrf_sd=wrf_sd,out_sd=out_sd,plottype='contour',smooth=10) # p.plot2D('Td2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(260,291,1)) # p.plot2D('Q2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(1,20.5,0.5)*10**-3) # p.plot2D('RAINNC',t,ncdir=wrf_sd,outdir=out_sd,locations=locs,clvs=N.arange(1,100,2)) # p.plot2D('REFL_comp',t,ncdir=ncdir,outdir=outdir,cb=True,match_nc=matchnc) p.plot2D('cref',t,ncdir=ncdir,outdir=outdir,cb=True) # p.plot2D('wind10',t,ncdir=ncdir,outdir=outdir,locations=locs,cb=True,clvs=N.arange(10,32,2)) if radarplot: outdir,datadir = get_verif_dirs() p.plot_radar(t,datadir,outdir=outdir,ncdir=ncdir) if radarcomp: en = ensnames[0] ex = experiments[0] out_sd, wrf_sd = get_folders(en,ex) outdir, datadir = get_verif_dirs() # p.plot_radar(compt,datadir,outdir,ncdir=wrf_sd,composite=True) p.plot_radar(compt,datadir,outdir,composite=True, # Nlim=40.1,Elim=-94.9,Slim=34.3,Wlim=-100.8) Nlim=42.7,Elim=-94.9,Slim=37.0,Wlim=-101.8)
'color': '#9966FF', 'clvs': N.arange(660, 2100, 30), 'z': 1 } for lv in levels: try: im = p.plot2D( 'Z', utc=utc, level=lv, ncdir=RUCdir, outdir=outdir, fig=fig, ax=ax, cb=False, clvs=levels[lv]['clvs'], nct=utc, match_nc=False, smooth=10, plottype='contour', color=levels[lv]['color'], inline=True, ) # Nlim=Nlim,Elim=Elim,Slim=Slim,Wlim=Wlim) except: continue fpath = os.path.join(outdir, outstr + '_overview.png') fig.tight_layout() fig.savefig(fpath) plt.close(fig)
p = WRFEnviron() for case in NC: times = utils.generate_times(NC[case]['itime'],NC[case]['ftime'],hourly*60*60) for tn, t in enumerate(times): mnc = os.path.join(NC[case]['Gncdir'],NC[case]['Gnc']) fig,axes = plt.subplots(nrow,ncol,figsize=(6,6)) axn = 0 for vrbl in PLOT.keys(): for lv,clvs in PLOT[vrbl].items(): for model,ncdir in zip(['RUC','GEFSR2','NAM'],(NC[case]['Rncdir'],NC[case]['Gncdir'],NC[case]['Nncdir'])): if model=='RUC': nct = t else: nct = NC[case]['nct'] cb = p.plot2D(vrbl,utc=t,level=lv,ncdir=ncdir,fig=fig,ax=axes.flat[axn],cb=False,clvs=clvs,nct=nct,smooth=sm,plottype=pt,save=False,match_nc=mnc) axes.flat[axn].set_title('{0} {1}'.format(model,lv)) axn += 1 fnameout = fname+'_{0:04d}_{1:02d}h.png'.format(NC[case]['nct'][0],tn*hourly) fpath = os.path.join(outroot,fnameout) fig.tight_layout() fig.savefig(fpath) print('Saved to {0}'.format(fpath))
# Create list of times itime = (2013, 8, 16, 1, 0, 0) ftime = (2013, 8, 16, 5, 0, 0) hourly = 1 times = p.generate_times(itime, ftime, hourly * 60 * 60) levels = (2000, ) vrbls = ('cref', ) # import pdb; pdb.set_trace() # Plot standard 2D plots if plot2D: for t in times: for lv in levels: for v in vrbls: p.plot2D(v, t, lv, ncdir, outdir) # Streamline 2D plots if streamlines: for t in times: for lv in levels: p.plot_streamlines(t, lv, ncdir, outdir, smooth=5) # Skew Ts # skewT_time = (2013,8,16,3,0,0) # skewT_latlon = (35.2435,-97.4708) # p.plot_skewT(skewT_time,skewT_latlon) # DKE # p.compute_diff_energy('sum_z','total',path_to_wrfouts,times, # d_save=picklefolder, d_return=0,d_fname=pfname)
# vrbl = 'strongestwind';lv=False;clvs = N.arange(10,31,1); tstr=False;extend='max';cmap='jet' # vrbl = 'RH';lv = 700;clvs=N.arange(0,105,5) # vrbl = 'Q2';lv = False;clvs=N.arange(1,20.5,0.5)*10**-3 # vrbl = 'Z';lv = 300;clvs=N.arange(8400,9600,30); pt='contour';sm=sm*3 # vrbl = 'Z';lv = 700;clvs=N.arange(2800,3430,30); pt='contour';sm=sm*3 # vrbl='Z';lv=500;clvs=N.arange(5000,6000,50);pt='contour';sm=sm*3 # vrbl = 'T2';lv = False;clvs=N.arange(280,316,1) # vrbl = 'shear';lv = False;clvs=N.arange(5,36,1); other = {'top':6,'bottom':0};extend='max';cmap='YlGnBu' # vrbl = 'Q_pert';lv=800;clvs=N.arange(-0.005,0.0051,0.0001);cmap='BrBG';extend='both' # vrbl = 'frontogen';lv = 2000; clvs = N.arange(-1.5,1.6,0.1)*10**-7 vrbl = 'cref';lv = False;clvs=False;sm=False;extend=False;cmap=False # vrbl = 'dptp';lv=2000;clvs=N.arange(-20,1,1);cmap='terrain';extend='min' # vrbl = 'wind10';lv = 2000;clvs=N.arange(10,40,5);sm=False;extend='max'; cmap='jet'; # vrbl = 'wind';lv = lvl;clvs=N.arange(10,40,5);False;sm=False;cmap='jet';extend='max' ######### COMMAND HERE ######### if plot!='RUC': cb = p.plot2D(vrbl,utc=t,level=lv,ncdir=ncdir,outdir=outdir,fig=fig,ax=ax,cb=False,clvs=clvs,nct=nct,match_nc=mnc,other=other,smooth=sm,plottype=pt,save=False,dom=dom,extend=extend,cmap=cmap,**lims) # cb = p.plot2D(vrbl,utc=t,level=lv,ncdir=ncdir,outdir=outdir,fig=fig,ax=ax,cb=cb,clvs=clvs,nct=nct,match_nc=mnc,other=other,smooth=sm,plottype=pt) # p.frontogenesis(utc=t,level=lv,ncdir=ncdir,outdir=outdir,clvs=clvs,smooth=5,fig=fig,ax=ax,cb=False,match_nc=mnc,nct=nct) # if plot!='RUC': cb = p.plot_strongest_wind(iwind,fwind,ncdir=ncdir,outdir=outdir,clvs=clvs,fig=fig,ax=ax,cb=False,nct=nct,dom=dom,save=False) ################################ if plot is not 'RUC': try: make_subplot_label(ax,labels[pn]) except IndexError: pass else: pn += 1 print(("Plotting {0} panel".format(plot))) if plot=='ICBC': axtitle = 'Control' elif plot=='RUC':
ctrl_fpath = os.path.join(ctrl_dir,W_fname) radar_datadir = os.path.join('/chinook2/jrlawson/bowecho/',case[:8],'VERIF') fhr_ = utc-nct # import pdb; pdb.set_trace() totalsec = fhr_.seconds + 24*60*60*(fhr_.days) fhr = '{0:02d}'.format(totalsec/(60*60)) DATA = {} if plotfig: p = WRFEnviron() fig, axes = plt.subplots(3,4,figsize=(8,6)) if use_radar_obs: p.plot_radar(utc,radar_datadir,ncdir=ctrl_dir,fig=fig,ax=axes.flat[0],cb=False,nct=nct,dom=dom) axes.flat[0].set_title("NEXRAD") else: p.plot2D(vrbl,utc,fig=fig,ax=axes.flat[0],ncdir=ctrl_dir,nct=nct,cb=False,dom=dom,accum_hr=accum_hr,clvs=clvs) axes.flat[0].set_title("Ctrl") else: axes = N.array([False,] * 12) if use_radar_obs: ctrl_fpath = False else: radar_datadir = False print(("----- {0}\t{1} ------".format(nest,utc))) # for ens in ensnames[0:1]: for ens,ax in zip(ensnames,axes.flat[1:12]): # if ens=='s21': # continue # import pdb; pdb.set_trace()
# Create list of times itime = (2013,8,16,1,0,0) ftime = (2013,8,16,5,0,0) hourly = 1 times = p.generate_times(itime,ftime,hourly*60*60) levels = (2000,) vrbls = ('cref',) # import pdb; pdb.set_trace() # Plot standard 2D plots if plot2D: for t in times: for lv in levels: for v in vrbls: p.plot2D(v,t,lv,ncdir,outdir) # Streamline 2D plots if streamlines: for t in times: for lv in levels: p.plot_streamlines(t,lv,ncdir,outdir,smooth=5) # Skew Ts # skewT_time = (2013,8,16,3,0,0) # skewT_latlon = (35.2435,-97.4708) # p.plot_skewT(skewT_time,skewT_latlon) # DKE # p.compute_diff_energy('sum_z','total',path_to_wrfouts,times, # d_save=picklefolder, d_return=0,d_fname=pfname)
title = ens[:-4].replace('_',' ') ax.set_title(title) make_subplot_label(ax,labels[n]) try: cm = PL['cmap'] except KeyError: cm = False try: extend = PL['extend'] except KeyError: extend = False cb = p.plot2D(vrbl,utc=t,level=PL['lv'],ncdir=ncdir,outdir=False,fig=fig,ax=ax,cb=False, clvs=PL['clvs'],nct=nct,plottype='contourf',cmap=cm,extend=extend,save=False, **lims) if not cb_saved[vrbl]: p.plot2D(vrbl,utc=t,level=PL['lv'],ncdir=ncdir,outdir=outdir, f_suffix=False,cb='only', clvs=PL['clvs'],nct=nct,plottype='contourf',cmap=cm,extend=extend, **lims) # if vrbl is not 'dptp': cb_saved[vrbl] = True fig.tight_layout() fig.subplots_adjust(bottom=0.12,top=0.94) # cbar_ax = fig.add_axes([0.15,0.075,0.7,0.025]) cbar_ax = fig.add_axes([0.15,0.06,0.7,0.02]) cb1 = plt.colorbar(cb,cax=cbar_ax,orientation='horizontal')#,extend='both')
for tn,t in enumerate(times): print(("Creating row for time #{0} of {1}.".format(tn+1,len(times)))) # Verification ax = next(axit) p.plot_radar(t,radar_datadir,ncdir=ncdir['SINGLE'],fig=fig,ax=ax,cb=False,nct=nct,dom=1,**lims) make_subplot_label(ax,next(labels)) if tn == 0: ax.set_title(next(pltitle)) # Sim cref for vrbl, nest in zip(('cref','cref','dptp','dptp'),('SINGLE','NESTED','SINGLE','NESTED')): print((vrbl, nest)) ax = next(axit) cb[vrbl] = p.plot2D(vrbl,utc=t,level=PLOTS[vrbl]['lv'],ncdir=ncdir[nest],outdir=False,fig=fig,ax=ax,cb=False, clvs=PLOTS[vrbl]['clvs'],nct=nct,plottype='contourf',cmap=PLOTS[vrbl]['cmap'], extend=PLOTS[vrbl]['extend'],save=False,**lims) if tn == 0: ax.set_title(next(pltitle)) make_subplot_label(ax,next(labels)) ax.text(1.1,0.5,next(nicetimes),transform=ax.transAxes) fig.tight_layout() fig.subplots_adjust(bottom=0.13,right=0.92) # cbar_ax = fig.add_axes([0.15,0.075,0.7,0.025]) cbar_ax1 = fig.add_axes([0.245,0.08,0.27,0.02]) cbar_ax2 = fig.add_axes([0.615,0.08,0.27,0.02]) for cbar_ax, vrbl in zip((cbar_ax1,cbar_ax2),('cref','dptp')): cbx = plt.colorbar(cb[vrbl],cax=cbar_ax,orientation='horizontal')#,extend='both') cbx.set_label(PLOTS[vrbl]['cbl'])
outdir=outdir, ncdir=ncdir) locs = {'Norman': (35.2, -97.4)} if plot2D or radarplot: for en in ensnames: for ex in experiments: for t in times: outdir, ncdir = get_folders(en, ex) if plot2D: # p.plot2D('Z',t,500,wrf_sd=wrf_sd,out_sd=out_sd,plottype='contour',smooth=10) # p.plot2D('Td2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(260,291,1)) # p.plot2D('Q2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(1,20.5,0.5)*10**-3) # p.plot2D('RAINNC',t,ncdir=wrf_sd,outdir=out_sd,locations=locs,clvs=N.arange(1,100,2)) # p.plot2D('REFL_comp',t,ncdir=ncdir,outdir=outdir,cb=True,match_nc=matchnc) p.plot2D('cref', t, ncdir=ncdir, outdir=outdir, cb=True) # p.plot2D('wind10',t,ncdir=ncdir,outdir=outdir,locations=locs,cb=True,clvs=N.arange(10,32,2)) if radarplot: outdir, datadir = get_verif_dirs() p.plot_radar(t, datadir, outdir=outdir, ncdir=ncdir) if radarcomp: en = ensnames[0] ex = experiments[0] out_sd, wrf_sd = get_folders(en, ex) outdir, datadir = get_verif_dirs() # p.plot_radar(compt,datadir,outdir,ncdir=wrf_sd,composite=True) p.plot_radar( compt, datadir,
print(utc) # import pdb; pdb.set_trace() if plot_Z: fig, ax = plt.subplots() levels = {} # levels[300] = {'color':'blue','clvs':N.arange(8400,9600,120)} # levels[500] = {'color':'black','clvs':N.arange(4800,6000,60)} # levels[850] = {'color':'red','clvs':N.arange(900,2100,30)} levels[500] = {'color':'black','clvs':N.arange(5460,6000,60),'z':10} levels[925] = {'color':'#9966FF','clvs':N.arange(660,2100,30),'z':1} for lv in levels: try: im = p.plot2D('Z',utc=utc,level=lv,ncdir=RUCdir,outdir=outdir, fig=fig,ax=ax,cb=False,clvs=levels[lv]['clvs'],nct=utc,match_nc=False, smooth=10,plottype='contour',color=levels[lv]['color'],inline=True,) # Nlim=Nlim,Elim=Elim,Slim=Slim,Wlim=Wlim) except: continue fpath = os.path.join(outdir,outstr+'_overview.png') fig.tight_layout() fig.savefig(fpath) plt.close(fig) if plot_T_adv: levels = {} levels[700] = {'clvs':N.arange(-5,5.51,0.5)*0.0001} levels[850] = {'clvs':N.arange(-5,5.5,0.5)*0.0001} for lv in levels:
except KeyError: cm = False try: extend = PL['extend'] except KeyError: extend = False cb = p.plot2D( vrbl, utc=t, level=PL['lv'], ncdir=ncdir, outdir=False, fig=fig, ax=ax, cb=False, clvs=PL['clvs'], nct=nct, plottype='contourf', cmap=cm, extend=extend, save=False, **lims) if not cb_saved[vrbl]: p.plot2D( vrbl, utc=t, level=PL['lv'], ncdir=ncdir, outdir=outdir,
if tn == 0: ax.set_title(next(pltitle)) # Sim cref for vrbl, nest in zip(('cref', 'cref', 'dptp', 'dptp'), ('SINGLE', 'NESTED', 'SINGLE', 'NESTED')): print((vrbl, nest)) ax = next(axit) cb[vrbl] = p.plot2D(vrbl, utc=t, level=PLOTS[vrbl]['lv'], ncdir=ncdir[nest], outdir=False, fig=fig, ax=ax, cb=False, clvs=PLOTS[vrbl]['clvs'], nct=nct, plottype='contourf', cmap=PLOTS[vrbl]['cmap'], extend=PLOTS[vrbl]['extend'], save=False, **lims) if tn == 0: ax.set_title(next(pltitle)) make_subplot_label(ax, next(labels)) ax.text(1.1, 0.5, next(nicetimes), transform=ax.transAxes) fig.tight_layout() fig.subplots_adjust(bottom=0.13, right=0.92) # cbar_ax = fig.add_axes([0.15,0.075,0.7,0.025])
p = WRFEnviron() meteogram = 0 plot2D = 1 nens = 9 itime = (2015,2,7,0,0,0) ftime = (2015,2,8,1,0,0) hourly = 1 times = utils.generate_times(itime,ftime,hourly*60*60) ncfiles = [os.path.join(ncroot,'SGp{0:02d}'.format(n)) for n in range(1,11)] ncfiles.append(os.path.join(ncroot,'Gm4km')) vrbls = ['T2','wind10'] loclist = [{'Stockton':(54.57,-1.32)}, {'Norwich':(52.63,1.30)}, {'FortWill':(56.82,-5.11)}, {'Wick':(58.45,-3.09)}, ] if meteogram: for loc in loclist: for vrbl in vrbls: p.meteogram(vrbl,loc,ncfiles,outdir=outroot) if plot2D: for t in times: p.plot2D('T2',t,ncdir=ncfiles[nens],outdir=outroot,cb=True,clvs=N.arange(263,284,1),f_suffix='{0}'.format(nens))
dt = datetime.datetime(*time.gmtime(t)[:-2]) nicetime = '{0:%H:%M UTC %Y/%m/%d}'.format(dt) # Verification ax = next(axit) if nest == 'SINGLE': ax.set_title(nicetime) # if vrbl is not 'wind': cb = p.plot2D(vrbl, utc=t, level=PLOTS[vrbl]['lv'], ncdir=ncdir[nest], outdir=False, fig=fig, ax=ax, cb=cb_opt, clvs=PLOTS[vrbl]['clvs'], nct=nct, plottype='contourf', cmap=PLOTS[vrbl]['cmap'], extend=PLOTS[vrbl]['extend'], save=False, dom=1, **lims) if plot_cref: p.plot2D('cref', utc=t, level=False, ncdir=ncdir[nest], outdir=False, fig=fig, ax=ax,
labels = iter(list(string.ascii_lowercase)) axit = iter(axes.flat) for nest in ('SINGLE','NESTED'): for tn,t in enumerate(times): dt = datetime.datetime(*time.gmtime(t)[:-2]) nicetime = '{0:%H:%M UTC %Y/%m/%d}'.format(dt) # Verification ax = axit.next() if nest == 'SINGLE': ax.set_title(nicetime) # if vrbl is not 'wind': cb = p.plot2D(vrbl,utc=t,level=PLOTS[vrbl]['lv'],ncdir=ncdir[nest],outdir=False,fig=fig,ax=ax,cb=cb_opt, clvs=PLOTS[vrbl]['clvs'],nct=nct,plottype='contourf',cmap=PLOTS[vrbl]['cmap'], extend=PLOTS[vrbl]['extend'],save=False,dom=1,**lims) p.plot2D('cref',utc=t,level=False,ncdir=ncdir[nest],outdir=False,fig=fig,ax=ax,cb=cb_opt, clvs=[35,],nct=nct,plottype='contour',cmap=None, extend=False,save=False,dom=1,smooth=3,**lims) # else: # cb = p.plot2D(vrbl,utc=t,level=PLOTS[vrbl]['lv'],ncdir=ncdir[nest],outdir=False,fig=fig,ax=ax,cb=cb_opt, # clvs=PLOTS[vrbl]['clvs'],nct=nct,plottype='quiver',cmap=PLOTS[vrbl]['cmap'], # extend=PLOTS[vrbl]['extend'],save=False,dom=1,**lims) # lims = False # cb = p.plot_streamlines(t,PLOTS[vrbl]['lv'],ncdir[nest],outdir=False,fig=fig,ax=ax,nct=nct, # bounding=lims,dom=1,density=0.8) make_subplot_label(ax,labels.next()) if tn == len(times)-1: ax.text(1.03,0.42,nest+'\nControl\n(No SKEB)',transform=ax.transAxes)
if use_radar_obs: p.plot_radar(utc, radar_datadir, ncdir=ctrl_dir, fig=fig, ax=axes.flat[0], cb=False, nct=nct, dom=dom) axes.flat[0].set_title("NEXRAD") else: p.plot2D(vrbl, utc, fig=fig, ax=axes.flat[0], ncdir=ctrl_dir, nct=nct, cb=False, dom=dom, accum_hr=accum_hr, clvs=clvs) axes.flat[0].set_title("Ctrl") else: axes = N.array([ False, ] * 12) if use_radar_obs: ctrl_fpath = False else: radar_datadir = False
fig, ax = plt.subplots() cb = False clvs = False mnc = False sm = 10 other = False pt = 'contour' levels = {} # levels[300] = {'color':'blue','clvs':N.arange(8400,9600,120)} levels[500] = {'color':'black','clvs':N.arange(5460,6000,60),'z':10} # levels[850] = {'color':'green','clvs':N.arange(900,2100,30)} levels[925] = {'color':'#9966FF','clvs':N.arange(660,2100,30),'z':1} for lv in sorted(levels,reverse=True): im = p.plot2D('Z',utc=cases[case]['utc'],level=lv,ncdir=cases[case]['datadir'],outdir=outdir, fig=fig,ax=ax,cb=cb,clvs=levels[lv]['clvs'],nct=cases[case]['utc'],match_nc=mnc, other=other,smooth=sm,plottype=pt,color=levels[lv]['color'],inline=True, Nlim=Nlim,Elim=Elim,Slim=Slim,Wlim=Wlim) datestr = '_'.join(['{0:02d}'.format(n) for n in cases[case]['utc'][2:4]]) fpath = os.path.join(outdir,case,datestr+'_forecastfunnel.png') fig.tight_layout() fig.savefig(fpath) plt.close(fig) if Tplot: levels = {} levels[700] = {'clvs':N.arange(-10,11,1)*0.0001} levels[850] = {'clvs':N.arange(-10,11,1)*0.0001}
cb=True) for t in times: if plot2D: # p.plot2D('Z',t,500,wrf_sd=wrf_sd,out_sd=out_sd,plottype='contour',smooth=10) # p.plot2D('Td2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(260,291,1)) # p.plot2D('Q2',t,ncdir=ncdir,outdir=outdir,nct=t,match_nc=matchnc,clvs=N.arange(1,20.5,0.5)*10**-3) # p.plot2D('RAINNC',t,ncdir=wrf_sd,outdir=out_sd,locations=locs,clvs=N.arange(1,100,2)) # p.plot2D('fluidtrapping',t,ncdir=ncroot,nct=nct,outdir=outdir,cb=True,dom=dom,clvs=N.arange(-1,1,0.1)*10**-6) # p.plot2D('lyapunov',t,700,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom,clvs=N.arange(-7.5,8.0,0.5)*10**-3,cmap='bwr') # print(ncdir) # p.plot2D('WSPD10MAX',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom,clvs=N.arange(10,31,1)) p.plot2D('cref', t, ncdir=ncdir, nct=nct, outdir=outdir, cb=True, dom=dom, **lims) # p.plot2D('REFL_comp',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom) # p.plot2D('shear',t,ncdir=ncdir,nct=nct,outdir=outdir,cb=True,dom=dom) # p.plot2D('wind10',t,ncdir=ncdir,outdir=outdir,locations=locs,cb=True,clvs=N.arange(5,32,2)) if radarplot: verifdir = '/chinook2/jrlawson/bowecho/{0}/VERIF'.format(case) p.plot_radar(t, verifdir, outdir=outdir, ncdir=ncroot, nct=nct, dom=dom)
for lv, clvs in list(PLOT[vrbl].items()): for model, ncdir in zip( ['RUC', 'GEFSR2', 'NAM'], (NC[case]['Rncdir'], NC[case]['Gncdir'], NC[case]['Nncdir'])): if model == 'RUC': nct = t else: nct = NC[case]['nct'] cb = p.plot2D(vrbl, utc=t, level=lv, ncdir=ncdir, fig=fig, ax=axes.flat[axn], cb=False, clvs=clvs, nct=nct, smooth=sm, plottype=pt, save=False, match_nc=mnc) axes.flat[axn].set_title('{0} {1}'.format(model, lv)) axn += 1 fnameout = fname + '_{0:04d}_{1:02d}h.png'.format( NC[case]['nct'][0], tn * hourly) fpath = os.path.join(outroot, fnameout) fig.tight_layout() fig.savefig(fpath) print(('Saved to {0}'.format(fpath)))