Exemplo n.º 1
0
def plot_casewise(var):
    f, ax = plt.subplots(1, 4, sharey=True)
    ax[0].set_ylabel(var + ' ({})'.format(TILTCASE))
    CASE = {}
    for cnv, v in enumerate(['NOT_B', 'NOT_Y', 'BOTH', 'NEITHER']):
        SMPAnalysis.fetch_from(DATA_DIR + '/DUMMY_' + v)
        CASE[v] = SMPAnalysis('')
        # for j in range(CASE[v].pray.shape[0]):
        z = CASE[v][:, 1][VARS]
        #     if v=='NOT_B':
        #         z['B'] *= 0
        #     if v=='NOT_Y':
        #         z['Y'] *= 0
        #     if v=='NEITHER':
        #         z['Y'] *= 0
        #         z['B'] *= 0
        ax[cnv].plot(z['Y'] * 1e3, ST[var](z), '--.', label='PYTHON')
        ax[cnv].plot(CASE[v][:, 1:]['Y'][1:] * 1e3,
                     CASE[v].stunee[var][1:, 1:],
                     '--.',
                     label='POLVAL')
        ax[cnv].legend()
        ax[cnv].set_title(v)
        ax[cnv].grid()
        ax[cnv].set_xlabel('Y [mm]')
Exemplo n.º 2
0
def load_case(dir_name):
    dir_path = '../data/ARTEM_TEST/' + dir_name
    SMPAnalysis.fetch_from(dir_path)
    cw_mrk = sorted(SMPAnalysis.list_markers('CW'), key=lambda x: float(x[2:]))
    cw_arr = RunContainer(*cw_mrk)
    if len(SMPAnalysis.list_markers('DECOH')) > 0:
        decoh_data = np.loadtxt(dir_path + '/STUNEE:DECOH.dat',
                                dtype=[('pid', int)] + MU_TYPE)
        decoh_pray = NLF['PRAY'][1](dir_path + '/PRAY:DECOH.dat')
        cw_arr.decoh = Bundle(data=decoh_data, pray=decoh_pray)
    return cw_arr
Exemplo n.º 3
0
 def __init__(self, *marker_list):
     self.count = len(marker_list)
     self.shape = (self.count, )
     self._mrk_list = marker_list
     self.run_list = np.empty(self.count, dtype=object)
     self.fit_parameters = Bundle()
     for i, mrk in enumerate(marker_list):
         self.run_list[i] = SMPAnalysis(mrk)
Exemplo n.º 4
0
def plot_3D_opt_cases(var, tilt_case):
    data_dir = '../data/TSS/{}/{}'.format(tilt_case, 'UNOPT')
    SMPAnalysis.fetch_from(data_dir + '/DUMMY_BOTH')
    case = SMPAnalysis('')
    z = case[VARS]

    fig = plt.figure(figsize=plt.figaspect(0.5))
    for i, opt_case in enumerate(['UNOPT', 'OPTIM']):
        data_dir = '../data/TSS/{}/{}'.format(tilt_case, opt_case)
        st = load_davecs(data_dir)
        ax = fig.add_subplot(2, 2, i + 1, projection='3d')
        ax.set_xlabel('Y [mm]')
        ax.set_ylabel('B')
        ax.set_title(var + ' ({}, {})'.format(tilt_case, opt_case))
        var_vals = np.array([st[var](v) for v in z.T]).T
        for j, v in enumerate(var_vals.T):
            ax.plot(z['Y'][:, j], z['B'][:, j], var_vals[:, j])
        art.form(ax)
    for i, opt_case in enumerate(['UNOPT', 'OPTIM']):
        data_dir = '../data/TSS/{}/{}'.format(tilt_case, opt_case)
        ax = fig.add_subplot(2, 2, i + 3, projection='3d')
        ax.set_xlabel('Y [mm]')
        ax.set_ylabel('B')
        SMPAnalysis.fetch_from(data_dir + '/DUMMY_BOTH')
        case = SMPAnalysis('')
        z = case[VARS]
        var_vals = case.stunee[var]
        for j, v in enumerate(var_vals.T):
            ax.plot(z['Y'][:, j], z['B'][:, j], var_vals[:, j])
        art.form(ax)
Exemplo n.º 5
0
def plot_3D(var, tilt_case, opt_case):
    data_dir = '../data/TSS/{}/{}'.format(tilt_case, opt_case)
    SMPAnalysis.fetch_from(data_dir + '/DUMMY_BOTH')
    case = SMPAnalysis('')
    z = case[VARS]
    st = load_davecs(data_dir)
    po_vals = case.stunee[var]
    py_vals = np.array([st[var](v) for v in z.T]).T

    fig = plt.figure(figsize=plt.figaspect(0.5))
    ax = fig.add_subplot(121, projection='3d')
    ax.set_xlabel('Y [mm]')
    ax.set_ylabel('B')
    ax.set_title(var + ' ({}, {}, {})'.format(tilt_case, opt_case, 'POLVAL'))
    for i, v in enumerate(po_vals.T):
        ax.plot(z['Y'][:, i], z['B'][:, i], po_vals[:, i])
    art.form(ax)
    ax = fig.add_subplot(122, projection='3d')
    ax.set_xlabel('Y [mm]')
    ax.set_ylabel('B')
    ax.set_title(var + ' ({}, {}, {})'.format(tilt_case, opt_case, 'PYTHON'))
    for i, v in enumerate(py_vals.T):
        ax.plot(z['Y'][:, i], z['B'][:, i], py_vals[:, i])
    art.form(ax)
Exemplo n.º 6
0
import lmfit
import numpy as np
import matplotlib.pyplot as plt
plt.ion()
from SMP.spin_motion_perturbation import guess_freq, guess_phase, SMPAnalysis
import artem_test as art
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

sine = art.sine
jitsine = art.jitsine

SMPAnalysis.fetch_from('../data/ARTEM_TEST/SEXTVAR/SEXT1')


def relLik(model0, model1):
    return np.exp((model0.aic - model1.aic) / 2)


dat = SMPAnalysis('CW1')

n = dat.trpspi.shape[0]
sx = dat.trpspi['S_X'][:, 28]  #+ np.random.normal(0,1e-2,n)
sy = dat.trpspi['S_Y'][:, 28]  #+ np.random.normal(0,1e-2,n)
Py = dat.P['Y']  #+ np.random.normal(0,1e-2,n)
t = dat.trpspi['TURN'][:, 28] * 1e-6

syf0g = guess_freq(t, sy)
syp0g = guess_phase(t, sy)

smodel = lmfit.Model(sine)
jsmodel = lmfit.Model(jitsine)
Exemplo n.º 7
0
## analysis script for the making of my seminar presentation
import numpy as np
import matplotlib.pyplot as plt
plt.ion()
from SMP.spin_motion_perturbation import guess_freq, guess_phase, SMPAnalysis
import artem_test as art
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf

font = {'size': 14}
plt.rc('font', **font)

SMPAnalysis.fetch_from('../data/ARTEM_TEST/SEXTVAR/SEXT1')

dat = SMPAnalysis('CW1')

f, ax = plt.subplots(1, 1)
pidmin = 28
ymin = dat.pray[pidmin]['Y'] * 1e3
pidmax = 24
ymax = dat.pray[pidmax]['Y'] * 1e3
ax.plot(dat['T'][:, pidmin],
        dat['D'][:, pidmin],
        '--.',
        label='y-offset: {:4.2f} [mm]'.format(ymin))
ax.plot(dat['T'][:, pidmax],
        dat['D'][:, pidmax],
        '--.',
        label='y-offset: {:4.2f} [mm]'.format(ymax))
ax.set_xlabel('Phase difference')
ax.set_ylabel('(K-K0)/K0')
ax.legend()
Exemplo n.º 8
0
        ax.plot(traj[x] * 1e3,
                traj[y] * 1e3,
                ST[VAR](traj),
                label='{:4.2} [mm]'.format(traj[x][0] * 1e3))
    ax.legend()
    art.form(ax)


if __name__ == '__main__':
    TILTCASE = sys.argv[1].upper() if len(sys.argv) > 1 else 'IMPERFECT'
    OPTCASE = sys.argv[2].upper() if len(sys.argv) > 2 else 'UNOPT'
    DATA_DIR = '../data/TSS/{}/{}'.format(TILTCASE, OPTCASE)
    VAR = sys.argv[3] if len(sys.argv) > 3 else 'mu0'
    ST = load_davecs(DATA_DIR)

    SMPAnalysis.fetch_from(DATA_DIR + '/DUMMY_BOTH')
    case = SMPAnalysis('')
    z = case[VARS]

    var_X, var_Y = 'Y', 'B'

    z0 = np.zeros_like(z)
    ## Trajectory: line
    z0[var_X] = z[var_X]
    plot_main(z0, var_X, var_Y, VAR, 'line')

    ## Trajectory: (cos, sin)
    t = np.linspace(0, 1, 51)
    xmax = z[var_X].max()
    ymax = z[var_Y].max()
    nray = z.shape[1]