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')
Пример #2
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
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
Пример #4
0
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
Пример #6
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
Пример #7
0
                         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,
Пример #10
0
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'])
Пример #11
0
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,