示例#1
0
def merge_labels_within_lonlatbox(precur, lonlatbox=list):
    prec_labels = precur.prec_labels.copy()
    corr_xr = precur.corr_xr
    new = core_pp.get_selbox(prec_labels, lonlatbox)
    regions = np.unique(new)[~np.isnan(np.unique(new))]
    pregs = [] ; nregs = [] # positive negative regions
    for r in regions:
        m = view_or_replace_labels(prec_labels, regions=[r])
        s = np.sign(np.mean(corr_xr.values[~np.isnan(m).values]))
        if s == 1:
            pregs.append(r)
        elif s == -1:
            nregs.append(r)
    for regs in [pregs, nregs]:
        if len(regs) != 0:
            maskregions = view_or_replace_labels(prec_labels, regions=regs)
            prec_labels.values[~np.isnan(maskregions).values] = min(regs)
    return prec_labels
示例#2
0
plt.savefig(os.path.join(rg.path_outsub1, f'snapshots_{var}_rm{rm}.pdf'))
#%% Correlation PNA-like RW with Wavenumber 6 phase 2 # only for eastern
import core_pp, find_precursors
values = []
if west_or_east == 'eastern':
    lags_list = range(-10,10)
    for lag in lags_list:
        selbox = (0,360,25,60)
        # selbox = (140,300,20,73)
        tfreq = 1
        # lag = 0
        dates_RV = core_pp.get_subdates(pd.to_datetime(rg.fulltso.time.values),
                                       start_end_date=rg.start_end_TVdate)
        RV_ts = rg.fulltso.sel(time=dates_RV)
        ds_v300 = core_pp.import_ds_lazy(rg.list_precur_pp[1][1])
        dslocal = core_pp.get_selbox(ds_v300, selbox=selbox)



        datesRW = core_pp.get_subdates(pd.to_datetime(dslocal.time.values),
                                       start_end_date=rg.start_end_TVdate)
        datesRW = datesRW + pd.Timedelta(f'{lag}d')
        dslocal = dslocal.sel(time=datesRW)

        wv6local = core_pp.get_selbox(xarray.sel(lag=5), selbox=selbox)
        patternlocal = wv6local.mean(dim='lag')
        ts = find_precursors.calc_spatcov(dslocal, patternlocal)
        ts_15, d = functions_pp.time_mean_bins(ts, tfreq, start_end_date=start_end_TVdate,
                                                   closed_on_date=start_end_TVdate[-1])
        RV_15, d = functions_pp.time_mean_bins(RV_ts, tfreq, start_end_date=start_end_TVdate,
                                                   closed_on_date=start_end_TVdate[-1])
示例#3
0
                                'col_dim': 'tfreq',
                                'x_ticks': np.arange(240, 300, 20),
                                'y_ticks': np.arange(0, 61, 10)
                            })
f_name = 'clustering_dendogram_{}'.format(xrclustered.attrs['hash']) + '.pdf'
path_fig = os.path.join(rg.path_outmain, f_name)
fig.savefig(path_fig, bbox_inches='tight')  # dpi auto 600

#%%
if region != 'init':
    # try:
    # ds_cl_ts = core_pp.get_selbox(ds_cl['xrclusteredall'].sel(q=q, n_clusters=c),
    #                           selbox)
    # ds_new = cl.spatial_mean_clusters(var_filename,
    #                               ds_cl_ts,
    #                               selbox=selbox)
    # ds_new['xrclusteredall'] = xrclustered
    # f_name = 'q{}_nc{}'.format(int(q), int(c))
    # except:
    ds_cl_ts = core_pp.get_selbox(
        ds_cl['xrclusteredall'].sel(tfreq=t, n_clusters=c), selbox)
    ds_new = cl.spatial_mean_clusters(var_filename, ds_cl_ts, selbox=selbox)
    ds_new['xrclusteredall'] = xrclustered
    f_name = 'tf{}_nc{}'.format(int(t), int(c))
    filepath = os.path.join(rg.path_outmain, f_name)
    cl.store_netcdf(ds_new,
                    filepath=filepath,
                    append_hash='dendo_' + xrclustered.attrs['hash'])

    TVpath = filepath + '_' + 'dendo_' + xrclustered.attrs['hash'] + '.nc'