#!/usr/bin/env python # -*- coding: utf-8 -*- ####################################################################### # # Floating potential probe measurement on GOLEM tokamak # Roman Pavelka, 2012, rework of various codes for GOLEM tokamak # ####################################################################### # Modules import ################# 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 from pygolem_lite import Shot, saveconst, save_adv, load_adv, get_data # Module config ################ N = 12 # number of channels channels = arange(N) # list of channels # Data load ############ def LoadData(): Data = Shot() # from data_configuration.cfg tvec, data = Data['Papouch_St'] # Used DACQ system Papuch Zacek data = data[:, channels] Bt_trigger = Data['Tb'] # Time delay of torroidal mag. field plasma_start = Data['plasma_start'] # Plasma lifespan plasma_end = Data['plasma_end'] plasma = Data['plasma'] # Was plasma created return tvec, data, Bt_trigger,plasma_end,plasma_start, plasma # Analysis ########### def analysis(): tvec, data, Bt_trigger, plasma_end, plasma_start, plasma = LoadData() # offset_interv = (tvec > Bt_trigger)*(tvec < plasma_start) # offset = median(dataTe[offset_interv,:], axis = 0) # dataTe[:,0]-=offset[0] # dataTe[:,1]-=offset[1] data *= 101 # Resistor dividor 6k/(600k+6k) # 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) # data = map(lambda i: data[:, i], channels) save_adv('floating_potential', tvec, data) #index_f = open('index.html','w') #index_f.write('\n') #index_f.close() def graphs(file_type): out = get_data('floating_potential', '$U_f$' , 'U [V]', xlim=[0, 40], ylim= [-1, 40] ) # out = [data[1][:,i] for i in channels] title = "Floating potential by Roman" # 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 , 'floating_potential', (10,len(out)*2), 100, 'vertical', file_type) os.system('convert -resize 150x120\! floating_potential.png icon.png') def main(): if sys.argv[1] == "analysis": analysis() if sys.argv[1] == "plots": graphs('png') saveconst('status', 0) if sys.argv[1] == "test": pass if __name__ == "__main__": main()