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 corr_plt_latlon(var_c, varl_to, cases_ctrl=cases_orig, case_oth=cases_sec[0], cmap='RdBu_r', pmin=850.): # %% cbar_orientation = 'vertical' cases_ctrl = cases_orig case_oth = cases_sec[0] ncol = len(cases_ctrl) nrow = len(varl_to) subfig_size = 2.6 asp_ratio = 1.6 figsize = [subfig_size * ncol * asp_ratio, subfig_size * nrow] # noinspection PyTypeChecker fig, axs = subplots_map(nrow, ncol, figsize=figsize, sharex=True, sharey=True) norm_dic = dict( NCONC01=colors.SymLogNorm(vmin=-1e3, vmax=1e3, linthresh=10), NMR01=colors.SymLogNorm(vmin=-10, vmax=10, linthresh=.1), AWNC_incld=colors.SymLogNorm(vmin=-20, vmax=20, linthresh=.1), AREL_incld=colors.SymLogNorm(vmin=-5, vmax=5, linthresh=.1) ) for j, var in enumerate(varl_to): saxs = axs[j, :] for i, case in enumerate(cases_ctrl): ax = saxs[i] _vars = [var, var_c] _ds = cases_dic[case_oth][_vars]- cases_dic[case][_vars] _ds = _ds.sel(lev=slice(pmin,None)) _da_corr = corr(_ds[var],_ds[var_c], dim=['time','lev']) nn_ctrl = get_nice_name_case(case) nn_oth = get_nice_name_case(case_oth) title = f'Correlation $\Delta V = V_x - V_y$),\n x={nn_oth}, y={nn_ctrl}' _da_corr.load() label = f'corr($\Delta${get_fancy_var_name(var)},$\Delta${get_fancy_var_name(var_c)})'#) plt_kwargs ={} plt_kwargs = make_cbar_kwargs(label, plt_kwargs, cbar_orientation) plt_map(_da_corr, ax=ax, cmap=cmap, # cbar_orientation='vertical', # #ax=ax, # #norm=norm_dic[var], # #relative=False, # #ylim=[1e3, 200], **plt_kwargs) ax.set_title(title) for ax in axs.flatten(): ax.set_ylabel('') ax.set_xlabel('') #for ax in axs[:, 0]: # ax.set_ylabel('Pressure [hPa]') for ax in axs[-1, :]: ax.set_xlabel('Latitude [$^\circ$N]') fig.tight_layout() #fn = filen_base + f'corr_NMR_N_clouds_{case_oth}' + '_'.join(cases_ctrl) + f'{startyear}-{endyear}' #plt.savefig(fn + '.pdf') #plt.savefig(fn + '.png') plt.show() # %% return _da_corr
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 plot_diff(maps_dic, varl, cases, nr_cols=2, relative=False, width=5., axs=None): #fig, axs = subplots_map(int(np.ceil(len(varl)/2)), 2, figsize=[10,4*len(varl)]) if axs is None: nr_rows = int(np.ceil(len(varl) / nr_cols)) print(nr_rows) fig, axs = subplots_map(nr_rows, nr_cols, figsize=[width * nr_cols, 2.5 * nr_rows ]) #7*nr_cols,3*nr_rows]) for var, ax in zip(varl, axs.flatten()): plot_map_diff_2case(var, cases[0], cases[1], maps_dic, relative=relative, ax=ax, 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.): 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
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, kwargs_diff={}, axs=saxs, cmap_diff='RdBu_r', cbar_loc='side', tight_layout=False, inverse_diff=True) #for from_case,i in zip(from_cases,range(nr_cols)):
def plot_stuff(): # %% var = 'AWNC_incld' case1 = cases[0] case2 = cases[2] avg_over_lev = True groupby = None dims = ('lon', ) area = 'Global' ci = .95 avg_dim = 'time' endyear = '2010-12' startyear = '2008-01' # %% T, t, sig_map, data4comp = get_significance_map_paired_monthly( var, case1, case2, startyear, endyear, pmin=pmin, pressure_adjust=pressure_adjust, avg_over_lev=avg_over_lev, ci=ci, groupby=groupby, dims=dims, area=area, avg_dim=avg_dim) # %% da1 = data4comp[case1] da2 = data4comp[case2] mean_D = data4comp[f'{case1}-{case2}'].mean(avg_dim) # %% fig, axs = plt.subplots(3, figsize=[4, 7]) t.where((t > T) | (t < -T)).plot(ax=axs[0], robust=True) (mean_D / da2.mean(avg_dim) * 100).where((t > T) | (t < -T)).plot( ax=axs[1], vmax=10) ((mean_D / da2.mean(avg_dim) * 100)).plot(ax=axs[2], robust=True, vmax=10) plt.suptitle(endyear) for ax in axs.flatten(): ax.set_ylim([1e3, 100]) ax.set_yscale('log') plt.show() # %% fig, axs = subplots_map(3, figsize=[4, 7]) for ax in axs.flatten(): fix_axis4map_plot(ax) plt_map(t.where((t > T) | (t < -T)), ax=axs[0], robust=True) plt_map((mean_D / da2.mean(avg_dim) * 100).where((t > T) | (t < -T)), ax=axs[1], vmax=10) plt_map((mean_D / da2.mean(avg_dim) * 100), ax=axs[2], robust=True, vmax=10) plt.suptitle(endyear) plt.show() # %% return
axs = load_and_plot('N_AER', cases, startyear, endyear, avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust) # %% 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])
axs = load_and_plot(var, cases3, startyear, endyear, avg_over_lev, pmin=pmin, pressure_adjust=pressure_adjust, relative=True) # %% [markdown] # # SECTIONAL PARTICLES # %% 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,