weights /= sum(weights) new_signal.append( np.array( np.sum([ old_signal[ind] * weights[j] for j, ind in enumerate(inds_in_range) ], axis=0))) else: new_signal.append(np.mean(old_signal[inds_in_range], axis=0)) return np.array(new_signal) ######## FETCH SCALARS ############# for sig_name in scalar_sig_names: signal = PtDataSignal(sig_name) pipeline.fetch('{}_full'.format(sig_name), signal) ######## FETCH SCALARS ############# for sig_name in nb_sig_names: signal = MdsSignal(sig_name, 'NB', location='remote://atlas.gat.com') pipeline.fetch('{}_full'.format(sig_name), signal) ######## FETCH EFIT PROFILES ############# for sig_name in efit_profile_sig_names: signal = MdsSignal('RESULTS.GEQDSK.{}'.format(sig_name), efit_type, location='remote://atlas.gat.com', dims=['psi', 'times']) pipeline.fetch('{}_full'.format(sig_name), signal)
if len(old_signal.shape)==1: new_signal.append(np.nan) else: new_signal.append(np.full(old_signal.shape[1:],np.nan)) else: if exponential_falloff: weights=np.array([np.exp(- np.abs(standard_times[i]-old_timebase[ind]) / falloff_rate) for ind in inds_in_range]) weights/=sum(weights) new_signal.append( np.array( np.sum( [old_signal[ind]*weights[j] for j,ind in enumerate(inds_in_range)], axis=0) ) ) else: new_signal.append(np.mean(old_signal[inds_in_range],axis=0)) return np.array(new_signal) ######## FETCH SCALARS ############# for sig_name in cfg['data']['scalar_sig_names']: signal=PtDataSignal(sig_name) pipeline.fetch('{}_full'.format(sig_name),signal) ######## FETCH STABILITY ############# for sig_name in cfg['data']['stability_sig_names']: signal=MdsSignal('.MIRNOV.{}'.format(sig_name), 'MHD', location='remote://atlas.gat.com') pipeline.fetch('{}_full'.format(sig_name),signal) ######## FETCH SCALARS ############# for sig_name in cfg['data']['nb_sig_names']: signal=MdsSignal(sig_name, 'NB', location='remote://atlas.gat.com') pipeline.fetch('{}_full'.format(sig_name),signal)
from toksearch import PtDataSignal, MdsSignal, Pipeline import matplotlib.pyplot as plt import matplotlib font = {'family': 'normal', 'weight': 'bold', 'size': 22} matplotlib.rc('font', **font) #plt.rcParams.update({'text.usetex': True}) import numpy as np shot = 187076 req_sig_name = 'etsrpinj' true_sig_name = 'pinj' controlled_sig_name = 'etste1' offline_controlled_sig_name = 'etempfit' req_sig = PtDataSignal(req_sig_name).fetch(shot) true_sig = MdsSignal(true_sig_name, 'NB', location='remote://atlas.gat.com').fetch(shot) controlled_sig = PtDataSignal(controlled_sig_name).fetch(shot) #offline_controlled_sig = MdsSignal(r'\ZIPFIT01::TOP.PROFILES.{}'.format(offline_controlled_sig_name),'ZIPFIT01',location='remote://atlas.gat.com',dims=['rhon','times']).fetch(shot) which_proposal = PtDataSignal('etswchprop').fetch(shot) req_scaling = 1e-6 true_scaling = 1e-3 controlled_scaling = 1e-3 offline_controlled_scaling = 1 fig, axes = plt.subplots(nrows=2, ncols=2, sharex=True) axes[0, 0].plot(controlled_sig['times'], controlled_sig['data'] * controlled_scaling, label='core Te (keV)')
font = {'family' : 'normal', 'weight' : 'bold', 'size' : 22} matplotlib.rc('font', **font) #plt.rcParams.update({'text.usetex': True}) import numpy as np shot=187076 req_sig_name='etsrpinj' true_sig_name='pinj' controlled_sig_name='etstein1' offline_controlled_sig_name='etempfit' te_std_dev=1.560 te_mean=1.587 req_sig=PtDataSignal(req_sig_name).fetch(shot) true_sig=MdsSignal(true_sig_name, 'NB', location='remote://atlas.gat.com').fetch(shot) controlled_sig=PtDataSignal(controlled_sig_name).fetch(shot) #offline_controlled_sig = MdsSignal(r'\ZIPFIT01::TOP.PROFILES.{}'.format(offline_controlled_sig_name),'ZIPFIT01',location='remote://atlas.gat.com',dims=['rhon','times']).fetch(shot) which_proposal=PtDataSignal('etswchprop').fetch(shot) prop_colors=['r','r','y','g','g'] props=[] for i in range(5): props.append(PtDataSignal(f'etsteprop{i}').fetch(shot)) req_scaling=1e-6 true_scaling=1e-3 controlled_scaling=1e-3 offline_controlled_scaling=1
ricardo_fit_psi_correction = 1. #0.792 max_ind = {'temp': 50, 'dens': 50, 'itemp': 16} ricardo_input_max_ind = max_ind[which_sig] ricardo_fit_max_ind = 121 rho_or_psin = 'psin' zipfit_norm = {'temp': 1e3, 'dens': 1, 'itemp': 1} ricardo_norm = {'temp': 1e3, 'dens': 1, 'itemp': 1} y = [] x = [] for i in range(1, ricardo_input_max_ind): sig_name = 'fts{}{}'.format(ricardo_input_signame[which_sig], i) print(sig_name) result = PtDataSignal(sig_name).fetch(shot) y.append(result['data']) if i == 1: times = result['times'] if which_sig in ['dens', 'temp']: sig_name = 'fts{}{}'.format(rho_or_psin, i) else: sig_name = 'fts{}{}'.format('cpsin', i) result = PtDataSignal(sig_name).fetch(shot) x.append(result['data']) time_ind = np.searchsorted(times, mytime) x = np.array(x).T y = np.array(y).T