Sandbox/StudentskeKody/0518MichFarn/GOLEMdensity.py


# coding: utf-8

# In[4]:

get_ipython().magic('pylab inline')
import numpy as np
import urllib.request
import matplotlib.pyplot as plt
import matplotlib
import sympy as sy
import scipy as sp
import numpy as np
import math
import os


# In[5]:

def smooth(data, box_pts): 
#Smoothing function
    box = np.ones(box_pts)/box_pts
    data_smooth = np.convolve(data, box, mode='same')
    return data_smooth

def shift(x,sample): 
    t=0
    m=1
    while np.mean(x[t:sample+t]) < 1:
        i = np.mean(x[t:sample+t])
        if (i < m):
            m = i
        t=t+sample
    return -1*m

def data_array(data): #getdata from GOLEM database
    datas = urllib.request.urlopen(data)
    lines = datas.readlines()
    for k,l in enumerate(lines):
        lines[k] = l.strip().split()
        for i,j in enumerate(lines[k]):
            try: 
                lines[k][i] = float(j)
            except 'VallueError':
                print('not a number')
    return array(lines)


# In[6]:

def current_time(shot):
	current = data_array('http://golem.fjfi.cvut.cz/utils/data/%i/plasma_current'%shot)
	return current[:,0]

def current_data(shot):
	current = data_array('http://golem.fjfi.cvut.cz/utils/data/%i/plasma_current'%shot)
	return current[:,1]

def digital_time(shot):
	digital = data_array('http://golem.fjfi.cvut.cz/utils/data/%i/electron_density'%shot)
	return digital[:,0]

def digital_data(shot):
	digital = data_array('http://golem.fjfi.cvut.cz/utils/data/%i/electron_density'%shot)
	return digital[:,1]

def green_time(shot):
	green = data_array('http://golem.fjfi.cvut.cz/utils/data/%i/greenwald_density'%shot)
	return green[:,0]

def green_data(shot):
	green = data_array('http://golem.fjfi.cvut.cz/utils/data/%i/greenwald_density'%shot)
	return green[:,1]


# In[7]:

repeat19330 = [24041,24042,24043,24044,24045,24046,24047]
Ucd_Scan = [24047,24048,24049,24050]
Ucd 	 = [500  ,450  ,400  ,350] #pch=10 mPa

pch_Scan = [24047,24052,24055,24057,24058,24062,24061]
pch 	 = [10	 ,12   ,14	 ,16   ,18	 ,20   ,24] #Ucd=500 V


# In[8]:

pch_dens = [max(digital_data(x)) for x in pch_Scan]

fig = plt.figure()
axes1 = fig.add_axes([0.10, 0.10, 0.8, 0.8])
axes1.set_xlabel('$p_{ch}$ [mPa]',fontsize=12)
axes1.set_ylabel('$n_{e}$ [m$^{3}$]',fontsize=12)
axes1.plot(pch, pch_dens,'o' ,markersize=8, color='b', label="Maximální hustota")
#axes1.plot(analog_time, cal*(analog_data_smooth + pos),lw=3, color='r', label="Zpracovaná analogová data " )
axes1.set_xlim(9,26)
axes1.set_ylim(0,1e19)
axes1.set_title('Závislost maxima $n_{e}$  na požadovaném $p_{ch}$')
plt.legend(loc=5,fontsize='medium')
plt.show()



# In[9]:

fig2 = plt.figure()
axes2 = fig2.add_axes([0.10, 0.10, 0.8, 0.8])
axes2.set_xlabel('$t$ [ms]',fontsize=12)
axes2.set_ylabel('$n_{e}$ [m$^{3}$]',fontsize=12)
for x in pch_Scan:
	axes2.plot(digital_time(x),digital_data(x) ,lw=2, label="%.0f"%(x))

axes2.set_ylim(-0.01e19,1e19)
axes2.set_xlim(0.005,0.030)
axes2.set_title('Porovnání $n_{e}$ pri pokusu o hustotní scan')
plt.legend(loc=1,fontsize='medium')
plt.show()


# In[10]:

fig3 = plt.figure()
axes3 = fig3.add_axes([0.10, 0.10, 0.8, 0.8])
axes3.set_xlabel('$t$ [ms]',fontsize=12)
axes3.set_ylabel('$n_{e}$ [m$^{3}$]',fontsize=12)
for x in Ucd_Scan:
	axes3.plot(digital_time(x),digital_data(x) ,lw=2, label="%.0f"%(x))

axes3.set_ylim(-0.01e19,1e19)
axes3.set_xlim(0.005,0.030)
axes3.set_title('Porovnání $n_{e}$ pri proudovém scanu')
plt.legend(loc=1,fontsize='medium')
plt.show()


# In[11]:

fig4 = plt.figure()
axes4 = fig4.add_axes([0.10, 0.10, 0.8, 0.8])
axes4.set_xlabel('$t$ [ms]',fontsize=12)
axes4.set_ylabel('$n_{e}$ [m$^{3}$]',fontsize=12)
axes4.plot(digital_time(24047),digital_data(24047) ,lw=2, label="Hustota")
axes4.plot(green_time(24047),green_data(24047) ,lw=2, label="Greenwald")

axes4.set_ylim(-0.01e19,0.6e20)
axes4.set_xlim(0.005,0.030)
axes4.set_title('Shot 24047, $n_{GW}/n_{e}\ \simeq \ 4 $ ')
plt.legend(loc=1,fontsize='medium')

plt.show()


# In[ ]:




# In[ ]: