def load_and_plot(var, cases, startyear, endyear, period=None, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, p_level=None, relative=False): maps_dic = get_averaged_fields.get_maps_cases( cases, [var], startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, time_mask=period, pressure_adjust=pressure_adjust, p_level=p_level) clear_output() return plot_map_abs_abs_diff(var, cases, maps_dic, relative=relative, figsize=[18, 3], cbar_equal=True, kwargs_abs={}, kwargs_diff={}, axs=None, cmap_abs='Reds', cmap_diff='RdBu_r')
def load_and_plot_diff_mm(varl,to_case,from_cases,startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin,nr_cols=2, pressure_adjust=pressure_adjust, p_level=None, relative=False, width=6., height=2.3): cases = [to_case] + from_cases maps_dic = get_averaged_fields.get_maps_cases(cases,varl,startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, p_level=p_level) nr_rows = int(np.ceil(len(varl)/nr_cols)) nr_cols = len(from_cases) fig, axs = subplots_map(nr_rows, nr_cols, figsize=[width*nr_cols,height*nr_rows]) for i, var in enumerate(varl): if len(varl) == 1: saxs = axs else: saxs = axs[i,:] plot_map_diff_only(var, [to_case,*from_cases], maps_dic, relative=relative, cbar_equal=True, cbar_loc='side', tight_layout=False, inverse_diff=True, axs=saxs) #for from_case,i in zip(from_cases,range(nr_cols)): # sax = axs[:,i] # plot_diff(maps_dic, varl, [from_case,to_case],nr_cols=nr_cols, relative=relative, width=width, axs=sax) subp_insert_abc(axs, pos_y=0.1) return axs
def load_and_plot_diff(varl, cases, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, nr_cols=2, pressure_adjust=pressure_adjust, p_level=None, period=None, relative=False, width=5.): maps_dic = get_averaged_fields.get_maps_cases( cases, varl, startyear, endyear, avg_over_lev=avg_over_lev, time_mask=period, pmin=pmin, pressure_adjust=pressure_adjust, p_level=p_level) plot_diff(maps_dic, varl, cases, nr_cols=nr_cols, relative=relative, width=width, period=None) return
def map_sub(ax3, cases, relative, var, var_map, varl, kwargs_diff=None): if var_map is not None: var = var_map maps_dic = get_averaged_fields.get_maps_cases( cases, varl, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust) plot_map_diff_only( var, cases, maps_dic, relative=relative, cbar_equal=True, kwargs_diff=kwargs_diff, axs=ax3, #cmap_diff='RdBu_r', cbar_loc='under', tight_layout=False)
def load_and_plot_rows(varl, cases, startyear, endyear, period=None, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, p_level=None, relative=False): maps_dic = get_averaged_fields.get_maps_cases( cases, varl, startyear, endyear, avg_over_lev=avg_over_lev, time_mask=period, pmin=pmin, pressure_adjust=pressure_adjust, p_level=p_level) fig, axs = subplots_map(len(varl), 3, figsize=[18, 3 * len(varl)]) ii = 0 for var in varl: axss = axs[ii, :] ii += 1 plot_map_abs_abs_diff(var, cases, maps_dic, relative=relative, figsize=[18, 3], cbar_equal=True, kwargs_abs={}, axs=axss, kwargs_diff={}, cmap_abs='Reds', cmap_diff='RdBu_r') return axs
def load_and_plot_diff_mm(varl, to_case, from_cases, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, nr_cols=2, pressure_adjust=pressure_adjust, p_level=None, relative=False, width=6.): cases = [to_case] + from_cases maps_dic = get_averaged_fields.get_maps_cases( cases, varl, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, p_level=p_level) nr_rows = int(np.ceil(len(varl) / nr_cols)) nr_cols = len(from_cases) fig, axs = subplots_map(nr_rows, nr_cols, figsize=[width * nr_cols, 2.5 * nr_rows]) for from_case, i in zip(from_cases, range(nr_cols)): sax = axs[:, i] plot_diff(maps_dic, varl, [from_case, to_case], nr_cols=nr_cols, relative=relative, width=width, axs=sax) return
kwargs=kwargs, xscale='log', label=case+', '+ area, ylim=[1000,200])#, ax.grid(False, which='both') sns.despine(ax=ax) ax.set_yscale('log') set_scalar_formatter(ax) # maps: if var_map is not None: var=var_map maps_dic = get_averaged_fields.get_maps_cases(cases,[var],startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust) plot_map(var, cases[0], maps_dic, figsize=None, ax=ax3, cmap_abs='Reds', cbar_orientation='horizontal', kwargs_abs=map_kwargs) #plt.tight_layout() return def plt_prof_map_together_ls(var1,var2, areas, cases, asp_rat=1, width=5.5, varl_map=None, map_kwargs={},height_rat = 1.3): nvars = 2 fig = plt.figure(figsize = [width*nvars,asp_rat*width*nvars]) gs = gridspec.GridSpec(2, nvars+1,height_ratios=[1,height_rat], width_ratios=[5,5,1])#width_ratios=[2, 1]) axs_prof = []
varl_abs = ['NCFT_Ghan'] #,'TGCLDCWP'] varl = varl_rel + varl_abs #varl=['ACTNL_incld', 'ACTREL_incld','TGCLDCWP']#,'TGCLDCWP'] period = 'JJA' width = 4.7 asp_rat = 0.48 relative = True cases = [to_case] + from_cases maps_dic = get_averaged_fields.get_maps_cases(cases, varl, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, time_mask=period, pressure_adjust=pressure_adjust, p_level=p_level) nr_cols = len(from_cases) nr_rows = int(np.ceil(len(varl))) fig, axs = subplots_map(nr_rows, nr_cols, figsize=[width * nr_cols, asp_rat * width * nr_rows]) for i, var in enumerate(varl): saxs = axs[i, :] plot_map_diff_only(var, [to_case, *from_cases], maps_dic, relative=(var in varl_rel), cbar_equal=True,
axs = load_and_plot('N_AER', cases, startyear, endyear, avg_over_lev, pmin=pmin,relative=True, pressure_adjust=pressure_adjust) # %% [markdown] # ### Particle number from nucleation: # %% [markdown] # # In sectional scheme: # # %% from sectional_v2.util.plot.plot_maps import subplots_map varl= ['nrSOA_SEC_tot', 'nrSO4_SEC_tot','nrSEC_tot' ] fig, axs = subplots_map(1, len(varl), figsize=[15,3]) for var, ax in zip(varl,axs): maps_dic = get_averaged_fields.get_maps_cases(cases_sec,[var],startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust) plot_map(var, cases_sec[0], maps_dic, figsize=[6, 3], kwargs_abs={}, ax=ax, cmap_abs='Reds') plt.show() # %% from sectional_v2.util.plot.plot_maps import subplots_map varl= ['cb_SOA_SEC01', 'cb_SOA_SEC02','cb_SOA_SEC03' ] fig, axs = subplots_map(1, len(varl), figsize=[15,3]) for var, ax in zip(varl,axs): maps_dic = get_averaged_fields.get_maps_cases(cases_sec,[var],startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin,
v = 'SO4_NA' #varl=[] for v in ['SOA_NA', 'SO4_NA']: #, 'SOA_NA_OCW','SO4_NA_OCW']: varl = [f'{v}coagTend', f'{v}clcoagTend', f'{v}condTend'] + varl # f"{v}SFSIC",f"{v}SFSBC",f"{v}SFSIS",f"{v}SFSBS", f"{v}_mixnuc1", """ for v in [ 'SOA_NA_OCW','SO4_NA_OCW']: varl=varl+ [f'cb_{v}']#'LWDIR_Ghan']#, 'SO4_NAcondTend']#, 'leaveSecH2SO4','leaveSecSOA']#,'TGCLDCWP'] varl = [f"{v}DDF",f"{v}SFWET"]+ varl """ maps_dic = get_averaged_fields.get_maps_cases( cases_all, varl, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust) #, p_level=p_level) # %% def calc_tot_LR(ds, v): return (-ds[f'{v}DDF'] + ds[f'{v}SFWET'] + ds[f'{v}coagTend'] + ds[f'{v}clcoagTend']) def LR_dd_wd(ds, v): return (-ds[f'{v}DDF'] + ds[f'{v}SFWET'] ) # + ds[f'{v}coagTend'] + ds[f'{v}clcoagTend'])
for case in cases: get_field_fixed( case, varl, startyear, endyear, #raw_data_path=constants.get_input_datapath(), pressure_adjust=True, model='NorESM', history_fld='.h0.', comp='atm', chunks=None) maps_dic = get_averaged_fields.get_maps_cases(cases, varl, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, p_level=p_level) maps_dic = get_averaged_fields.get_maps_cases(cases_sec, varl_sec, startyear, endyear, avg_over_lev=avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, p_level=p_level) for period in ['JJA', 'DJF']: maps_dic = get_averaged_fields.get_maps_cases( cases,