Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 4
0
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')
Exemplo n.º 5
0
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)):
Exemplo n.º 7
0
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])
Exemplo n.º 9
0
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,