Пример #1
0
    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
Пример #2
0
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))
Пример #3
0
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'
Пример #4
0
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
Пример #5
0
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
Пример #6
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)
Пример #7
0
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
Пример #8
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)
Пример #9
0
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
Пример #10
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',
Пример #11
0
# 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:
Пример #12
0
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
Пример #13
0
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)
Пример #14
0
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)
Пример #15
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)
Пример #16
0
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
Пример #17
0
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)
Пример #18
0
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)
Пример #19
0
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}$)')

Пример #20
0
                    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
Пример #21
0
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))
Пример #22
0
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)
Пример #23
0
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'])
Пример #24
0
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',)
Пример #25
0
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:
Пример #26
0
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()
Пример #27
0
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)
Пример #28
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)
Пример #29
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
Пример #30
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)
Пример #31
0
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'
Пример #32
0
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:
Пример #33
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
Пример #34
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
Пример #35
0
                    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,
Пример #36
0
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']
Пример #37
0
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,
Пример #38
0
        '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)
Пример #39
0
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'
Пример #40
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)
times = utils.generate_times(itime,ftime,60*60)
Пример #41
0
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)
Пример #42
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 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':