'''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)