コード例 #1
0
ファイル: twod.py プロジェクト: malypav/quantarhei
def step_when_2(context):
    """

        When I create a new TwoDSpectrum object

    """
    context.twod = qr.TwoDSpectrum()
コード例 #2
0
ファイル: twod.py プロジェクト: malypav/quantarhei
def step_given_9(context):
    """

        And I create a new TwoDSpectrum object

    """
    context.twod = qr.TwoDSpectrum()
コード例 #3
0
def _container(context, N, cls):

    import numpy

    Nn = int(N)

    spectra = []

    def func(x, y, t):

        Delta = 10.0
        omega = 2.0 * 3.14159 / 20.0
        gamma = 1.0 / 100.0

        data = numpy.zeros((len(x), len(y)))

        for i_x in range(len(x)):
            data[i_x, :] = numpy.exp(-((x[i_x]+y)/Delta)**2)* \
                                numpy.cos(omega*t)*numpy.exp(-t/gamma)

        return data

    time = cls(0.0, Nn, 2.0)
    xrange = qr.ValueAxis(-50.0, 100, 1.0)
    yrange = qr.ValueAxis(-50.0, 100, 1.0)

    cont = qr.TwoDSpectrumContainer()
    cont.use_indexing_type(time)

    for k_n in range(Nn):
        tt = time.data[k_n]
        data = func(xrange.data, yrange.data, tt)
        spect = qr.TwoDSpectrum()
        spect.set_resolution("off")
        spect.set_data_flag("total")

        #spect.set_data(data)
        spect._add_data(data, dtype="total")

        spect.set_axis_1(xrange)
        spect.set_axis_3(yrange)
        spectra.append(spect)

        cont.set_spectrum(spect, tt)

    context.container = cont
コード例 #4
0
def step_given_1(context, N):
    """

        Given that I have {N} TwoDSpectrum objects

    """
    spectra = []
    ids = []

    for i_n in range(int(N)):
        spec = qr.TwoDSpectrum()
        itsid = id(spec)
        spectra.append(spec)
        ids.append(itsid)

    context.spectra = spectra
    context.ids = ids
コード例 #5
0
ファイル: twod_para.py プロジェクト: foxfoxfox7/mySci
def sum_twod(m, laser):
    for i, tt2 in enumerate(t2_ax.data):
        name = laser + '_' + str(int(tt2)) + '.npy'

        global twod

        # Create the spectrum for the timestep as the first in the list
        twod = tot_cont[0][m].get_spectrum(t2_ax.data[i])

        # for all the rest of the list, add it to the first spectrum
        for j in range(n_per_loop - 1):
            twod.add_data(tot_cont[j + 1][m].get_spectrum(t2_ax.data[i]).data)

        # If there is data already saved toa file, load it and add it
        try:
            twod_load = qr.TwoDSpectrum()
            twod_load.load_data(name)
            twod.add_data(twod_load.data)
        except:
            print('first loop')

        twod.save_data(name)
コード例 #6
0
ファイル: plotFuncs.py プロジェクト: foxfoxfox7/mySci
def get_spectrum_from_data2(xax, yax, data, timestamp):

    x_ax_n = len(xax)
    x_ax_start = xax[0]
    x_ax_fin = xax[-1]
    x_ax_len = x_ax_fin - x_ax_start
    x_ax_step = x_ax_len / x_ax_n
    x_ax = qr.FrequencyAxis(x_ax_start, x_ax_n, x_ax_step)

    y_ax_n = len(yax)
    y_ax_start = yax[0]
    y_ax_fin = yax[-1]
    y_ax_len = y_ax_fin - y_ax_start
    y_ax_step = y_ax_len / y_ax_n
    y_ax = qr.FrequencyAxis(y_ax_start, y_ax_n, y_ax_step)

    onetwod = qr.TwoDSpectrum()
    onetwod.set_axis_1(x_ax)
    onetwod.set_axis_3(y_ax)
    onetwod.set_data(data)
    onetwod.set_t2(timestamp)

    return onetwod
コード例 #7
0
ファイル: post_twod.py プロジェクト: foxfoxfox7/mySci
# Anisotropy (2d plot)
########################################################################

#with qr.energy_units('1/cm'):
#    xaxis = np.array(spectra[0][0].xaxis.data[lim1:lim2])
#    yaxis = np.array(spectra[0][0].yaxis.data[lim1:lim2])

for i, tt2 in enumerate(t2_dict.data):
    hh = np.array(spectra[0][i].data)  #[lim1:lim2,lim1:lim2])
    hv = np.array(spectra[1][i].data)  #[lim1:lim2,lim1:lim2])
    anis_array = (hh - hv) / (hh + (2 * hv))
    print(anis_array.shape)
    print(anis_array[500, 500])

    with qr.energy_units('1/cm'):
        one_twod = qr.TwoDSpectrum()
        one_twod.set_axis_1(spectra[0][0].xaxis)
        one_twod.set_axis_3(spectra[0][0].yaxis)
        one_twod.set_t2(tt2)
        one_twod.set_data(anis_array)

        print(one_twod.get_max_value())

        one_twod.plot()
        plt.xlim(en1, en2)
        plt.ylim(en1, en2)
        plt.show()

        di_cut = one_twod.get_diagonal_cut()
        di_cut.plot()
        plt.show()
コード例 #8
0
ファイル: twod_mock.py プロジェクト: foxfoxfox7/mySci
    pool.close()
    pool.join()

    for i, tt2 in enumerate(t2s.data):
        paraName = 'para' + str(i) + '.npy'
        perpName = 'perp' + str(i) + '.npy'

        twodPara = grandContainer[0][0].get_spectrum(t2s.data[i])
        twodPerp = grandContainer[0][1].get_spectrum(t2s.data[i])

        for j in range(paraRepeatN-1):
            twodPara.add_data(grandContainer[j+1][0].get_spectrum(t2s.data[i]).data)
            twodPerp.add_data(grandContainer[j+1][1].get_spectrum(t2s.data[i]).data)

        try:
            twodPara2 = qr.TwoDSpectrum()
            twodPara2.load_data(paraName)
            twodPara.add_data(twodPara2.data)

            twodPerp2 = qr.TwoDSpectrum()
            twodPerp2.load_data(perpName)
            twodPerp.add_data(twodPerp2.data)
        except:
            print('first loop')

        twodPara.save_data(paraName)
        twodPerp.save_data(perpName)

    grandContainer.clear()

    t2 = time.time()
コード例 #9
0
ファイル: twod_para.py プロジェクト: foxfoxfox7/mySci
#######################################################################
# display
#######################################################################

para = []
perp = []
spectra = [para, perp]
en1 = 11000
en2 = 13500

for m, laser in enumerate(las_pol):
    for i, tt2 in enumerate(t2_ax.data):
        name = laser + '_' + str(int(tt2)) + '.npy'

        td_final = qr.TwoDSpectrum()
        td_final.load_data(name)
        td_final.set_data_type()
        td_final.set_axis_1(twod.xaxis)
        td_final.set_axis_3(twod.yaxis)
        td_final.devide_by(totalSpec)
        spectra[m].append(td_final)

        with qr.energy_units('1/cm'):
            td_final.plot()
            plt.xlim(en1, en2)
            plt.ylim(en1, en2)
            if _save_:
                plt.savefig(save_dir + name + '.png')
            if _show_:
                plt.show()