Exemplo n.º 1
0
def table(name, data):
	j=0
	i=0
	f = np.zeros(len(data))
	for i in range(len(data)):
		if(type(data[i][0]) == type(dummy) or type(data[i][0]) == type(dummyarray[1]) or type(data) == type(udummyarray)):
			f[i] = True
		else:
			f[i] = False
	print(f)
	#Runden
	for i in range(len(data)):
		if(f[i]):
			for j in range(data[0]):
				sdevs(data[i][j]) = rts(sdevs(data[i][j]))
				noms(data[i][j]) = round((noms(data[i][j]), -int(m.floor(m.log10(abs(x))))))
							
			
	output = open(name, 'w')
	output.write(r'\begin{table}[h]' + '\n' + r'\centering' + '\n' + r'\caption{CAPTION}' + '\n' +r'\sisetup{%uncertainty-seperator = {\,},'+'\n'+r'table-number-alignment = center,'+'\n'+'table-unit-alignment = center,'+'\n'+'%table-figures-integer = 1,'+'\n'+'%table-figures-decimal = 1,'+'\n'+'table-auto-round = true'+'\n'+'}'+'\n'+ r'\begin{tabular}{ ')
	for i in range(len(data)):
		if(f[i]):
			output.write(r'S[table-format= 3.1]'+'\n'+' @{\,$\pm{}$\,} '+'\n' + r' S[table-format= 3.1] ')
		else:
			output.write(r' S[table-format= 3.1] '+'\n')
	output.write(r'}' + '\n' + r'\toprule' + '\n')
	
	for i in range(len(data)):
		if(i < (len(data)-1)): 
			if(f[i]):
				output.write(r'\multicolumn{2}{c}{TITLE}'+'\n'+'&')
			else:
				output.write(r'{$\text{Title}$}'+'\n'+'&')
		else:
			if(f[i]):
				output.write(r'\multicolumn{2}{c}{TITLE} \\'+'\n')
			else:
				output.write(r'{$\text{Title}$} \\'+'\n')
	output.write(r' \midrule' + '\n')
	
	#Tabelle
	for j in range(len(data[0])):
		i = 0
		while i <= len(data)-1:
				if(f[i]):
					if(i == len(data)-1):
						output.write(str(data[i][j].n) + '&' + str(data[i][j].s) + r'\\' + '\n')
					else:
						output.write(str(data[i][j].n)+ '&' + str(data[i][j].s) + '&')
					i = i+1
				else:
					if(i == len(data)-1):
						output.write(str(data[i][j]) + r'\\' + '\n')
					else:
						output.write(str(data[i][j]) + '&')
					i = i+1
	#Tabelle Ende
	output.write(r'\bottomrule' + '\n' + r'\end{tabular}' + '\n' + r'\label{tab:LABEL}' + '\n' + r'\end{table}')
	output.close()
Exemplo n.º 2
0
    Z.append(np.sqrt(2 * np.pi) * hoehe[i] * sigma[i])
    Q.append(Z[i] / (omega_4pi * A_jetzt * W[i] / 100 * 4676))


#Potenzfunktion für Fit
def potenz(x, a, b, c, e):
    return a * (x - b)**e + c


#Durchführung des Exponential-Fits und Ausgabe der Parameter
#print('Daten für den Exponentialfit:')
#print(noms(Q), noms(E_det))
params2, covariance2 = curve_fit(potenz,
                                 noms(E_det),
                                 noms(Q),
                                 sigma=sdevs(Q),
                                 p0=[1, 0.1, 0, 0.5])
errors2 = np.sqrt(np.diag(covariance2))
#Zusammenfassen der Fit-Parameter
a = ufloat(params2[0], errors2[0])
b = ufloat(params2[1], errors2[1])
c = ufloat(params2[2], errors2[2])
e = ufloat(params2[3], errors2[3])

#-----------------------Teilaufgabe b) {Untersuchung des Cs-Spektrums}
data_b = np.genfromtxt('data/Cs137.txt', unpack=True)
x_plot = np.linspace(0, len(data_b), len(data_b))

#Finde Peaks in Spektrum und ordne sie der Energie zu
peaks_2 = find_peaks(data_b, height=60, distance=20)
indexes_2 = peaks_2[0]
Exemplo n.º 3
0
#E=E[1:]
#E_det=E_det[1:]


#Potenzfunktion für Fit
def potenz(x, a, b, c, e):
    return a * (x - b)**e + c


#Durchführung des Exponential-Fits und Ausgabe der Parameter
#print('Daten für den Exponentialfit:')
#print(noms(Q), noms(E_det))
params2, covariance2 = curve_fit(potenz,
                                 noms(E_det),
                                 noms(Q),
                                 sigma=sdevs(Q),
                                 p0=[1, 0.1, 0, 0.5])
errors2 = np.sqrt(np.diag(covariance2))
#Zusammenfassen der Fit-Parameter
a = ufloat(params2[0], errors2[0])
b = ufloat(params2[1], errors2[1])
c = ufloat(params2[2], errors2[2])
e = ufloat(params2[3], errors2[3])

#Ausgabe der Fit-Parameter
print('\nKalibrationswerte Potenzfunktion:')
print(f'Steigung a = {a}')
print(f'Verschiebung b = {b}')
print(f'Verschiebung c = {c}')
print(f'Exponent e = {e}')
Exemplo n.º 4
0
#Plotten des vom Detektor aufgenommenen Spektrums + logarithmische y-Achse evtl mit Enegrie
x=np.linspace(1,8192,8192)
plt.bar(lin(x,*params), data, label='Messdaten')
plt.xlim(0, 1600)
plt.xlabel(r'Energie $E$')
plt.ylabel(r'Zählergebnis $N$')
plt.legend(loc='best')
plt.yscale('log')
plt.savefig('build/Eu_log_Energie.pdf')
plt.clf()

#Plotten der Eichung/Kalibrierung am Eu-Spektrum
x=np.linspace(250,3700,3450)
plt.plot(x, lin(x,*params),'r-',label='Fit')
plt.errorbar(noms(index_f), noms(E), yerr=sdevs(E), xerr=sdevs(index_f), fillstyle= None, fmt=' x', label='Daten')
plt.ylim(0,1500)
plt.xlim(0, 4000)
plt.xlabel(r'Kanalnummer $\mu_\mathrm{i}$')
plt.grid()
plt.ylabel(r'$E_\gamma\:/\: \mathrm{keV}$')
plt.legend()
plt.savefig('build/kalibration.pdf')
plt.clf()

#--------------------Detektoreffizenz
print('\n-------------Detektoreffizentz----------------')
#Berechnung der Aktivität am Messtag
A=ufloat(4130,60) #Aktivität Europium-Quelle am 01.10.2000
lamda = ufloat(1.6244e-9, 0.0019e-9) #Zerfallskonstante Europium in Tagen in s⁻¹
dt = 18*365.25 + 194 #Zeitintervall in Tagen
Exemplo n.º 5
0
perr = np.sqrt(np.diag(covs))
param = unp.uarray(params, perr)
# print(param)
alpha = param[2] * unp.log(param[0] * T + param[1])
# print(alpha)

# Cp bestimmen
Cp = M / m * E / dT


# Cv bestimmen
Cv = Cp - 9 * (alpha[1:]) ** 2 * V0 * T[1:] * K


# Plot
plt.errorbar(noms(T[1:]), noms(Cp), xerr=sdevs(T[1:]), yerr=sdevs(Cp), fmt="bx", label=r"$C_p$")
plt.errorbar(noms(T[1:]), noms(Cv), xerr=sdevs(T[1:]), yerr=sdevs(Cv), fmt="mx", label=r"$C_V$")
plt.grid()
plt.xlabel(r"$T\:/\:\si\kelvin$")
plt.ylabel(r"$C_\text{V / p}$ $/$ $\si{\joule\per\mole\per\kelvin}$")
plt.legend(loc="best", numpoints=1)
# plt.show()
plt.savefig("pc/cvcp.pdf")
plt.savefig("pc/plot.pdf")
plt.clf()

TT = T[1:]
Cvv = Cv
Td = unp.uarray(np.zeros(8), 0)
Cvd = unp.uarray(np.zeros(8), 0)
for i in range(len(TT)):