'''Module for loading data.'''
import numpy as np
from urllib.request import urlopen
import pylab as plt
#plasma_start
#plasma_end
def get_data(name, shot):
'''Return a scalar value of diagnostic name in shot.'''
url = 'http://golem.fjfi.cvut.cz/utils/data/%i/%s' % (shot, name)
f = urlopen(url)
data = np.loadtxt(f)
f.close()
return np.transpose(data)
def shot_time(shot):
'''Return edges of time of shot in ms.'''
t1 = float(get_data('plasma_start', shot))*1000
t2 = float(get_data('plasma_end', shot))*1000
return t1, t2
def vykreslit_obrazek(shot):
t, data = get_data("bpp",shot)
tlp, datalp = get_data("lp",shot)
datalp=datalp*100
data=data*100
plt.plot(t*1000,datalp)
t1,t2 = shot_time(shot)
plt.plot(t*1000,data)
plt.xlim(t1,t2)
vystrely=[30885,30886,30887,30888,30890,30891,30892,30893,30894,30895,30896,30897,30898]
tunelsonda=[30956,30957,30971,30959,30960,30961,30970,30968]
shots=[30899,30900,30901,30902,30903,30904,30905,30906,30907,30908,30910,30911]
r= [10, 9.5, 9, 8.5, 8, 7.5, 7, 6.5, 6, 5.5, 5, 4.5, 4.2]
l=[10,9.5,9,8.5,8,7.5,7,6.5,6,5.5,4.5,4.2]
def profil(pole,polomer, dT=0.1):
casy = np.arange(9.5, 15, dT)
body= np.zeros((len(vystrely), casy.size))
errorbar=np.zeros((len(vystrely), casy.size))
plt.rc('font', size=20)
plt.figure(figsize=(15,7))
for i in range(len(vystrely)):
print(vystrely[i])
t, data = get_data("bpp",vystrely[i])
t = t*1000
data = data * 100
for j in range(casy.size):
maska = (casy[j] - dT/2 < t) & (t < casy[j] + dT/2)
bod = np.mean( data[maska] )
odchylka= np.std(data[maska])/np.sqrt(np.sum(maska))*3
errorbar[i,j] = odchylka
body[i,j] = bod
# np.savetxt(body, 'body.txt')
# np.savetxt(errorbar, 'odchylky.txt')
for j in range(casy.size):
print(casy[j])
plt.clf()
plt.errorbar(polomer, body[:,j],marker="o",yerr=errorbar[:,j],
markersize=12, label="%.1f ms"%casy[j])
plt.xlabel("r [cm]")
plt.ylabel("$\Phi$ [V]")
plt.legend()
#plt.axvline(7,c="k",ls="dashed")
#plt.axvline(6,c="k",ls="dashed")
#plt.axvline(5,c="k",ls="dashed")
plt.savefig("profilyvcase%.2f.png" %(casy[j]), dpi=300)
def zavit(pole):
plt.figure(figsize=(15,7))
for vystrel in pole:
t, data = get_data("loop_voltage",vystrel)
plt.plot(t*1000, data, label=str(vystrel))
plt.legend(fontsize=20)
plt.xlim(5,20)
plt.xlabel("t [ms]")
plt.ylabel("U_loop [V]")
plt.savefig("napetizavitu", dpi=300)
def proud(pole):
plt.figure(figsize=(15,7))
for vystrel in pole:
t, data = get_data("plasma_current",vystrel)
plt.plot(t*1000, data, label=str(vystrel))
plt.legend(fontsize=20)
plt.xlim(5,20)
plt.xlabel("t [ms]")
plt.ylabel("I_p [A]")
plt.savefig("proudvplasmatu", dpi=300)
def tunel():
vystrel = 30971
t1, tlim = get_data("tp_tlim", vystrel)
t2, bplim = get_data("tp_bplim", vystrel)
t3, tolim = get_data("tp_tolim", vystrel)
t4, bpolim = get_data("tp_bpolim", vystrel)
M = 0.4 * np.log((tlim+bplim)/(tolim+bpolim))
plt.figure(figsize=(15,7))
plt.plot(t1*1000, M)
plt.xlim(9,20)
plt.ylim(-1,1)
plt.xlabel("t [ms]")
plt.ylabel("M")
plt.savefig("Machovocislo", dpi=300)