
BQc           @   s  d  Z  d d l Td d l Td d l Td d l Td d l Td d l Td d l m Z d d l	 Z	 d d l
 Z
 d d l Z d d l m Z m Z d d l m Z m Z d d l m Z m Z m Z d d l m Z d	 GHe   Z e d
 \ Z Z e j Z e d  d e Z  e d  d e Z! e d  d e Z" e# d e  e# d e!  e# d e   e# d e"  e d  Z$ e d  Z% e d  Z& e d  Z' e& d k  re( Z! n  e% d k re( Z  n  e" d k  re( Z" n  d Ge  Gd Ge! Gd Ge" GHd Ge$ Gd Ge% Gd Ge& Gd Ge' GHe) e* e  d  e+ Z, e, e- e e d!  d" k  OZ, e, e- e! e d!  d! k  OZ, e, e- e" e d!  d! k  OZ, e. e/ e   Z0 g  Z1 x e2 e d#  j3 d$  D] Z4 yV e j5 d% e4  re j6 d& d' e4  Z4 e j6 d( d) e4  Z4 e1 j7 e8 e4   n  Wqe9 k
 r2Z: d* Ge2 e:  GHqXqWx9 e; e* e1   D]% Z4 e# d+ e2 e4 d,  e1 e4  qJWd- Ge1 GHd.   Z< d/   Z= d0   Z> d1   Z? d2   Z@ d d d3  ZB d4   ZC d5   ZD d6   ZE d7   ZF d8   ZG d9   ZH d:   ZI d;   ZJ d<   ZK d=   ZL d>   ZM d?   ZN d@   ZO dA   ZP dB   ZQ dC   ZR dD   ZS dE   ZT dF   ZU dG   ZV dH   ZW dI   ZX dJ   ZY dK dL  ZZ d S(M   s.    CREATED: 7/2012
    AUTHOR: MICHAL ODSTRČIL
i(   t   *(   t   leastsqN(   t   spdiagst   eye(   t   spsolvet   splu(   t   medfiltt   fftconvolvet   convolve(   t
   mquantiless   ------------basicdiagn --------t
   NIstandardt
   Tcd_aktualgư>t
   Tbd_aktualt
   Tst_aktualt   Tbt   Tbdt   Tcdt   Tstt   Ub_limitt	   Ucd_limitt	   Ubd_limitt	   Ust_limiti
   i    t   CdFieldTriggert   BdFieldTriggert   StFieldTriggert   BVoltaget	   CdVoltaget	   BdVoltaget	   StVoltaget   dtypeg-C6
?gMb@?t
   wwwcommentt   =s   \d+.*s   (\ *[\d\,\.]+).*s   \1t   ,t   .s"   Error in loading data from commentt   param_i   s   ===================paramsc          B   sE   d d d d d d g }  x& |  D] } d | d | d	 d  Uq Wd  S(
   Nt#   ToroidalMagneticFieldCoilInductancet    TororoidalMagneticFieldCapacitort   BreakDownElectricFieldCapacitort"   CurrentDriveElectricFieldCapacitort   StabilizationCapacitort   Zeffs   saveconst("s   ", t   )(    (   t   namest   i(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   save_configU   s    	c          C   s   t  d  }  t j d t |  d d ! t |  d d ! t |  d    } t  d  }  t j t |  d d ! t |  d d ! t |  d d !  } t d |  t d	 |  d  S(
   Nt   datei  i   i   i   t	   starttimei    t	   shot_datet	   shot_time(   t   catt   datetimeR-   t   intt   timet   save(   t   sR/   R0   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getDateb   s    =<c          C   s   t  d \ }  } t t t t t t g  d d  } t | |  | k   } t | |  | k   } | | 8} t	 |  t
 t } t |  } t |  } t d | d d t d |  |  t d	 |  |  t d
 |  | | | | f S(   NR
   t   btorg-C6?gMb`?t   BtMaxt   fmts   %.3ft	   Btoroidalt   dBdt_toroidalt   noise_level(   R
   R8   (   t   St   maxt   nanmint   TororoidalMagneticFieldTriggerR   R   R   t   meant   stdt   cumsumt   dtt   Bt_calibrationt   amaxt	   saveconstt   save_adv_par(   t   tvect   dBtt   min_timet   mBtt   sBtt   BtR9   t   BtMean(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getBtoroidalo   s    %
c          C   s   t  d \ }  } | t 9} |  t d k  } d | | <t |  d k  } t d |  | rf | d 9} n  d | | <t | d  d } t t |   } t d | d	 d
 t d |  |  | | | | f S(   NR
   t   uloopg-C6?i    t
   ReversedCDigGz?t   UloopMaxR:   s   %.3ft   Uloop(   s
   NIstandardRR   (   R>   t   UloopCalibrationRA   RB   RH   R	   t   absRI   (   RJ   RU   t   ind_zeroRS   RT   t	   UloopMean(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getUloop   s    


c   	   	   C   s  t  d \ } } |  r# | d 9} n  t | | t t t t t t g  d d  k   } d | t | t t d g  k  @<| | 8} t	 |  t
 } | t 9} yZ t d  d } | t t | | d	 d
 d k t | | d	 d
 d k B d d } Wn t } n Xd G| GHd | | | d k  <t t t |   d  d } t t |  d  d } t d | d d t d | d d t d | |  t d | |  | | | | f S(   NR
   t   irogig-C6?gMb`?i    g{Gz?i   t   modet   sameg?i   t   I_startg\(\?t   dIdt_rogMaxR:   s   %.3ft   IrogowskiMaxt	   Irogowskit   dIdt_rogowski(   s
   NIstandardR[   (   R>   RB   R?   R@   RA   R   R   R   t	   ind_wrongRD   RE   t   RogowskiCalibrationt   onest   whereR   t   nanR	   RW   t   diffRH   RI   (	   RS   RJ   t   dIrogt   Ibiast   Irogt   kerR^   R_   t   IrogMax(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getIrogowski   s,    5 


J
		c      
      s3  t  j    } d } x'| d k r;| d  k	 rW t | k t t | d | |  k  @  n t | k t | | k  @  t    r t t  r t t k t t | k  @  n  t    r t t  r t t k t t | k  @  n  t    rd Gt Gt GHt | k    n  t    d d  d  t	 d t
    d     d Gt   d Gd	 Gt   d
 GHt     f d  } t d t g  } y, t | | d d \ }	 }
 d G|	 G| GHWn d GHd }
 t t g }	 n X|
 d k s t |	 d | d  | d t |	 d | d  | d d k r2d GH| d 9} q d } q W|
 d k st |	 d | d  | d t |	 d | d  | d d k rd G| G|	 GH| }	 n  | |	 d t } t d |	 d t  t d |	 d   | } d } d } d } t | | t | |  \ } } | d  k	 rt | t t | d  d k   } t | t t | d  d k   } | | | | } | | | } | | t | 8} n  d | t t	 t t t t t g  d d  k  <t t t | t d  d d d   t } t d t |  t d  t |  t d! |  | | f S("   Ng~jtX?gMb@?g-C6?s$   !! Something wrong with triggers !!!i    i   id   s   fitting from t=s    to t=ic            s   t  t t   } | s/ t  d  d  n t d t t   } x@ | D]8 }   | |  d | | d |  d |  d | | <qK W| r | S |  S(   Ni    ii   (   t   zerost   lenRJ   t   range(   t   paramt   resultt   Icht   search_rangeR+   (   RU   t   indRk   (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   fit  s    26g333333?t   xtolgMbP?s   fitting dones   Fitting failedi   s   far from expected valueg?i   s/   failed convergence in chamber properties solverRs   t   ChamberInduktancet   ChamberResistancegמY?i<   g{Gz?gMb`?R\   R]   t   IplasmaRt   t   plasma_current_decay(   R4   t   NoneRJ   t   mint   allt   isnanR   R   Rf   R?   t   sumt   Falset   arrayRz   R   Rg   RW   t   TrueRH   RE   t   deconvolveExpt   medianR@   RA   R   RG   Rh   R   Re   RI   (   RU   Rk   R^   t   PlasmaStartt	   PlasmaEndt   t0t   time_lagRw   t   x0t   xt   convRt   t   Iplt   t_expt   wint   regularizationt   retrofitt   Ipl1t   Ipl0t   at   bR|   (    (   Rv   Rk   RU   s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt
   getIplasma   sf    	*0! P
P	
$$/0c         C   s  t  d | f \ } } t | | t t t t g  d k   } | | 8} t | d  } | t t |   9} | d 7} | |  k  | | k B} t	 t
 |  d f  } t d t | d  | d  d   d f <t d t | d  | d  d   d f <t j | | d  d   f | |  d }	 t |	 j | j  j }
 | |
 8} t d	 k rt j   } | d
 k rt | d t d d  \ } } n7 | d k rt | d t d d  \ } } | d 9} n  d Gt j   | GHn  t | | |  | S(   NR
   g-C6?i   gMbP?i   id   i   i    i)  t   Photodi,  t   PhotodHalphaga2U0*C?iX  gffffff?s    dekonvoluce  =================(   R>   R   R@   R   R   R   R   t   signRB   Re   Rp   t   cost   pit   sint   linalgt   lstsqt   dott   Tt   shotR4   R   RE   RI   (   R   R   t   channelt   nameRJ   R   t   biasRv   t   power_suplyt   projt   corrt   tt   _(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt	   getPhotodl  s.    )

((*
!c      	   C   s  t  |   } |  j   }  d |  t t d k  <t t  |   d d  } t |  d  d  |  t d t | d  d d  } t t |  t | t d t | d  d d  } t	 | t
 d  d d d	 } d
 } | j   } d | | d k  <y t d  d  |  t | t d t |  |  k t | d  |  @ d d } t d  d  |  t | t d t |  |  k   d d } | d 7} | d 8} Wn t } t } n Xt t |  ot |   o| | k  }	 |	 st } t } n  | | }
 t d | d d d t d | d d t d | d d t d | d d d t d |	  t d |
 d d t d t d  d  |  | t t |   |  |	 | | |
 f S(   Ni    g-C6?i  i   ga2U0*3?i   i   R\   R]   g     j@g?igMb0?t   PlasmaStartAdvancedR:   s   %.5fR   R   t   PlasmaEndDelayedg?t   Plasmat   PlasmaTimeLengtht   PlasmaDetect(   Rp   t   copyRJ   RA   R?   R   R3   RE   Rh   R   Re   Rf   RG   Rc   R~   t   aminRg   R   RH   t   save_advRW   (   R{   R_   t   N_stepst
   downsamplet   dt   min_dIt   d_startR   R   R   R   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyR     s>    67P?

,	
1c         C   sP   t  |  t | k t | k  @ } t d | d d t d t | d k   | S(   NRP   R:   s   %.3ft
   ReversedBti    (   RB   RJ   RH   R3   (   t   BtorR   R   t   MeanBt(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt	   getMeanBt  s     c         C   s5   t  |  t | k t | k  @ } t | d |  | S(   Nt   Mean(   R   RJ   RH   (   R   R   R   R   t
   MeanPhotod(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getMeanPhotod  s     c         C   s[   |  t  |   d t } t | t | k t | k  @ } t |  } t d | d d | S(   Ni   t   TotalChargeR:   s   %.3f(   RW   RE   RD   RJ   RB   RH   (   t   IplaR   R   R   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getTotalCharge  s
     c         C   s7   t  |  t | k t | k  @ } t d | d d | S(   Nt   IplaMeanR:   s   %.1f(   R   RJ   RH   (   R   R   R   t   MeanIpla(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getMeanCurrent  s     c         C   s7   t  |  t | k t | k  @ } t d | d d | S(   NRY   R:   s   %.2f(   R   RJ   RH   (   RU   R   R   t	   MeanUloop(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getMeanUloop  s     c         C   s'   t  |  |  } t d | d d | S(   Nt   OhmicHeatingPowerMeanR:   s   %.2f(   RW   RH   (   R   t   MeanPlasmaCurrentt   OhmicHeatingPower(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getOhmicHeatingPower  s    c         C   s?   d t  t d t t t |  |  } t d | d d | S(   Ni   t	   QedgeMeanR:   s   %.1f(   R   t   MeanPlasmaRadiust   Mu0t   MajorRadiusRW   RH   (   R   R   t   Qedge(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getQedge  s    (c         C   se   t  t d d t d t t  d d d d t | |  d  d d } t d | d	 d
 | S(   Ni   i   i   g     @g       @i   gMbP?t   ElectronTemperatureMeanR:   s   %.1f(   R   R   R(   t   sqrtt   AspectRW   RH   (   R   R   t   ElectronTemperature(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getMeanElectronTemperature  s    Nc   	      C   s1  t  | k t  | k  @} t t d d t d t t  d d d d t | t |   d  d d } t | | | d k B<t |  d	 } t	 | d | d  } t
 |  } t | | t |  | d
 d | | <t | t  | k t  | k  @d  d } t d t  |  t d | d d | | | f S(   Ni   i   i   g     @g       @i   gMbP?id   i  R\   R]   gGz?i    t   ElectronTempt   ElectronTempMaxR:   s   %.1f(   RJ   R   R   R(   R   R   RW   Rg   R   R   R   R   Re   R	   RI   RH   (	   RU   R{   R   R   Rv   t   ElectronTempTimeRl   t   medElectronTempt   maxT(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getElectronTemperature  s    T''c         C   s   | | d } t  | | k t  | | k  @} t |  d t t |  | d   } |  | } t  | }	 | | }
 | | } t d | d d t d |	  t d |
  t d	 |  | |	 |
 | f S(
   Ni2   i    i   t   BreakDownVoltageR:   s   %.1ft   BreakDownTimet   BreakDownBtt   BreakDownIp(   RJ   Rf   t   argmaxR   RH   (   RU   R   R   R   R   RE   Rv   t	   break_indt   Umaxt   Btimet   Bbreakt   Bipla(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getBreakDownVoltage  s    '



c         C   s#   |  d t  t } t d |  | S(   Ni  t   StateEqElectronDensity(   t   kBt   RoomTemperatureRH   (   t   Aktual_PfeifferMerkaVakuaR   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getStateEqElectronDensity2  s    c         C   s9   d d t  | t | t | |   } t d |  | S(   Ng      @i   t"   ElectronConfinementTimeFirstApprox(   t   PlasmaVolumet   eVRW   RH   (   R   R   R   R   R   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt%   getElectronConfinementTimeFirstApprox8  s    (c         C   sZ   |  r! t  d  } t  d  } n t  d  } t  d  } t | |  } t d |  | S(   NR   R   RT   R`   t   ChamberResistance_old(   t	   loadconstRW   RH   (   R   t   Ibdt   UbdRz   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getChamberResistance@  s    c   	      C   sK  d } t  |  d k  r% | d 7} n  t  |  d k  rD | d 7} n  t  |  d k  rc | d 7} n  t  |  d k  r | d 7} n  t  |  d k  r | d	 7} n  | d k r d
 } n  d G| GHt d |  | d
 k rGt d t d d t d t d d t d t d d t d t d d t d t d d t d d  n  | S(   Nt    i   s   Failure (UloopMax < 1V);g{Gz?s   Failure (dIdt_rogMax < 0.01V);g333333?s   Failure (MeanUloop) < 0.3V);s   Failure (BtMax) < 0.01T);s   Failure (MeanBt) < 0.01T);t   OKs   PlasmaStatus: t   PlasmaStatusR   R:   s   %.5fR   R   R   R   R   i    (   RW   RH   Rg   (	   R   RT   R_   R   R9   R   R   R   R   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   FailuresO  s.    		c         C   s.   d |  t  t d d } t d t |  | S(   Ngư>i   g@xDt   GreenwaldDensity(   R   R   RI   RJ   (   R   t   N_gw(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getGreenwaldDensityo  s    c         C   s>   |  | } | | } t  d t |  t  d t |  | | f S(   NR   t   OhmicHeatingChamber(   RI   RJ   (   R   Rt   RU   t   Powert   PowerCh(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getOhmicHeatingPowerTimet  s
    

c         C   st   d t  t d t t t |  | d  } t | t | k  t | k B<t | | d t |  k <t d t |  | S(   Ni   gMbP?R   (	   R   R   R   R   RW   Rg   RJ   t	   nanmedianRI   (   R   R   R   R   t	   QedgeTime(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getQedgeTime|  s
    ,c         C   s2   t  |  t |    d t } t d t |  | S(   Ni   t   TotalMagneticFlux(   RD   RW   RE   RI   RJ   (   RU   t   Flux(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getMagneticFlux  s    c         C   s^   | d k r- t  |  t | k   t t } n t  |   t t } t |  } t d |  | S(   Ni   t   TransformatorSaturation(   RD   RJ   RE   t   MaxTransformatorSaturationRG   RH   (   RU   R   R   R>   (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getTransformatorSaturation  s    !c         C   s  t  d d t  } | t t d t } t t t  d t t  d } | | } | | d d }	 | |  d d }
 |
 |	 } d } d } t |
 |	 t | |  \ } } } t |  } | | } | |  } d } t	 |  t	 |  d	  } d
 d } | | } | | | | | } | | | | | | } t
 d t |  t
 d t |  t
 d t |  t
 d t |  t d t | t | k t | k  @  | | | | f S(   Ngffffff?g{Gz?i   i   i   i  g      ?i   g?i   gHPsׂ?t
   PowerTotalt   PowerMagnetict   PowerPlasmat   PowerChambert   MeanPowerPlasma(   t   logt   nuR   R   R   R   t
   DiffFilterRE   t   squeezeRW   RI   RJ   RH   RB   (   R   Rk   RU   R   R   t   l_it   L_it   L_et   Lt   W_et   W_it   W_magR   t   lamt   P_magR   t   chi2t   P_totalt   P_inputt   L_correctiont   sigma_plasmat   sigma_chambert   P_plasmat	   P_chamber(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   EnergyBalance  s2     

"


(c          C   sf   d d l  m }  |  d t d d t d d t d d t d	 d
 t d
 d t d  } t d |  d  S(   Ni(   t   predictt   Ubt   ubt   Ucdt   ucdt   pressureR   t   tcdt   gas_fillingt   preionizationt   breakdown_probability(   t   pygolem_lite.breakdownR%  R>   RH   (   R%  t   bd_proba(    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   BreakdownProba  s    Eg-C6:?c            s  t  | | d k t  | | d k  @} t d t |  d  } t  | | d  d  |   t |  | | d  d  d  |    t    f d  } t d d d g  } t }	 t | | d d d	 d }
 |
 \ } } } } } | d k r d GHt }	 n  d G| G| GHt | |  d  t    t |  } | | } t	 | d  d } t
 | d  d } t  | d k t  | d k  @} t t  | | |  |  t     t  | | t   t d | | | f  t d  t d  t d  t d t  d  d   d  f   d  d   d  f g  d d |	 sB| d k r^d G|	 G| GHt } t } n  t d |  t d |  | | f S(   Ni   i   i2   g       @c            sD   |  d t  d  t |  d   |  d } | s<   | S| Sd  S(   Ni    g     @@i   i   (   t   expRW   (   Rr   Rs   t   ipla_exp(   t   ipla_tmpt   tvec_tmp(    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyRw     s    .i    Rx   gh㈵>t   full_outputi   i   s   fitting faileds   fitting breakdown donegMbP?g-C6:?ga2U0*C?s"   Exp. Rate const= %g+-%g, window=%gs   I [A]s   Time from breakdown [s]s   rate.pngt   dataR:   s   %gg{Gz?s   convergence failedt   breakdown_ratet   breakdown_rate_err(   i   i   i   i   (   i   i   (   RJ   R?   R   t   smoothR   R   R   R   Rp   RW   R   t   plott   titlet   ylabelt   xlabelt   savefigt   savetxtt   hstackR}   Rg   RH   (   R   Rt   R   R   t   trangeRv   t   downRw   R   t   convergencet   resRr   t   pcovt   infodictt   errmsgt   iert   s_sqt   ratet   errt   ind_ext(    (   R4  R5  s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   getBreakDownRate  sB    &$	*



? 	([   t   __doc__t   numpyt   pygolem_lite.configt   pygolem_lite.modulest   pygolem_lite.utilitiest   pygolem_litet   matplotlib.pyplott   scipy.optimizeR   R4   R2   t   ret   scipy.sparseR   R   t   scipy.sparse.linalgR   R   t   scipy.signalR   R   R   t   scipy.stats.mstatsR	   t   ShotR>   RJ   t   tmpt   shot_numR   R   RA   R   R   R   RH   R   R   R   R   Rg   Ro   Rp   t   boolRc   RW   RB   Rh   RE   t   paramst   strt   splitR+   t   matcht   subt   appendt   floatt	   Exceptiont   eRq   R,   R7   RQ   RZ   Rn   R}   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R	  R$  R1  RN  (    (    (    s?   ../includes/analysis/Basics/0411ShotHomepage.ONN/basic_diagn.pyt   <module>   s   





$					! #					,	5	"	.												 				 			
				$	