예제 #1
0
                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)
예제 #2
0
                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)
예제 #3
0
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)')
예제 #4
0
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
예제 #5
0
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