#!/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()