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
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])
'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'