def step_when_2(context): """ When I create a new TwoDSpectrum object """ context.twod = qr.TwoDSpectrum()
def step_given_9(context): """ And I create a new TwoDSpectrum object """ context.twod = qr.TwoDSpectrum()
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
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
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)
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
# 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()
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()
####################################################################### # 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()