
#Uc           @   s   d  Z  d d l Z d e j d <e j d d d e j d d	 e d d l Z d d
 l m Z d d l Td d l Td d l	 Td d l
 Td d l Z d d l m Z m Z d d l Z d d l m Z d   Z d   Z d   Z e d k r e   n  d S(   s.    CREATED: 7/2012
    AUTHOR: MICHAL ODSTRČIL
iNt   Aggt   backendt   fontt   sizet   10t   textt   usetex(   t   Shot(   t   *(   t   copyt   move(   t   interp1dc          C   s  y t    }  |  d d } |  d } |  d d } |  d d } d } t } t } d } d	 }	 d
 G| GHd G| GHd G| GHd G| GHd G| GHd Gt GH|	 | d | d | d | d | d | d | d | d }
 d G|
 d GHt d |
  Wn" t k
 r} d Gt |  GHn Xd  S(   Nt   plasma_current_meangư>t   toroidal_field_meant   input_power_meangMbP?t   electron_density_meangҶOɃ;i   g?Ƭ?t   It   Bt   Pt   nt   Rt   Aspectg(\?g333333?gGzg=
ףp=?g
ףp=
?gQ?g(\?g(\?s   confinent time = g    .At   t_98s    confinent time failed (   R   t   MajorRadiusR   t	   saveconstt	   Exceptiont   str(   t   dataR   t   BtR   R   t   MR   t   epst   kappat   constR   t   e(    (    sO   /golem/database/velin//includes/analysis/Basics/0612AdvancedAnalysis.ON/main.pyt   analysis   s,    	
						Fc   ,      C   s*  t    } | d } | d } | d } | d \ } } | | k | | k  @} d } | j d k  rh d n d }	 | sE| j d	  s d  S| d	 \ }
 } t | t t |
   d
 d  \ } } } | d \ } } t | |
 t |  d d d d } t d d d d d d g d t	 t t
 d d g  d t d  t g d d d d d g d d d g d t	 g t | | g d d d d d d d g d d g } t | d  d! d d$ |  t | |  t d%  t   t | | g d& d' d d d t |  t |  g d( t d d) } t | d& d* d d$ |  t | d+ d, d d  d  St j   } t    d. \ } } y$ | | | d) | |  d/ } Wn | } n Xt } y t    d0 \ } } t    d1 } | d2 k  st d3   t | | d4 d d5 t } | |  t d } t | |  t d6  t   t | | d7 k  <d8 Gt t | |   GHt t | |   d7 k rq~ n t	 } Wn( t k
 r} d9 Gt |  GHt } n Xt    d: \ } } t | |  } y t    d; \ } } Wn d< GHn Xy t    d= \ } }  t | |  d4 d d5 t }! d> } | |  } |! |  d? } d@   } | | | d) | |  d/ }" | | | d) | |  }# t |" |" d/ k <t |# |# d/ k <t | |"  t | |#  t dA  t   t t |#   r~# ~" n  Wn" t k
 r} dB Gt |  GHn Xt | | d t | |  k <t
 | | g  d }$ d d  g }% d }& t! d |$ d |% d t	  }' t | | g dC dD |'  t | | d g dE dD |'  | rt | | | g dF dD dG dH |' n g  | rt | | | d g dI dD dG dJ |' n g  g t | d) | g dK dL |'  t | d | g dM dL |'  | rot | d) | | g dN dL dG dH |' n g  | rt | d | | g dO dL dG dJ |' n g  t t
 | | g  t
 dP dP g  g dQ dL dG dR |' g g }( y t" |( dS dT |& d$ |  Wn" t k
 r$} dU Gt |  GHn Xt dV dW dX |'  | rbt dV dY dX dZ d) | dG dJ |' n g  t d[ d\ dX d |% d |$ dG dJ g g }) y t" |) dW d] |& d$ |  Wn" t k
 r} d^ Gt |  GHn Xt d_ d` da d |$ dZ d d t	 t db dc da d |$ dZ dd d t	 t de df da d |$ dZ dd d t	 t dg dh da d |$ dZ dd d t	 t di dj da d |$ dZ |	 d t	 dG dk t dl dm da d |$ dZ d dG dJ t t
 | | g  t
 d d g  g d+ da d |$ d t	 dG dR g g }* y t" |* dn do |& d$ |  Wn" t k
 r&	} dn Gt |  GHn Xg  }+ dp t#   k r	t d; dq dr dZ ds |' dt t#   k r	t d; du dr dZ ds |" dG dk |' n g  dv t#   k r	t d; dw dr dZ ds |# dG dR |' n g  g }+ n  |+ t d: dx dy dZ ds |' | r
t d: dz dy dZ ds | dG dJ |' n g  dp t#   k rf
t t
 | | g  t
 | | g  | g d{ dr dZ ds dG dR |' n g  g 7}+ |+ g }+ y t" |+ d| d} |& d$ |  Wn" t k
 r
} d~ Gt |  GHn Xd GH|( |) |* dp t#   k r
|+ n g  } y t" | d+ d, d d  Wn" t k
 r%} d Gt |  GHn Xd  S(   Nt   plasmat   plasma_startt
   plasma_endt   plasma_currenti   i)'  i
   i   t   current_cd_coilsi  g      Y@t   total_magnetic_fluxt   lefti    t   rights   Total magnetic flux  $\Phi$s   $\Psi$ [Vs]t   xlimi(   t	   reductiongMbP?i   s   Max saturationt   ylimg
ףp=
?s   Current drive Is   I [A]t   xlabels	   Time [ms]t   tvec_rescaleg     @@s   Total magnetic fluxt   magnetic_fluxi	   i   t	   file_types   I.pngs   Hysteresis curves   $\Phi$ [Vs]t   plot_limitsi   t
   hysteresist    t   iconi   t   safety_factorg      ?t   plasma_radiuss   plasma_position:reliabilityiX  s   Unreliable plasma positiont
   fill_valuet   bounds_errors   corr.pngg333333?s   ======= mean(isnan(corr)) s$   correction on plasma position failedt   greenwald_densityt   electron_densitys   electron_density failedt   plasma_position_rg(\µ?g?c         S   s   |  t  |   d S(   Ni   (   t   abs(   t   x(    (    sO   /golem/database/velin//includes/analysis/Basics/0612AdvancedAnalysis.ON/main.pyt   <lambda>   s    s   ne_corr_nu.pngs.    !!!!  electron_density correction failed !!! s   Safety factor edge (Q$_{edge}$)s   Q [-]s#   (Q$_{center}$) (peaking factor = 2)s   Q edge with radiust   fmts   b--s   Q center with radiuss   r--s$   Inverse Safety factor $\iota_{edge}$s   $\iota$ [-]s&    $\iota_{center}$ (peaking factor = 2)s    $\iota_{edge}$ with radiuss    $\iota_{center}$ with radiusg      ?s   Q=2s   k:s   Safety factort   plot_1s   Safety factor failedt   electron_temperatures   Electron temperatures   T [eV]s    $T_e$ corrected by plasma radiust   data_rescales   spectrometr:temperatures   $T_e$ spectrometert   plot_2s   Electron temperature failedt   input_power_totals   Ohmic heating - totals   P [kW]t   input_power_magnetics   Ohmic heating - magneticgMbPt   input_power_plasmas   Ohmic heating - plasmat   input_power_chambers   Ohmic heating - chambert
   photodiodes   Output power (diod)s   k--s    spectrometr:total_radiated_powers   Output power (spectrometer)s   Input / Output powert   plot_3t   n_es   Electron density ($n_e$)s    n$_{e}$ [10$^{19}\cdot$m$^{-3}$]gҶOɃ;t   ne_corr_nu1s%   $n_e$ - position corrected, $\nu = 1$t   ne_corr_nu0_5s'   $n_e$ - position corrected, $\nu = 0.5$s   Greenwald density ($n_{GW}$)s!   n$_{GW}$ [10$^{19}\cdot$m$^{-3}$]s(   Greenwald density with radius ($n_{GW}$)s	   ~GW limitt   Densityt   plot_4s   Density failed s   ===== plotting done ===== s   Icon failed(   i	   i   (   i	   i   (   i   i   (   i
   i   (   i   i   ($   R   t   shot_numt   existt
   DiffFiltert   meant   difft   interpt   squeezet   get_datat   Truet   arrayt   onest   MaxTransformatorSaturationt   paralel_multiplott   plott   savefigt   clft   amint   amaxt   Falset   timet   AssertionErrorR   t   MeanPlasmaRadiust   closet   nant   isnanR   R   t   maxt   allt	   nanmediant   Nonet   dictt	   multiplott   locals(,   t   ftypeR   R#   t   startt   endt   tvect   _t
   ind_plasmat	   nGW_limitt
   calb_photot   t_cdt   I_cdt   t_PHIt   PHIt   t0R6   t   r0t   at   pos_partR   t   ne_corrt   tvec_n_et
   allow_corrt   tvec_rR7   t   reliabilityt   plasma_radius_ft   corrR!   t   nGWt   nGW_medRK   t
   R_positiont   plasma_R_pos_fRL   RM   R+   R-   t   figsizet   paramst   data_1t   data_2t   data_3t   data_4(    (    sO   /golem/database/velin//includes/analysis/Basics/0612AdvancedAnalysis.ON/main.pyt	   plot_data=   s   	


*$!P3
B$



		 

.522?.*!!!!'!H7@.\	'c           C   s{   t  j d d k r t   n  t  j d d k rJ t d  t d d  n  t  j d d k rw t d  t d d  n  d  S(   Ni   R"   t   plotst   pngt   statusi    t   postanalysis(   t   syst   argvR"   R   R   (    (    (    sO   /golem/database/velin//includes/analysis/Basics/0612AdvancedAnalysis.ON/main.pyt   main  s    


t   __main__(   t   __doc__t
   matplotlibt   rcParamst   rcRX   t   pygolem_liteR   t   numpyt   pygolem_lite.configt   pygolem_lite.modulest   matplotlib.pyplotRc   t   shutilR	   R
   t   ost   scipy.interpolateR   R"   R   R   t   __name__(    (    (    sO   /golem/database/velin//includes/analysis/Basics/0612AdvancedAnalysis.ON/main.pyt   <module>   s&   



			