Source code :: main

[Return]
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib 
matplotlib.rcParams['backend'] = 'Agg'
matplotlib.rc('font',  size='10')
matplotlib.rc('text', usetex=True)  # FIXME !! nicer but slower !!!
import matplotlib.pyplot as plt

from numpy import *
import os
import sys
from pygolem_lite.modules import list2array, multiplot, get_data
from pygolem_lite import Shot, saveconst, save_adv,load_adv


channels = [1,2]


  
def LoadData():
    
    Data = Shot()
    tvec,dataTe = Data['niturbo']
    dataTe = dataTe[:,channels]

    Bt_trigger = Data['Tb']
    plasma_start = Data['plasma_start']
    plasma_end = Data['plasma_end']
    plasma = Data['plasma']
    return tvec, dataTe, Bt_trigger,plasma_end,plasma_start, plasma


    
def Calc_Temperature():
   
    
    tvec, dataTe,Bt_trigger,plasma_end,plasma_start, plasma  = LoadData()

    if not plasma:
	print "============= no plasma ==============="
	return
        
    offset_interv = (tvec > Bt_trigger)*(tvec < plasma_start)
    offset = median(dataTe[offset_interv,:], axis = 0)
    dataTe[:,0]-=offset[0]
    dataTe[:,1]-=offset[1]
    dataTe *= 100    # I dont know why... 
    dU = dataTe[:,0]-dataTe[:,1]
    Te = dU/log(2);   #result of the double (triple) probe theory
    
    plasma_interv = (tvec > plasma_start)*(tvec < plasma_end)
    Te[~plasma_interv] = 0
    Te[Te < 0] = 0
    
    save_adv('Te_probe', tvec, Te)
    save_adv('dU_probe', tvec, dU)
    save_adv('dataTe', tvec, dataTe)


def graphs(file_type):
    

    title = "Temperature"
    out = [get_data('dU_probe', '$U_1-U_2$ ' , "U [V]" ), 
	    get_data('dataTe', ['$U_1$ ', '$U_2$ '] , "U [V]" ),
	    get_data('Te_probe', 'Probe $T_e$ ' , "T [eV]" , ylim=[0,None],  smoothing = 1e3),     
	    get_data('electron_temperature_median', 'Mean plasma $T_e$ from plasma conductivity', 'T [eV]' , ylim = [0,None] , reduction = True) ]

    multiplot(out, title , 'temperature', (10,len(out)*2), 100, 'vertical', file_type)
    
    os.system('convert -resize 150x120\! temperature.png icon.png')

def main():
    if sys.argv[1] ==  "analysis":
	Calc_Temperature()

    if sys.argv[1] ==  "plots":
	graphs('png')
	saveconst('status', 0)



if __name__ == "__main__":
    main()
    	 

Navigation