def trends(ident, levels=None, outputdir=None, verbose=0): """ Parameters ---------- ident levels outputdir verbose Returns ------- """ from raso import load_radiosonde from raso.config import outdir import matplotlib.pyplot as plt yplevs = [1000, 3000, 7000, 12500, 17500, 22500, 30000, 40000, 50000, 60000, 85000, 92500] # Pressure Levels, Ticks isonde = load_radiosonde(ident, variables=[]) if outputdir is None: outputdir = outdir + '/figures' # # DATA # if levels is None: levels = [10000, 30000, 50000, 60000, 70000, 85000, 92500] if 'detect_opts' not in isonde.attrs: print "No Detection Options found ?", ident return for icor, iopts in isonde.detect_opts.items(): iname = iopts['savename'] isonde.load_data(iname) ivar = iopts['variable'] idata = getattr(isonde, iname) daynight = iopts.get('daynight', False) # # Profile # varis = [ivar, '%s_mcor' % ivar, '%s_qcor' % ivar, '%s_qecor' % ivar, '%s_era_adj' % ivar, '%s_era' % ivar] varnames = ['U', 'M', 'Q', 'QE', 'EA', 'E'] # Period 1979 - 2015 (32y) if daynight: ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 12, :], slice('1979', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_12Z_79-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_12Z_79-15.pdf' % (outputdir, ident, iname, ivar), verbose) ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 0, :], slice('1979', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_00Z_79-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_00Z_79-15.pdf' % (outputdir, ident, iname, ivar), verbose) else: ax, lgd = _trend_plotter(idata[varis], slice('1979', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_79-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_79-15.pdf' % (outputdir, ident, iname, ivar), verbose) # Period 1990 - 2015 (15y) if daynight: ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 12, :], slice('1990', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_12Z_90-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_12Z_90-15.pdf' % (outputdir, ident, iname, ivar), verbose) ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 0, :], slice('1990', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_00Z_90-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_00Z_90-15.pdf' % (outputdir, ident, iname, ivar), verbose) else: ax, lgd = _trend_plotter(idata[varis], slice('1990', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_79-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_90-15.pdf' % (outputdir, ident, iname, ivar), verbose) # Period 1980 - 2000 (20y) if daynight: ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 12, :], slice('1980', '2000'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_12Z_80-00.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_12Z_80-00.pdf' % (outputdir, ident, iname, ivar), verbose) ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 0, :], slice('1980', '2000'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_00Z_80-00.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_00Z_80-00.pdf' % (outputdir, ident, iname, ivar), verbose) else: ax, lgd = _trend_plotter(idata[varis], slice('1980', '2000'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_80-00.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_80-00.pdf' % (outputdir, ident, iname, ivar), verbose) # Period 1975 - 2015 (30y) if daynight: ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 12, :], slice('1985', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_12Z_85-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_12Z_85-15.pdf' % (outputdir, ident, iname, ivar), verbose) ax, lgd = _trend_plotter(idata[varis, idata.major_axis.hour == 0, :], slice('1985', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_00Z_85-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_00Z_85-15.pdf' % (outputdir, ident, iname, ivar), verbose) else: ax, lgd = _trend_plotter(idata[varis], slice('1985', '2015'), varis, yplevs, varnames) plt.savefig('%s/%s_%s_%s_trends_85-15.pdf' % (outputdir, ident, iname, ivar), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_85-15.pdf' % (outputdir, ident, iname, ivar), verbose) plt.close('all') # # LEVEL # for ilev in levels: if daynight: fig, ax = plt.subplots(len(varis), 1, figsize=(12, len(varis)), sharex=True, sharey=True) ym = int(idata[ivar, idata.major_axis.hour == 12, ilev].mean()) for j, jvar in enumerate(varis): if jvar in idata.items: ax[j] = timeseries_line_trend(idata[:, idata.major_axis.hour == 12, :], jvar, '%s_dep_snht' % ivar, ilev, '%s [K]' % varnames[j], ax=ax[j], plabel=ym + 4, ylim=(ym - 5, ym + 5), window=365, label=varnames[j]) ax[j].grid(True) # lgd = ax.legend(bbox_to_anchor=(1.1, 1), loc='upper left', fontsize=10) ax[j].set_xlim('1979', '2016') ax[-1].set_xlabel('Time (RM:365)') plt.savefig('%s/%s_%s_%s_trends_12Z_%04d.pdf' % (outputdir, ident, iname, ivar, ilev / 100)) #, bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_12Z_%04d.pdf' % (outputdir, ident, iname, ivar, ilev / 100), verbose) plt.close() # fig, ax = plt.subplots(1, 1, figsize=(12, 4)) ym = int(idata[ivar, idata.major_axis.hour == 0, ilev].mean()) for j, jvar in enumerate(varis): if jvar in idata.items: ax = timeseries_line_trend(idata[:, idata.major_axis.hour == 0, :], jvar, '%s_dep_snht' % ivar, ilev, '%s [K]' % ivar, ax=ax, plabel=ym + 4, ylim=(ym - 5, ym + 5), window=365, label=varnames[j]) ax.grid(True) lgd = ax.legend(bbox_to_anchor=(1.1, 1), loc='upper left', fontsize=10) ax.set_xlim('1979', '2016') ax.set_xlabel('Time (RM:365)') plt.savefig('%s/%s_%s_%s_trends_00Z_%04d.pdf' % (outputdir, ident, iname, ivar, ilev / 100), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_12Z_%04d.pdf' % (outputdir, ident, iname, ivar, ilev / 100), verbose) plt.close() else: fig, ax = plt.subplots(1, 1, figsize=(12, 4)) ym = int(idata[ivar, :, ilev].mean()) for j, jvar in enumerate(varis): if jvar in idata.items: ax = timeseries_line_trend(idata, jvar, '%s_dep_snht' % ivar, ilev, '%s [K]' % ivar, ax=ax, plabel=ym + 4, ylim=(ym - 5, ym + 5), window=730, label=varnames[j]) ax.grid(True) lgd = ax.legend(bbox_to_anchor=(1.1, 1), loc='upper left', fontsize=10) ax.set_xlim('1979', '2016') ax.set_xlabel('Time (RM:730)') plt.savefig('%s/%s_%s_%s_trends_%04d.pdf' % (outputdir, ident, iname, ivar, ilev / 100), bbox_extra_artists=(lgd,), bbox_inches='tight') print_verbose('%s/%s_%s_%s_trends_%04d.pdf' % (outputdir, ident, iname, ivar, ilev / 100), verbose) plt.close() plt.close('all')
def corrections(ident, levels=None, outputdir=None, verbose=0): """ Parameters ---------- ident levels outputdir verbose Returns ------- """ from raso import load_radiosonde from raso.config import outdir import matplotlib.pyplot as plt yplevs = [1000, 3000, 7000, 12500, 17500, 22500, 30000, 40000, 50000, 60000, 85000, 92500] # Pressure Levels, Ticks isonde = load_radiosonde(ident, variables=[]) if outputdir is None: outputdir = outdir + '/figures' # # DATA # if 'detect_opts' not in isonde.attrs: print "No Detection Options found ?", ident return if levels is None: levels = [10000, 30000, 50000, 60000, 70000, 85000, 92500] for icor, iopts in isonde.detect_opts.items(): iname = iopts['savename'] isonde.load_data(iname) ithres = iopts['thres'] ivar = iopts['variable'] idata = getattr(isonde, iname) daynight = iopts.get('daynight', False) # # CONTOUR # for j, jvar in enumerate(['%s_mcor' % ivar, '%s_qcor' % ivar, '%s_qecor' % ivar]): if jvar not in idata.items: continue if daynight: timeseries_var(idata[:, idata.major_axis.hour == 12, :], jvar, freq='M', yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_12Z.pdf" % (outputdir, ident, iname, jvar)) print_verbose("%s/%s_%s_%s_12Z.pdf" % (outputdir, ident, iname, jvar), verbose) timeseries_anomaly(idata[:, idata.major_axis.hour == 12, :], jvar, '%s_era' % ivar, freq='M', yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_dep_12Z.pdf" % (outputdir, ident, iname, jvar)) print_verbose("%s/%s_%s_%s_dep_12Z.pdf" % (outputdir, ident, iname, jvar), verbose) timeseries_var(idata[:, idata.major_axis.hour == 0, :], jvar, freq='M', yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_00Z.pdf" % (outputdir, ident, iname, jvar)) print_verbose("%s/%s_%s_%s_00Z.pdf" % (outputdir, ident, iname, jvar), verbose) timeseries_anomaly(idata[:, idata.major_axis.hour == 0, :], jvar, '%s_era' % ivar, freq='M', yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_dep_00Z.pdf" % (outputdir, ident, iname, jvar)) print_verbose("%s/%s_%s_%s_dep_00Z.pdf" % (outputdir, ident, iname, jvar), verbose) else: timeseries_var(idata, jvar, freq='M', yticklabels=yplevs) plt.savefig("%s/%s_%s_%s.pdf" % (outputdir, ident, iname, jvar)) print_verbose("%s/%s_%s_%s.pdf" % (outputdir, ident, iname, jvar), verbose) timeseries_anomaly(idata, jvar, '%s_era' % ivar, freq='M', yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_dep.pdf" % (outputdir, ident, iname, jvar)) print_verbose("%s/%s_%s_%s_dep.pdf" % (outputdir, ident, iname, jvar), verbose) # # LEVEL # for ilev in levels: if daynight: fig, ax = plt.subplots(3, 1, figsize=(12, 6), sharex=True, sharey=True) varnames = ['M', 'Q', 'QE'] ym = int(idata["%s_dep" % ivar, idata.major_axis.hour == 12, ilev].mean()) for j, jvar in enumerate(['%s_mcor' % ivar, '%s_qcor' % ivar, '%s_qecor' % ivar]): if jvar not in idata.items: continue timeseries_line_correction(idata[:, idata.major_axis.hour == 12, :], jvar, '%s_dep_snht' % ivar, ilev, '%s dep [K]' % ivar, breaks='%s_dep_breaks' % ivar, ax=ax[j], departures='%s_era' % ivar, ylim=(ym - 5, ym + 5), force_snht=True, post_snht=True, plabel=None) idata['%s_dep' % ivar, idata.major_axis.hour == 12, ilev].resample('12h').mean().rolling(window=60, min_periods=1).mean().plot( ax=ax[j], color='gray', zorder=1) ax[j].set_xlim('1979', '2016') ax[j].set_ylabel(varnames[j] + ' dep (ERA) [K]') ax[j].grid(True) ax[0].set_title('Corrections at %d hPa 12Z' % (ilev / 100)) ax[-1].set_xlabel('Time (RM:60)') plt.savefig('%s/%s_%s_%s_corr_12Z_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100))) print_verbose('%s/%s_%s_%s_corr_12Z_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100)), verbose) fig, ax = plt.subplots(3, 1, figsize=(12, 6), sharex=True, sharey=True) ym = int(idata["%s_dep" % ivar, idata.major_axis.hour == 0, ilev].mean()) for j, jvar in enumerate(['%s_mcor' % ivar, '%s_qcor' % ivar, '%s_qecor' % ivar]): if jvar not in idata.items: continue timeseries_line_correction(idata[:, idata.major_axis.hour == 0, :], jvar, '%s_dep_snht' % ivar, ilev, '%s dep [K]' % ivar, breaks='%s_dep_breaks' % ivar, ax=ax[j], departures='%s_era' % ivar, ylim=(ym - 5, ym + 5), force_snht=True, post_snht=True, plabel=None) idata['%s_dep' % ivar, idata.major_axis.hour == 0, ilev].resample('12h').mean().rolling(window=60, min_periods=1).mean().plot( ax=ax[j], color='gray', zorder=1) ax[j].set_xlim('1979', '2016') ax[j].set_ylabel(varnames[j] + ' dep (ERA) [K]') ax[j].grid(True) ax[0].set_title('Corrections at %d hPa 00Z' % (ilev / 100)) ax[-1].set_xlabel('Time (RM:60)') plt.savefig('%s/%s_%s_%s_corr_00Z_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100))) print_verbose('%s/%s_%s_%s_corr_00Z_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100)), verbose) else: fig, ax = plt.subplots(3, 1, figsize=(12, 6), sharex=True, sharey=True) varnames = ['M', 'Q', 'QE'] ym = int(idata["%s_dep" % ivar, :, ilev].mean()) for j, jvar in enumerate(['%s_mcor' % ivar, '%s_qcor' % ivar, '%s_qecor' % ivar]): if jvar not in idata.items: continue timeseries_line_correction(idata, jvar, '%s_dep_snht' % ivar, ilev, '%s dep [K]' % ivar, breaks='%s_dep_breaks' % ivar, ax=ax[j], departures='%s_era' % ivar, ylim=(ym - 5, ym + 5), force_snht=True, post_snht=True, plabel=None) idata['%s_dep' % ivar, :, ilev].resample('12h').mean().rolling(window=60, min_periods=1).mean().plot(ax=ax[j], color='gray', zorder=1) ax[j].set_xlim('1979', '2016') ax[j].set_ylabel(varnames[j] + ' dep (ERA) [K]') ax[j].grid(True) ax[0].set_title('Corrections at %d hPa' % (ilev / 100)) ax[-1].set_xlabel('Time (RM:60)') plt.savefig('%s/%s_%s_%s_corr_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100))) print_verbose('%s/%s_%s_%s_corr_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100)), verbose) plt.close('all')
def data(ident, outputdir=None, verbose=0): """ Automated Data count plots Parameters ---------- ident outputdir verbose Returns ------- """ from raso import load_radiosonde from raso.config import outdir import matplotlib.pyplot as plt yplevs = [1000, 3000, 7000, 12500, 17500, 22500, 30000, 40000, 50000, 60000, 85000, 92500] # Pressure Levels, Ticks isonde = load_radiosonde(ident, variables=['igra', 'data', 'std_data']) if outputdir is None: outputdir = outdir + '/figures' # # DATA # if 'data' in isonde.vars: varis = ['t', 'r'] if isonde.data.columns.isin(varis).sum() == len(varis): dates = pd.Series(1, index=pd.DatetimeIndex( isonde.data[varis].dropna().index.unique())) # events with t,r variables else: varis = isonde.data.columns.tolist() dates = pd.Series(1, index=pd.DatetimeIndex(isonde.data.index.unique())) # events with all variables events = dates.groupby(dates.index.to_period(freq='M')).count() # events per month events.plot(grid=True, kind='area') plt.title("Radiosonde %s (DATA), Sounding Events (%s)" % (isonde.id, ",".join(varis))) plt.xlabel("Month") plt.ylabel("Soundings per Month [#]") plt.savefig('%s/%s_data_counts.pdf' % (outputdir, ident)) print_verbose('%s/%s_data_counts.pdf' % (outputdir, ident), verbose) plt.close() # # IGRA # if 'igra' in isonde.vars: varis = ['t', 'dpd'] if isonde.igra.columns.isin(varis).sum() == len(varis): dates = pd.Series(1, index=pd.DatetimeIndex( isonde.igra[varis].dropna().index.unique())) # events with t,r variables else: varis = isonde.igra.columns.tolist() dates = pd.Series(1, index=pd.DatetimeIndex(isonde.igra.index.unique())) # events with all variables events = dates.groupby(dates.index.to_period(freq='M')).count() # events per month events.plot(grid=True, kind='area') plt.title("Radiosonde %s (IGRA), Sounding Events (%s)" % (isonde.id, ",".join(varis))) plt.xlabel("Month") plt.ylabel("Soundings per Month [#]") plt.savefig('%s/%s_igra_counts.pdf' % (outputdir, ident)) print_verbose('%s/%s_igra_counts.pdf' % (outputdir, ident), verbose) plt.close() # # STD DATA # if 'std_data' in isonde.vars: varis = ['t', 'r'] if isonde.std_data.columns.isin(varis).sum() == len(varis): dates = pd.Series(1, index=pd.DatetimeIndex( isonde.std_data[varis].dropna().index.unique())) # events with t,r variables else: varis = isonde.std_data.columns.tolist() dates = pd.Series(1, index=pd.DatetimeIndex(isonde.std_data.index.unique())) # events with all variables events = dates.groupby(dates.index.to_period(freq='M')).count() # events per month events.plot(grid=True, kind='area') plt.title("Radiosonde %s (STDDATA), Sounding Events (%s)" % (isonde.id, ",".join(varis))) plt.xlabel("Month") plt.ylabel("Soundings per Month [#]") plt.savefig('%s/%s_std_data_counts.pdf' % (outputdir, ident)) plt.close() # for ivar in isonde.std_data.columns.tolist(): if ivar in ['p', 'u', 'v', 'qual']: continue timeseries_var(isonde.std_data, ivar, freq='M', title='RASO %s' % isonde.id, yticklabels=yplevs) plt.savefig("%s/%s_%s_contour.pdf" % (outputdir, ident, ivar)) plt.close() plt.close('all')
def breakpoints(ident, levels=None, outputdir=None, verbose=0): """ Parameters ---------- ident levels outputdir verbose Returns ------- """ from raso import load_radiosonde from raso.config import outdir import matplotlib.pyplot as plt isonde = load_radiosonde(ident, variables=[]) if outputdir is None: outputdir = outdir + '/figures' # # DATA # if 'detect_opts' not in isonde.attrs: print "No Detection Options found ?", ident return if levels is None: levels = [10000, 30000, 50000, 60000, 70000, 85000, 92500] for icor, iopts in isonde.detect_opts.items(): iname = iopts['savename'] isonde.load_data(iname) ithres = iopts['thres'] ivar = iopts['variable'] idata = getattr(isonde, iname) daynight = iopts.get('daynight', False) # # LEVEL # for ilev in levels: if daynight: ym = int(idata[ivar, idata.major_axis.hour == 12, ilev].mean()) breakpoint_timeseries(idata[:, idata.major_axis.hour == 12, :], ivar, p=ilev, post_snht=True, window=365, min_periods=1, ylim=(ym - 5, ym + 5)) plt.savefig("%s/%s_%s_%s_12Z_breakstat_%04d.pdf" % (outputdir, ident, iname, ivar, ilev / 100)) print_verbose("%s/%s_%s_%s_12Z_breakstat_%04d.pdf" % (outputdir, ident, iname, ivar, ilev / 100), verbose) ym = int(idata[ivar, idata.major_axis.hour == 0, ilev].mean()) breakpoint_timeseries(idata[:, idata.major_axis.hour == 0, :], ivar, p=ilev, post_snht=True, window=365, min_periods=1, ylim=(ym - 5, ym + 5)) plt.savefig("%s/%s_%s_%s_00Z_breakstat_%04d.pdf" % (outputdir, ident, iname, ivar, ilev / 100)) print_verbose("%s/%s_%s_%s_00Z_breakstat_%04d.pdf" % (outputdir, ident, iname, ivar, ilev / 100), verbose) else: ym = int(idata[ivar, :, ilev].mean()) breakpoint_timeseries(idata, ivar, p=ilev, post_snht=True, window=730, min_periods=1, ylim=(ym - 5, ym + 5)) plt.savefig("%s/%s_%s_%s_breakstat_%04d.pdf" % (outputdir, ident, iname, ivar, ilev / 100)) print_verbose("%s/%s_%s_%s_breakstat_%04d.pdf" % (outputdir, ident, iname, ivar, ilev / 100), verbose) plt.close('all')
def snht(ident, levels=None, outputdir=None, verbose=0): """ Parameters ---------- ident levels outputdir verbose Returns ------- """ from raso import load_radiosonde from raso.config import outdir import matplotlib.pyplot as plt yplevs = [1000, 3000, 7000, 12500, 17500, 22500, 30000, 40000, 50000, 60000, 85000, 92500] # Pressure Levels, Ticks isonde = load_radiosonde(ident, variables=[]) if outputdir is None: outputdir = outdir + '/figures' # # DATA # if 'detect_opts' not in isonde.attrs: print "No Detection Options found ?", ident return if levels is None: levels = [10000, 30000, 50000, 60000, 70000, 85000, 92500] for icor, iopts in isonde.detect_opts.items(): iname = iopts['savename'] isonde.load_data(iname) ithres = iopts['thres'] ivar = iopts['variable'] idata = getattr(isonde, iname) daynight = iopts.get('daynight', False) # # CONTOUR # if daynight: timeseries_snht(idata[:, idata.major_axis.hour == 12, :], '%s_dep' % ivar, levels=list(ithres * np.array([1, 2, 5, 10, 20])), yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_12Z_snht.pdf" % (outputdir, ident, iname, ivar)) print_verbose("%s/%s_%s_%s_12Z_snht.pdf" % (outputdir, ident, iname, ivar), verbose) timeseries_snht(idata[:, idata.major_axis.hour == 0, :], '%s_dep' % ivar, levels=list(ithres * np.array([1, 2, 5, 10, 20])), yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_00Z_snht.pdf" % (outputdir, ident, iname, ivar)) print_verbose("%s/%s_%s_%s_00Z_snht.pdf" % (outputdir, ident, iname, ivar), verbose) else: timeseries_snht(idata, '%s_dep' % ivar, levels=list(ithres * np.array([1, 2, 5, 10, 20])), yticklabels=yplevs) plt.savefig("%s/%s_%s_%s_snht.pdf" % (outputdir, ident, iname, ivar)) print_verbose("%s/%s_%s_%s_snht.pdf" % (outputdir, ident, iname, ivar), verbose) # # LEVEL # for ilev in levels: fig, ax = plt.subplots(1, 1, figsize=(12, 2)) if daynight: timeseries_line_snht(idata[:, idata.major_axis.hour == 12, :], '%s_dep' % ivar, '%s_dep_snht' % ivar, ilev, '%s dep (12Z) [K]' % ivar, breaks='%s_dep_breaks' % ivar, ax=ax, ylim=(-10, 10)) ax.set_xlabel('Time (RM:60)') plt.savefig('%s/%s_%s_%s_12Z_snht_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100))) print_verbose('%s/%s_%s_%s_12Z_snht_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100)), verbose) timeseries_line_snht(idata[:, idata.major_axis.hour == 0, :], '%s_dep' % ivar, '%s_dep_snht' % ivar, ilev, '%s dep (00Z) [K]' % ivar, breaks='%s_dep_breaks' % ivar, ax=ax, ylim=(-10, 10)) ax.set_xlabel('Time (RM:60)') plt.savefig('%s/%s_%s_%s_00Z_snht_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100))) print_verbose('%s/%s_%s_%s_00Z_snht_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100)), verbose) else: timeseries_line_snht(idata, '%s_dep' % ivar, '%s_dep_snht' % ivar, ilev, '%s dep [K]' % ivar, breaks='%s_dep_breaks' % ivar, ax=ax, ylim=(-10, 10)) ax.set_xlabel('Time (RM:60)') plt.savefig('%s/%s_%s_%s_snht_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100))) print_verbose('%s/%s_%s_%s_snht_%04d.pdf' % (outputdir, ident, iname, ivar, (ilev / 100)), verbose) plt.close('all')