if not label.endswith(')'): label = label + ')' ax.text(0.05, 0.15, label, transform=ax.transAxes, bbox={'facecolor': 'white'}, fontsize=15, zorder=1000) return # cb_saved = {} # for vrbl in PLOTS.keys(): # cb_saved[vrbl] = False p = WRFEnviron() # Compare old and new runs labels = iter(list(string.ascii_lowercase)) pltitle = iter(plotnames) nrows = len(times) ncols = len(plotnames) fig, axes = plt.subplots(nrows, ncols, figsize=(9, 6)) axit = iter(axes.flat) cb = {} nicetimes = iter(['21 h', '24 h', '27 h']) for tn, t in enumerate(times): print(("Creating row for time #{0} of {1}.".format(tn + 1, len(times)))) # Verification
import sys import numpy as N sys.path.append('/home/jrlawson/gitprojects/WEM') from WEM.postWRF.postWRF import WRFEnviron # Initialise the environment p = WRFEnviron() # output directory outdir = '/home/jrlawson/public_html/bowecho' # netcdf directory. ncdir = '/chinook2/jrlawson/bowecho/20130815/GEFSR2/c00/ICBC' # initial and final times. itime = (2013, 8, 15, 3, 0, 0) ftime = (2013, 8, 15, 3, 0, 0) hourly = 6 times = p.generate_times(itime, ftime, hourly * 60 * 60) # Loop over all times. # clvs lets you change the contour values # The second argument is accumulation time, in hours for t in times: p.plot_accum_rain(t, hourly, ncdir, outdir, clvs=N.arange(5, 85, 1))
import sys import matplotlib as M M.use('agg') import matplotlib.pyplot as plt import numpy as N sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot outroot = '/home/jrlawson/public_html/bowecho/' ncroot = '/chinook2/jrlawson/bowecho/' p = WRFEnviron() # lims = {'Nlim':41.05,'Wlim':-89.65,'Slim':38.60,'Elim':-86.90} lims = {'Nlim': 42.0, 'Wlim': -103.0, 'Slim': 35.0, 'Elim': -95.0} # lims = {} # enstype = 'STCH5' enstype = 'STCH' # enstype = 'ICBC' # enstype = 'MXMP' # enstype = 'STMX' # case = '20060526' #case = '20090910' # case = '20110419' # case = '20110419_hires'
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils config = Settings() p = WRFEnviron(config) # NUMBER 2: CHANGE FOLDER DETAILS HERE case = '20130815' #ensembletype = 'STCH' ensembletype = 'MXMP' IC = 'GEFSR2' ICens = ['p09',] #MP = 'Morrison_Hail' MP = 'ICBC' # NUMBER 3: SET THE TIME(s) YOU WANT PLOT # Loop over times... itime = (2013,8,15,18,0,0) ftime = (2013,8,16,12,0,0) times = utils.generate_times(itime,ftime,60*60) # ... or set just one time
M.use('agg') import matplotlib.pyplot as plt import numpy as N import glob import collections sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot outroot = '/home/jrlawson/public_html/bowecho/' ncroot = '/chinook2/jrlawson/bowecho/' p = WRFEnviron() skewT = 0 plot2D = 0 radarplot = 0 radarcomp = 0 streamlines = 0 rucplot = 0 coldpoolstrength = 0 spaghetti = 0 std = 0 profiles = 0 frontogenesis = 0 upperlevel = 0 strongestwind = 0 accum_rain = 0
import collections PLOT = {'Z':collections.OrderedDict()} PLOT['Z'][300] = N.arange(7800,9900,30) PLOT['Z'][500] = N.arange(5000,6000,30) PLOT['Z'][700] = N.arange(2800,3430,30) nrow = 3 ncol = 3 pt = 'contour' t = 0 clvs = False sm = 5 hourly = 6 fname = 'GEFS_NAM_compare' 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)
M.use('agg') import matplotlib.pyplot as plt import numpy as N sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot # case = '20130815' case = '20110419' ncroot = '/chinook2/jrlawson/bowecho/{0}_hires/'.format(case) outroot = '/home/jrlawson/public_html/bowecho/hires/{0}'.format(case) p = WRFEnviron() skewT = 0 plot2D = 1 radarplot = 0 axesofdilatation = 0 radarcomp = 0 streamlines = 0 rucplot = 0 coldpoolstrength = 0 spaghetti = 0 std = 0 profiles = 0 frontogenesis = 0 upperlevel = 0 strongestwind = 0
import os import pdb import sys import glob sys.path.append('/home/jrlawson/gitprojects/') import numpy as N from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils from WEM.postWRF.postWRF.ecmwf import ECMWF config = Settings() p = WRFEnviron(config) #case = '20060526' #case = '20090910' #case = '20110419' case = '20130815' #itime = (2006,5,26,22,0,0) #itime = (2009,9,10,23,0,0) #itime = (2011,4,19,18,0,0) itime = (2013,8,15,0,0,0) #ftime = (2006,5,27,11,0,0) #ftime = (2009,9,11,14,0,0) #ftime = (2011,4,20,10,30,0) ftime = (2013,8,16,12,0,0) times = utils.generate_times(itime,ftime,6*60*60)
itime = datetime.datetime(2011,4,19,12,0,0) ftime = datetime.datetime(2011,4,20,6,0,0) # Times in UTC... # radartimes = [datetime.datetime(2011,4,19,22,0,0), # datetime.datetime(2011,4,20,2,30,0), # datetime.datetime(2011,4,20,5,0,0)] radarthresh = 25 # radarthresh = 35 radartimes = datetime.datetime(2011,4,20,3,0,0) lims = {'Nlim':45.0,'Elim':-80.0,'Slim':32.0,'Wlim':-95.0} fname = 'ILIN11_reports_radar.png' outdir = '/home/jrlawson/public_html/bowecho' # FIGURE SETUP fig, ax = plt.subplots(1,figsize=(5,6)) p = WRFEnviron() # Composite radar p.plot_radar(radartimes,datadir,outdir,compthresh=radarthresh, composite=False,fig=fig,ax=ax,**lims) # Storm reports SR = StormReports(fpath) SR.plot('Wind',itime,ftime,fname,outdir,ax=ax,fig=fig,ss=8,color='magenta',**lims) # Annotate four bow echoes # Save fig
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') import matplotlib as M M.use('agg') import matplotlib.pyplot as plt from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils # from WEM.postWRF.postWRF.rucplot import RUCPlot p = WRFEnviron() cases = {'20130815_hires': 'KSOK13'} labels = ('3km', '1km') # labels = ('ILIN11 3km','ILIN11 1km','KSOK13 3km','KSOK13 1km') labpos = ('lc', 'lc') # labpos = ('lr','lr','ll','ll') # wrfouts = ('/chinook2/jrlawson/bowecho/20110419_hires/s21/wrfout_d01_2011-04-19_00:00:00', # '/chinook2/jrlawson/bowecho/20110419_hires/s21/wrfout_d02_2011-04-19_00:00:00', # '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d01_2013-08-15_00:00:00', # '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d02_2013-08-15_00:00:00',) wrfouts = ( '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d01_2013-08-15_00:00:00',
# outdir = '/home/jrlawson/public_html/bowecho/paper1/all_MAX/animate' MAXmembers = [x for x in members if x.endswith('MAX')] # lims = {'Nlim':42.0,'Elim':-95.0,'Slim':34.0,'Wlim':-104.0} lims = {'Nlim':39.5,'Elim':-95.6,'Slim':35.8,'Wlim':-101.5} def make_subplot_label(ax,label): ax.text(0.05,0.15,label,transform=ax.transAxes, bbox={'facecolor':'white'},fontsize=15,zorder=1000) return cb_saved = {} for vrbl in list(PLOTS.keys()): cb_saved[vrbl] = False p = WRFEnviron() # Compare old and new runs labels = ['a)','b)','c)','d)','e)','f)'] for tn,t in enumerate(times): nicetime = datetime.datetime(*time.gmtime(t)[:-2]) for vrbl,PL in PLOTS.items(): fig, axes = plt.subplots(3,2,figsize=(6,9)) for n,ens in enumerate(MAXmembers): ncdir = os.path.join(ncroot,ens) ax = axes.flat[n] title = ens[:-4].replace('_',' ') ax.set_title(title) make_subplot_label(ax,labels[n]) try:
times = utils.generate_times(itime,ftime,interval) outdir = '/home/jrlawson/public_html/bowecho/paper2' lims = {'Nlim':42.0,'Elim':-95.0,'Slim':34.0,'Wlim':-104.0} def make_subplot_label(ax,label): if not label.endswith(')'): label = label + ')' ax.text(0.05,0.15,label,transform=ax.transAxes, bbox={'facecolor':'white'},fontsize=15,zorder=1000) return # cb_saved = {} # for vrbl in PLOTS.keys(): # cb_saved[vrbl] = False p = WRFEnviron() # Compare old and new runs labels = iter(list(string.ascii_lowercase)) pltitle = iter(plotnames) nrows = len(times) ncols = len(plotnames) fig, axes = plt.subplots(nrows,ncols,figsize=(9,6)) axit = iter(axes.flat) cb = {} nicetimes = iter(['21 h','24 h','27 h']) for tn,t in enumerate(times): print(("Creating row for time #{0} of {1}.".format(tn+1,len(times)))) # Verification
import os import pdb import sys import matplotlib as M M.use('agg') import matplotlib.pyplot as plt import numpy as N sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot ncroot = '/ptmp/jrlawson/WRF_3.6.1_ideal/run/' outroot = '/home/jrlawson/public_html/paper5' p = WRFEnviron() nct = (2000,1,1,0,0,0) t = (2000,1,1,1,30,0) # p.plot2D('REFL_comp',level=False,utc=t,ncdir=ncroot,nct=nct,outdir=outroot,cb=True,dom=1,ideal=True) # p.plot2D('lyapunov',level=500,utc=t,ncdir=ncroot,nct=nct,outdir=outroot,cb=True,dom=1,ideal=True) # p.plot2D('U',level=500,utc=t,ncdir=ncroot,nct=nct,outdir=outroot,cb=True,dom=1,ideal=True) # p.plot2D('V',level=500,utc=t,ncdir=ncroot,nct=nct,outdir=outroot,cb=True,dom=1,ideal=True) p.plot_streamlines(t,500,ncroot,outroot,nct=nct,dom=1,ideal=True)
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils config = Settings() p = WRFEnviron(config) case = '20060526' #case = '20090910' #case = '20110419' #case = '20130815' IC = 'GEFSR2' #IC = 'NAM' #ensnames = ['c00'] + ['p'+"%02d" %n for n in range(1,11)] ensnames = ['p' + "%02d" % n for n in range(8, 11)] #ensnames = ['p04'] #ensnames = ['anl'] experiment = {'ICBC': 'CTRL'} itime = (2006, 5, 26, 22, 0, 0) #itime = (2009,9,10,23,0,0) #itime = (2011,4,19,18,0,0) #itime = (2013,8,15,18,0,0) ftime = (2006, 5, 27, 11, 0, 0)
def make_subplot_label(ax, label): if not label.endswith(')'): label = label + ')' ax.text(0.05, 0.15, label, transform=ax.transAxes, bbox={'facecolor': 'white'}, fontsize=15, zorder=1000) return cb_opt = False p = WRFEnviron() ncols = len(times) nrows = 2 fig, axes = plt.subplots(nrows, ncols, figsize=(7, 5)) 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 = next(axit) if nest == 'SINGLE': ax.set_title(nicetime)
BOW = {} BOW['hires3'] = {'dom':1,'ncf':'wrfout_d01_2013-08-15_00:00:00', 'ensnames':['s{0:02d}'.format(e) for e in range(21,31)], 'ncroot':'/chinook2/jrlawson/bowecho/20130815_hires/'} BOW['hires1'] = {'dom':2,'ncf':'wrfout_d02_2013-08-15_00:00:00', 'ensnames':['s{0:02d}'.format(e) for e in range(21,31)], 'ncroot':'/chinook2/jrlawson/bowecho/20130815_hires/'} BOW['normal'] = {'dom':1,'ncf':'wrfout_d01_2013-08-15_00:00:00', 'ensnames':['s{0:02d}'.format(e) for e in range(1,11)], 'ncroot':'/chinook2/jrlawson/bowecho/20130815/GEFSR2/p09/ICBC/'} outroot = '/home/jrlawson/public_html/bowecho/hires/{0}'.format(case) outdir = outroot p = WRFEnviron() nct = (2013,8,15,0,0,0) itime = (2013,8,15,0,0,0) ftime = (2013,8,16,12,0,0) hourly = 1 level = 2000 times = utils.generate_times(itime,ftime,hourly*60*60) # Four subplots of std at 6h, 12h, 18h, 24h # For original 3km, hires 3km, hires 1km. titlets = ['6h','12h','18h','24h'] # vrbl = 'wind10'; clvs = N.arange(0.25,5.25,0.25); lv = False # vrbl = 'T2'; clvs = N.arange(0.25,5.25,0.25); lv = False
import sys import numpy as N #import matplotlib as M #M.use('gtkagg') sys.path.append('/home/jrlawson/gitprojects/WEM') from WEM.postWRF.postWRF import WRFEnviron p = WRFEnviron() outdir = '/home/jrlawson/public_html/bowecho' datadir = '/chinook2/jrlawson/bowecho/20130815/VERIF' reportday = (2013,8,15,23,0,0) # utc = [(2013,8,16,3,m,0) for m in range(0,60,5)] utc = (2013,8,16,3,0,0) ncdir = '/chinook2/jrlawson/bowecho/20130815/GEFSR2/c00/ICBC' # p.plot2D(t,utc=utc,level=2000) p.plot_accum_rain(utc,6,ncdir,outdir,clvs=N.arange(5,85,1)) for t in utc: # R = Radar(t,datadir) # R.plot_radar(outdir,Nlim=42.0,Elim=-92.0,Slim=32.0,Wlim=-102.0) p.plot_radar(t,datadir,outdir,ncdir=ncdir,nct=nct) # SPC = SPCReports(reportday,datadir,torn=False,hail=False)
import sys import numpy as N #import matplotlib as M #M.use('gtkagg') sys.path.append('/home/jrlawson/gitprojects/WEM') from WEM.postWRF.postWRF import WRFEnviron p = WRFEnviron() outdir = '/home/jrlawson/public_html/bowecho' datadir = '/chinook2/jrlawson/bowecho/20130815/VERIF' reportday = (2013, 8, 15, 23, 0, 0) # utc = [(2013,8,16,3,m,0) for m in range(0,60,5)] utc = (2013, 8, 16, 3, 0, 0) ncdir = '/chinook2/jrlawson/bowecho/20130815/GEFSR2/c00/ICBC' # p.plot2D(t,utc=utc,level=2000) p.plot_accum_rain(utc, 6, ncdir, outdir, clvs=N.arange(5, 85, 1)) for t in utc: # R = Radar(t,datadir) # R.plot_radar(outdir,Nlim=42.0,Elim=-92.0,Slim=32.0,Wlim=-102.0) p.plot_radar(t, datadir, outdir, ncdir=ncdir, nct=nct) # SPC = SPCReports(reportday,datadir,torn=False,hail=False)
ncdir = {'SINGLE':'/chinook2/jrlawson/bowecho/20130815/GEFSR2_paper2/p09/ICBC/', 'NESTED':'/chinook2/jrlawson/bowecho/20130815_hires/'} ncfile = 'wrfout_d01_2013-08-15_00:00:00' nct = (2013,8,15,0,0,0) # itime = (2013,8,15,20,0,0) # ftime = (2013,8,15,23,0,0) # interval = 1*60*60 # times = utils.generate_times(itime,ftime,interval) outdir = '/home/jrlawson/public_html/bowecho/paper2' # lims = {'Nlim':41.0,'Elim':-97.4,'Slim':38.3,'Wlim':-101.0} latA = 40.3 lonA = -99.3 latB = 39.0 lonB = -98.2 # latA = 39.6 # latB = 39.7 vrbl = 'Q_pert'; clvs=N.arange(-0.007,0.0071,0.0005);cftix=N.arange(-0.007,0.0105,0.0035);cmap='BrBG';ctvrbl='parawind';ctclvs=N.arange(-25,40,5) utc = (2013,8,15,21,0,0) dom = 1 p = WRFEnviron() for nest in list(ncdir.keys()): p.plot_xs(vrbl,utc,ncdir[nest],outdir,latA=latA,lonA=lonA, latB=latB,lonB=lonB,nct=nct,dom=dom,f_suffix=nest, clvs=clvs,cmap=cmap,contour_vrbl=ctvrbl, contour_clvs=ctclvs,cftix=cftix,avepts=2, cflabel='Water mixing ratio perturbation ($kg\,kg^{-1}$)')
utc = datetime.datetime(*utils.ensure_timetuple(dnt)[:6]) ALLSPREAD[nest][dnt] = {} dom, hires = nest_logic(nest) nct, casestr, W_fname = case_logic(case) casestr, ctrl_dir, ensnames = hires_logic(casestr,hires) 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
import sys import numpy as N sys.path.append('/home/jrlawson/gitprojects/WEM') from WEM.postWRF.postWRF import WRFEnviron # Initialise the environment p = WRFEnviron() # output directory outdir = '/home/jrlawson/public_html/bowecho' # netcdf directory. ncdir = '/chinook2/jrlawson/bowecho/20130815/GEFSR2/c00/ICBC' # initial and final times. itime = (2013,8,15,3,0,0) ftime = (2013,8,15,3,0,0) hourly = 6 times = p.generate_times(itime,ftime,hourly*60*60) # Loop over all times. # clvs lets you change the contour values # The second argument is accumulation time, in hours for t in times: p.plot_accum_rain(t,hourly,ncdir,outdir,clvs=N.arange(5,85,1))
IC = 'GEFS' experiment = 'MXMP' ens = 'c00' MP = 'ICBC' # Time script scriptstart = time.time() stoch_names = ["s{0:02d}".format(n) for n in range(1,11)] ens_names = ['c00',] + ["p{0:02d}".format(n) for n in range(1,11)] MPs = ['ICBC','WSM6_Grau','WSM6_Hail','Kessler','Ferrier','WSM5', 'WDM5','Lin','WDM6_Grau','WDM6_Hail', 'Morrison_Grau','Morrison_Hail'] # Initialise settings and environment p = WRFEnviron() if case[:4] == '2006': itime = (2006,5,26,0,0,0) ftime = (2006,5,27,12,0,0) elif case[:4] == '2009': itime = (2009,9,10,0,0,0) ftime = (2009,9,11,18,0,0) elif case[:4] == '2011': itime = (2011,4,19,0,0,0) ftime = (2011,4,20,15,0,0) else: itime = (2013,8,15,0,0,0) ftime = (2013,8,16,15,0,0) times = utils.generate_times(itime,ftime,2*3600)
import numpy as N sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot def download_RUC(utc,fpath): print(('Downloading {0} RUC file.'.format(utc))) utils.getruc(utc,ncpath=fpath,convert2nc=True,duplicate=False) outdir = '/home/jrlawson/public_html/bowecho/' RUCdir = '/chinook2/jrlawson/bowecho/' p = WRFEnviron() cases = {} # cases['20060526'] = {'utc':(2006,5,26,12,0,0), 'datadir':os.path.join(RUCdir,'20060526/RUC/anl/VERIF/')} # cases['20130815'] = {'utc':(2013,8,15,12,0,0), 'datadir':os.path.join(RUCdir,'20130815/RUC/anl/VERIF/') } cases['20110419'] = {'utc':(2011,4,19,21,0,0), 'datadir':os.path.join(RUCdir,'20110419/RUC/anl/VERIF/') } Nlim, Elim, Slim, Wlim = [52.0,-78.0,25.0,-128.0] Zplot = 1 Tplot = 0 download_data = 1 for case in cases: if download_data: download_RUC(cases[case]['utc'],cases[case]['datadir'])
import sys import numpy as N import pdb import matplotlib as M import os M.use('gtkagg') import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable sys.path.append('/home/jrlawson/gitprojects/WEM') from WEM.postWRF.postWRF import WRFEnviron p = WRFEnviron() outdir = ('/home/jrlawson/public_html/bowecho/' '20110419/GEFSR2/p04/WDM6_Hail/test') ncdir = ('/chinook2/jrlawson/bowecho/' '20110419/GEFSR2/p04/WDM6_Hail') plot2D = 1 streamlines = 0 # 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',)
MAXmembers = [x for x in members if x.endswith("MAX")] # lims = {'Nlim':42.0,'Elim':-95.0,'Slim':34.0,'Wlim':-104.0} lims = {"Nlim": 39.5, "Elim": -95.6, "Slim": 35.8, "Wlim": -101.5} def make_subplot_label(ax, label): ax.text(0.05, 0.15, label, transform=ax.transAxes, bbox={"facecolor": "white"}, fontsize=15, zorder=1000) return cb_saved = {} for vrbl in list(PLOTS.keys()): cb_saved[vrbl] = False p = WRFEnviron() # Compare old and new runs labels = ["a)", "b)", "c)", "d)", "e)", "f)"] for tn, t in enumerate(times): nicetime = datetime.datetime(*time.gmtime(t)[:-2]) for vrbl, PL in PLOTS.items(): fig, axes = plt.subplots(3, 2, figsize=(6, 9)) for n, ens in enumerate(MAXmembers): ncdir = os.path.join(ncroot, ens) ax = axes.flat[n] title = ens[:-4].replace("_", " ") ax.set_title(title) make_subplot_label(ax, labels[n]) try:
import sys import numpy as N import pdb import matplotlib as M import os M.use('gtkagg') import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1 import make_axes_locatable sys.path.append('/home/jrlawson/gitprojects/WEM') from WEM.postWRF.postWRF import WRFEnviron p = WRFEnviron() outdir = ('/home/jrlawson/public_html/bowecho/' '20110419/GEFSR2/p04/WDM6_Hail/test') ncdir = ('/chinook2/jrlawson/bowecho/' '20110419/GEFSR2/p04/WDM6_Hail') plot2D = 1 streamlines = 0 # 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()
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils config = Settings() p = WRFEnviron(config) case = '20060526' #case = '20090910' #case = '20110419' #case = '20130815' IC = 'GEFSR2' #IC = 'NAM' #ensnames = ['c00'] + ['p'+"%02d" %n for n in range(1,11)] ensnames = ['p'+"%02d" %n for n in range(8,11)] #ensnames = ['p04'] #ensnames = ['anl'] experiment = {'ICBC':'CTRL'} itime = (2006,5,26,22,0,0) #itime = (2009,9,10,23,0,0) #itime = (2011,4,19,18,0,0) #itime = (2013,8,15,18,0,0) ftime = (2006,5,27,11,0,0) #ftime = (2009,9,11,14,0,0)
import os import pdb import sys # NUMBER 1: CHANGE THIS sys.path.append('/path/to/WEM/') from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils config = Settings() p = WRFEnviron(config) # NUMBER 2: CHANGE FOLDER DETAILS HERE case = '20130815' IC = 'GEFSR2' ICens = [ 'p09', ] #MP = 'ICBC' #experiments = ['s'+"%02d" %n for n in range(1,11)] experiments = ('ICBC', 'WSM6_Grau', 'WSM6_Hail', 'Kessler', 'Ferrier', 'WSM5', 'WDM5', 'Lin', 'WDM6_Grau', 'WDM6_Hail', 'Morrison_Grau', 'Morrison_Hail') # NUMBER 3: SET THE TIME(s) YOU WANT PLOT # Loop over times... itime = (2013, 8, 15, 18, 0, 0) ftime = (2013, 8, 16, 12, 0, 0)
import pdb import sys import matplotlib as M M.use('agg') import matplotlib.pyplot as plt import numpy as N import datetime # import WEM.lazyWRF.lazyWRF as lazyWRF from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot RUCdir = '/chinook2/jrlawson/bowecho/RUCclimo/' p = WRFEnviron() # cases = {} # cases['20091109'] = {'utc':(2009,11,10,0,0,0), 'datadir':os.path.join(RUCdir,'20060526/RUC/anl/VERIF/') } # cases['2013'] = {'utc':(2013,8,16,0,0,0), 'datadir':os.path.join(RUCdir,'20130815/RUC/anl/VERIF/') } download_data = 1 skipcase = 0 def download_RUC(utc,fpath): print('Downloading {0} RUC file.'.format(utc)) utils.getruc(utc,ncpath=fpath,convert2nc=True,duplicate=False) plot_Z = 0 plot_T_adv = 0 plot_omega = 0
ens = 'c00' MP = 'ICBC' # Time script scriptstart = time.time() stoch_names = ["s{0:02d}".format(n) for n in range(1, 11)] ens_names = [ 'c00', ] + ["p{0:02d}".format(n) for n in range(1, 11)] MPs = [ 'ICBC', 'WSM6_Grau', 'WSM6_Hail', 'Kessler', 'Ferrier', 'WSM5', 'WDM5', 'Lin', 'WDM6_Grau', 'WDM6_Hail', 'Morrison_Grau', 'Morrison_Hail' ] # Initialise settings and environment p = WRFEnviron() if case[:4] == '2006': itime = (2006, 5, 26, 0, 0, 0) ftime = (2006, 5, 27, 12, 0, 0) elif case[:4] == '2009': itime = (2009, 9, 10, 0, 0, 0) ftime = (2009, 9, 11, 18, 0, 0) elif case[:4] == '2011': itime = (2011, 4, 19, 0, 0, 0) ftime = (2011, 4, 20, 15, 0, 0) else: itime = (2013, 8, 15, 0, 0, 0) ftime = (2013, 8, 16, 15, 0, 0) times = utils.generate_times(itime, ftime, 2 * 3600)
import sys import matplotlib as M M.use('agg') import matplotlib.pyplot as plt import numpy as N sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot outroot = '/home/jrlawson/public_html/bowecho/' ncroot = '/chinook2/jrlawson/bowecho/' p = WRFEnviron() # lims = {'Nlim':41.05,'Wlim':-89.65,'Slim':38.60,'Elim':-86.90} lims = {'Nlim':42.0,'Wlim':-103.0,'Slim':35.0,'Elim':-95.0} # lims = {} # enstype = 'STCH5' enstype = 'STCH' # enstype = 'ICBC' # enstype = 'MXMP' # enstype = 'STMX' # case = '20060526' #case = '20090910' # case = '20110419' # case = '20110419_hires'
def make_subplot_label(ax, label): ax.text( 0.05, 0.15, label, transform=ax.transAxes, bbox={'facecolor': 'white'}, fontsize=15, zorder=1000) return cb_saved = {} for vrbl in list(PLOTS.keys()): cb_saved[vrbl] = False p = WRFEnviron() # Compare old and new runs labels = ['a)', 'b)', 'c)', 'd)', 'e)', 'f)'] for tn, t in enumerate(times): nicetime = datetime.datetime(*time.gmtime(t)[:-2]) for vrbl, PL in PLOTS.items(): fig, axes = plt.subplots(3, 2, figsize=(6, 9)) for n, ens in enumerate(MAXmembers): ncdir = os.path.join(ncroot, ens) ax = axes.flat[n] title = ens[:-4].replace('_', ' ') ax.set_title(title) make_subplot_label(ax, labels[n]) try:
import pdb import sys import matplotlib as M M.use('agg') import matplotlib.pyplot as plt import numpy as N import datetime # import WEM.lazyWRF.lazyWRF as lazyWRF from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot RUCdir = '/chinook2/jrlawson/bowecho/RUCclimo/' p = WRFEnviron() # cases = {} # cases['20091109'] = {'utc':(2009,11,10,0,0,0), 'datadir':os.path.join(RUCdir,'20060526/RUC/anl/VERIF/') } # cases['2013'] = {'utc':(2013,8,16,0,0,0), 'datadir':os.path.join(RUCdir,'20130815/RUC/anl/VERIF/') } download_data = 1 skipcase = 0 def download_RUC(utc, fpath): print(('Downloading {0} RUC file.'.format(utc))) utils.getruc(utc, ncpath=fpath, convert2nc=True, duplicate=False) plot_Z = 0
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') import matplotlib as M M.use('agg') import matplotlib.pyplot as plt from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils # from WEM.postWRF.postWRF.rucplot import RUCPlot p = WRFEnviron() cases = {'20130815_hires':'KSOK13'} labels = ('3km','1km') # labels = ('ILIN11 3km','ILIN11 1km','KSOK13 3km','KSOK13 1km') labpos = ('lc','lc') # labpos = ('lr','lr','ll','ll') # wrfouts = ('/chinook2/jrlawson/bowecho/20110419_hires/s21/wrfout_d01_2011-04-19_00:00:00', # '/chinook2/jrlawson/bowecho/20110419_hires/s21/wrfout_d02_2011-04-19_00:00:00', # '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d01_2013-08-15_00:00:00', # '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d02_2013-08-15_00:00:00',) wrfouts = ('/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d01_2013-08-15_00:00:00', '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d02_2013-08-15_00:00:00',) cols = ('red',)*2
ALLSPREAD[nest][dnt] = {} dom, hires = nest_logic(nest) nct, casestr, W_fname = case_logic(case) casestr, ctrl_dir, ensnames = hires_logic(casestr, hires) 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,
import sys import matplotlib as M M.use('gtkagg') import matplotlib.pyplot as plt import numpy as N sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils #from WEM.postWRF.postWRF.rucplot import RUCPlot outroot = '/home/jrlawson/public_html/bolt/' ncroot = '/chinook2/jrlawson/bolttest/' 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']
latB = 39.0 lonB = -98.2 # latA = 39.6 # latB = 39.7 vrbl = 'Q_pert' clvs = N.arange(-0.007, 0.0071, 0.0005) cftix = N.arange(-0.007, 0.0105, 0.0035) cmap = 'BrBG' ctvrbl = 'parawind' ctclvs = N.arange(-25, 40, 5) utc = (2013, 8, 15, 21, 0, 0) dom = 1 p = WRFEnviron() for nest in list(ncdir.keys()): p.plot_xs(vrbl, utc, ncdir[nest], outdir, latA=latA, lonA=lonA, latB=latB, lonB=lonB, nct=nct, dom=dom, f_suffix=nest, clvs=clvs, cmap=cmap, contour_vrbl=ctvrbl,
'RH':{'lv':600,'clvs':N.arange(0,105,5),'cbl':'Relative Humidity (%)','cmap':'terrain_r','extend':'max'}, 'Q_pert':{'lv':800,'clvs':N.arange(-0.007,0.0071,0.0001),'cbl':'Vapor mixing ratio perturbation (kg/kg)','cmap':'BrBG','extend':'both','cbtix':N.arange(-0.007,0.0105,0.0035)}, 'shear':{'lv':False,'clvs':N.arange(5,32.5,2.5),'cbl':'0--6 km vertical wind shear (m/s)','cmap':'YlGnBu','extend':'max'}, 'wind':{'lv':700,'clvs':N.arange(5,32.5,2.5),'cbl':'Wind speed (m/s)','cmap':'YlGnBu','extend':'max','cbtix':N.arange(5,35,5)}, 'wind10':{'lv':False,'clvs':N.arange(2,18.1,0.1),'cbl':'Wind speed (m/s)','cmap':'Paired','extend':'max'}, } def make_subplot_label(ax,label): if not label.endswith(')'): label = label + ')' ax.text(0.05,0.15,label,transform=ax.transAxes, bbox={'facecolor':'white'},fontsize=15,zorder=1000) return cb_opt = False p = WRFEnviron() ncols = len(times) nrows = 2 fig, axes = plt.subplots(nrows,ncols,figsize=(7,5)) 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)
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron import WEM.utils as utils # from WEM.postWRF.postWRF.rucplot import RUCPlot p = WRFEnviron() cases = {'20060526_hires':'KSOK13','20110419_hires':'ILIN11'} # cases = ('20060526','20130815') # cases = ('20060526','20090910','20110419','20130815') # colours = ('green','blue','red','orange') # colours = ['black'] * len(labels) labels = ('ILIN11 3km','ILIN11 1km','KSOK13 3km','KSOK13 1km') labpos = ('lr','lr','ll','ll') wrfouts = ('/chinook2/jrlawson/bowecho/20110419_hires/s21/wrfout_d01_2011-04-19_00:00:00', '/chinook2/jrlawson/bowecho/20110419_hires/s21/wrfout_d02_2011-04-19_00:00:00', '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d01_2013-08-15_00:00:00', '/chinook2/jrlawson/bowecho/20130815_hires/wrfout_d02_2013-08-15_00:00:00',) cols = ('midnightblue','mediumblue','darkgreen','forestgreen') Nlim = 50.0 Elim = -77.0 Slim = 30.0 Wlim = -112.0 outdir = '/home/jrlawson/public_html/bowecho' fname = 'domains_hires.png'
import os import pdb import sys # NUMBER 1: CHANGE THIS sys.path.append('/path/to/WEM/') from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils config = Settings() p = WRFEnviron(config) # NUMBER 2: CHANGE FOLDER DETAILS HERE case = '20130815' IC = 'GEFSR2' ICens = ['p09',] #MP = 'ICBC' #experiments = ['s'+"%02d" %n for n in range(1,11)] experiments = ('ICBC','WSM6_Grau','WSM6_Hail','Kessler','Ferrier','WSM5', 'WDM5','Lin','WDM6_Grau','WDM6_Hail', 'Morrison_Grau','Morrison_Hail') # NUMBER 3: SET THE TIME(s) YOU WANT PLOT # Loop over times... itime = (2013,8,15,18,0,0) ftime = (2013,8,16,12,0,0) times = utils.generate_times(itime,ftime,60*60)
import os import pdb import sys sys.path.append('/home/jrlawson/gitprojects/') from WEM.postWRF.postWRF import WRFEnviron from settings import Settings import WEM.utils.utils as utils config = Settings() p = WRFEnviron(config) # NUMBER 2: CHANGE FOLDER DETAILS HERE case = '20130815' #ensembletype = 'STCH' ensembletype = 'MXMP' IC = 'GEFSR2' ICens = [ 'p09', ] #MP = 'Morrison_Hail' MP = 'ICBC' # NUMBER 3: SET THE TIME(s) YOU WANT PLOT # Loop over times... itime = (2013, 8, 15, 18, 0, 0) ftime = (2013, 8, 16, 12, 0, 0) times = utils.generate_times(itime, ftime, 60 * 60)
import collections PLOT = {'Z': collections.OrderedDict()} PLOT['Z'][300] = N.arange(7800, 9900, 30) PLOT['Z'][500] = N.arange(5000, 6000, 30) PLOT['Z'][700] = N.arange(2800, 3430, 30) nrow = 3 ncol = 3 pt = 'contour' t = 0 clvs = False sm = 5 hourly = 6 fname = 'GEFS_NAM_compare' 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 list(PLOT.keys()): 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':