ó
Ä¶Uc           @   s¡  d  d l  Z  d e  j d <e  j d d d ƒe  j d d e ƒd  d	 l Td  d l Z e j ƒ  Z d  d	 l Td  d l Z d  d l	 Z	 d  d
 l
 m Z m Z m Z m Z d  d l m Z m Z d  d l m Z d  d l m Z d Ge j ƒ  e GHd Z d Z e ƒ  d Z e d k r/e d d d d g ƒ a n e d d d d g ƒ a d a d „  Z d „  Z d „  Z d „  Z d d „ Z  d „  Z! e" d k re! ƒ  n  d S(   iÿÿÿÿNt   Aggt   backendt   fontt   sizet   10t   textt   usetex(   t   *(   t
   list2arrayt   deconvolveExpt   save_advt	   saveconst(   t   fftconvolvet   gaussian(   t   interpolate(   t   Shots   including time: gÃõ(\Âµ?gš™™™™™Ù?t   shotnoi//  i  iûþÿÿiô  c          C   s1  t  ƒ  }  t |  d d t ƒj } t |  d d t ƒj } t |  d d t ƒj } t  ƒ  j } yå | d d d t ƒ\ } } | d d d t ƒ\ } } | d d	 d t ƒ\ } } | d d
 d t ƒ\ } }	 t |  | | | | |	 g f ƒ }
 |
 d  d  … d f } |
 d  d  … d d … f d }
 t d d d d d g ƒ t (Wnyå | d d d t ƒ\ } } | d d d t ƒ\ } } | d d d t ƒ\ } } | d d d t ƒ\ } }	 t |  | | | | |	 g f ƒ }
 |
 d  d  … d f } |
 d  d  … d d … f d }
 t d d d d d g ƒ t (Wqcd GH| d d d t ƒ\ } } | d d d t ƒ\ } } | d d d t ƒ\ } } | d d d t ƒ\ } }	 t j ƒ  } t |  | | | | |	 g f ƒ } | d  d  … d f } | d  d  … d d  … f }
 | d } | d | d } t	 |
 d d d |
 ƒ| }
 |
 d  d  … d f c d 9<qcXn X|  d } |  d  } |  d! } |  d" } |  d# } |  d$ } |  d% } |  d& } |  d' } | d k rÒt
 } n  | d k rçt
 } n  | d k rüt
 } n  t  ƒ  d( } | | | | |
 | | | | | | | f S()   Nt   toroidal_fieldt   copyt   loop_voltaget   plasma_currentt   anyt   mc1_rawt   return_channelt   mc5_rawt   mc9_rawt   mc13_rawi    i   i   g     p·@i  gÍÌÌÌÌÌ@t   mc1_integratedt   mc5_integratedt   mc9_integratedt   mc13_integratedg     ˆ³@s   no data from RT NI t   mirnov_1t   mirnov_5t   mirnov_9t	   mirnov_13t   axist   outi   iÿÿÿÿt   Tcdt   Tbdt   Tbt   Ucdt   Ubdt   Ubt   plasma_startt
   plasma_endt   plasmaR   (   R   t   arrayt   Falset   Tt   get_datat   TrueR   t   calibt   timet   cumsumt   nan(   t   Datat   Btt   Uloopt   Ipt   gdt   dast   m1t   m5t   m9t   m13t   signalt   tvect   t1t   Papoucht   t0t   dtt
   CD_triggert
   BD_triggert
   Bt_triggert
   CD_voltaget
   BD_voltaget
   Bt_voltageR+   R,   R-   t   shot(    (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   LoadData6   sn    	" !" !"
$








			c         C   sÈ   | d k r4 |  | k |  | k @} |  | | | f S| | |  d |  d | d } t  | d | ƒ } | t | ƒ :} t | | d d ƒ} t | | | ƒ }	 t |	 |  | d d d d  ƒ}
 |	 |
 f S(	   Ni   i    i   i   t   modet   samet   leftt   right(   R   t   sumR   t   linspacet   interpt   None(   RB   t   vect   t_mint   t_maxt   nt   indt   stdt	   gauss_wint
   vec_smootht   tvec_newt   vec_new(    (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   Resample•   s    "c         C   s8  t  | ƒ } |  d |  d | } | t | ƒ 8} t j | d | ƒ} t j | ƒ } d | d <d t d t d | | ƒ } t d | d t d | | ƒ } d | | d d d | }	 |	 |	 d :}	 t | ƒ }
 |
 |	 :}
 |
 d c | d :)t t j | |
 ƒ ƒ } | | d | d 8} | | 9} | S(	   Niÿÿÿÿi    t   di   iþÿÿÿy              ð?g      ð?i   (	   t   lent   meant   fftt   fftfreqt   expt   pit	   ones_liket   realt   ifft(   RB   t   sigt   taut   NRF   t   ft   fsigt   ifact   qt   fexpt   filtert	   integ_sig(    (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   CorrectRCcircuit¦   s"    
 %

c    /      C   s;  d d l  m }  m } t j ƒ  } t ƒ  \ } } } } } } }	 }
 } } } } | d } | d | d } d Gt j ƒ  | GHt t | d  d  … d f ƒ ƒ d k sÎ t t | d  d  … d f ƒ ƒ d k r× d GHd  S| t | | |
 k  d ƒ 8} t	 d d d	 d
 g ƒ } | t
 t ƒ 9} t | | d  d  … d f | d  d  … d f d d d d  ƒ} t } t } t t | d  d  … d f ƒ ƒ d k  r—t } n  t t | d  d  … d f ƒ ƒ d k  rÈt } n  t | |	 g ƒ } | t | | j f ƒ j | | | | |
 | ƒ \ } } } | d  d  … d f } | d  d  … d d  … f } xi | j D]^ } | j | d ƒ } | j | d ƒ } | t | | | | | g | | | | g ƒ 8} qOW| sÁ| |
 g St d# ƒ } t d$ ƒ } d } t d d t d ƒ } | t | ƒ t | d  d  … d f <| t | ƒ | d  d  … d f <t | | f ƒ }  d d l m }! | | k | | k  @}" t t t |" ƒ ƒ a |! | |" t d | |" ƒ\ }# }$ | d  d  … d f | k | d  d  … d f | k  @}" |! | |" d f t d | |" d f ƒ\ }% }$ d }& | t j  | ƒ d }' |' t t	 t ƒ ƒ 9}' |# t	 t ƒ 9}# | t
 t	 t ƒ ƒ 9} |  t! |$ ƒ t! |  ƒ t! |# ƒ t! |' ƒ t! |% ƒ t! |& ƒ ƒ \ }( }) }* }+ }, }- }. t" d |( |) d  d  … d f ƒ t" d |( |) d  d  … d f ƒ t" d |( |* ƒ t# d t |( |) d  d  … d f f ƒ j d d ƒt# d t |( |) d  d  … d f f ƒ j d d ƒt# d t |( |* f ƒ j d d ƒt$ d  t |+ |- d  d  … d f d! d" ƒ ƒ t | | d  d  … d f | d  d  … d f ƒ } |( |) |+ |, t! |- ƒ t! | ƒ t! | ƒ |& t! | ƒ |' | | |
 |. | f S(%   Niÿÿÿÿ(   t   CalcPlasmaPositiont   RemoveDriftsAutoi    i   s   load data: s   all diagnostics failured gH¯¼šò×j>gH¯¼šò×z>g:Œ0âŽyU¾g:Œ0âŽyu>RQ   RR   gü©ñÒMbP?gš™™™™™©?g-Cëâ6*?gü©ñÒMb@?i   g+‡ÙÎ·?g      ø?(   t   resamplet   ti   gvƒôõ!„>s   results/R_positions   results/Z_positions   results/plasma_radiuss   results/R_position.txtt   fmts	   %.4e %.3es   results/Z_position.txts	   %.4e %.2es   results/residuumi   g    €„.A(   i   i   (   i   i   (%   t   PlasmaPositionRw   Rx   R4   RN   Rd   t   absRV   t   medianR.   t   signR3   RU   R2   R/   t   nanmint   vstackR0   t   searchsortedt   emptyRT   Rh   t   cost   R_0t   sint   hstackt   scipy.signalRy   t   mint	   num_stepsRS   t   linalgt   normt   singleR
   t   savetxtR   (/   Rw   Rx   t   casR8   R9   R:   RB   RA   RG   RH   RI   R,   R+   R-   R   RE   RF   t   Uprojt   Uloop_dst   Bt_crosstalkt   Uloop_crosstalkt	   E_triggert   errt   AutoRemoveGrapht   detectorSignalRl   t	   ind_startt   ind_endt   rhot   zetat   r_dett   phi_dett   detectorPosRy   R[   t   detectorSignal_dst   tvec_dst   Ip_dst   IpDriftErrort   detectorDriftErrort   pos_tvect   positiont   radiust   residuumt   retrofitt   datat   chi2(    (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   get_positionß   st    -

P>	(	(	96	
$ #6/
6  22"/2t   pngc   H         s+  t  |  ƒ d k r! |  \ } } n3 |  \ } } } } } }	 }
 } } } } } } } } d d  l } d | j d <| j d d d ƒ| j d d	 t ƒd d  l j ‰  d
 ˆ  j f ‡  f d †  ƒ  Y} t j ƒ  } | \ } } } } ˆ  j	 d dz d d d d d d ƒ } | j
 d d d d ƒ xåt | ƒ D]×\ } } | \ } } } } | j t  | ƒ d | d ƒ } | j j ˆ  j ƒ  ƒ | j j | ƒ  ƒ | j d d | d d d d d | j d d ƒx6 | D]. }  |  \ }! }" }# | j | |! |# d  |" ƒqÁWx0 | D]( }$ |$ \ }% }# | j d! |% d" |# ƒ qúWx0 | D]( }& |& \ }' }# | j d# |' d" |# ƒ q-W| j | ƒ | j d$ ƒ | j | d% d  ƒ | j ƒ  \ }( }) xa | D]Y \ }* }+ ˆ  j |* |( f |+ |* |) |( ƒ }, |, j | j ƒ |, j d ƒ | j |, ƒ q Wq&W| j  ƒ  \ }- }. |- j! |, ƒ |. j! d& ƒ | j j ˆ  j ƒ  ƒ | j" d' ƒ | j# |- |. d( d) d* t ƒ}/ |/ j$ ƒ  j d+ ƒ | j% d, | d- d$ ƒˆ  j& ƒ  d. Gt j ƒ  | GHt  |  ƒ d k rËd  St' | d ƒ }0 t j ƒ  } ˆ  j	 d d{ d d d d d d ƒ } | j
 d d0 ƒ | j d1 ƒ } ˆ  j( d+ ƒ }1 | j j) |1 ƒ | j | d2 | d  d  … d f d3 d4 d5 d  d6 d7 d+ ƒ\ }2 | j | d2 | d  d  … d f d4 d8 d  d9 d: d+ ƒ\ }3 | j# d( d; d* t ƒ }/ |/ j$ ƒ  j d< ƒ | j | d d2 | d d2 ƒ | j* d= d ƒ | j d> ƒ | j+ d? ƒ | j" d' ƒ | j d! t, d4 d@ dA d  dB ƒ }4 | j d! t, d4 d@ dA ƒ }5 | j% dC | d- d$ ƒdD Gt j ƒ  | GHt j ƒ  } t, t- | d  d  … d f d3 | d  d  … d f ƒ }6 |2 j. |6 d4 ƒ |2 j/ dE ƒ | j* d d ƒ |3 j0 t1 ƒ |5 j0 t1 ƒ | j dF ƒ | j# |2 f |2 j2 ƒ  f d( dG d* t ƒ}/ |/ j$ ƒ  j d< ƒ | j% dH | d- d$ ƒdI Gt j ƒ  | GHt j ƒ  } |2 j0 t1 ƒ |3 j0 t ƒ |3 j. | | d  d  … d f d dJ ƒ |3 j/ dK ƒ | j3 dL ƒ |4 j. dM g d ƒ |4 j4 dN ƒ |5 j. d g d ƒ |5 j4 dN ƒ |5 j0 t ƒ | j t5 | d2 ƒ d/ dO dP d ƒ}7 | j t5 | d2 ƒ dQ dR dP d ƒ}8 | j t5 | d2 ƒ d2 dS dP d ƒ}9 | j* d dT ƒ | j dU ƒ | j# |3 f |3 j2 ƒ  f d( dV d* t ƒ}/ |/ j$ ƒ  j d< ƒ | j% dW | d- d$ ƒdX Gt j ƒ  | GHt j ƒ  } |2 |3 }: }; t- | d  d  … d f d3 | d  d  … d f ƒ }, t6 | d  d  … d f | d  d  … d f d3 ƒ }< |9 j0 t1 ƒ |7 j0 t1 ƒ |8 j0 t1 ƒ | j3 dY ƒ | }= |: j. |, d4 ƒ |: j0 t ƒ |: j/ dZ ƒ |; j. |< t7 d[ d[ ƒ |; j/ d\ ƒ |= j d] ƒ |= j* d d ƒ |= j" d' ƒ |= j j8 ƒ  |= j  ƒ  \ }> }? | j d1 d^ |= d_ t1 ƒ}@ |@ j j9 ƒ  |@ j j: d` ƒ |@ j da ƒ |@ j* t7 t7 ƒ |@ j  ƒ  \ }A }B t; |> d  |A f ƒ }- t; |? d  |B f ƒ }. |= j# |- |. d( d; d* t ƒ}/ |/ j$ ƒ  j d< ƒ | j% db | d- d$ ƒdc Gt j ƒ  | GHt j ƒ  } | j< ƒ  | j
 d d0 ƒ | j d1 ƒ } | j |	 dd  d2 |
 dd  | de d  df ƒ| t= | 9} xP t> dg ƒ D]B } | j |	 d2 | d  d  … | f d  dh | dg d d7 d+ ƒqW| j d# | d2 d@ dA ƒ | j d# | d2 d@ dA ƒ | j d! d d@ de ƒ | j" d' ƒ | j di ƒ | j# d( dV d* t ƒ }/ |/ j$ ƒ  j d< ƒ | j d$ ƒ | j | d2 t? d2 | d[ dj ƒ ƒ | j* d= d  ƒ | j% dk | d- d$ ƒdl Gt j ƒ  | GHˆ  j& dm ƒ t j ƒ  } d dn l@ mA }C ˆ  j	 d d| d d d d d d ƒ } | j
 d d d d ƒ d} }D tB | d  d  … d d  … f ƒ }E tC | d  d  … d d  … f ƒ }F xÎt> d |0 d ƒ D]¹} | j |0 d d | ƒ } | j j ˆ  j ƒ  ƒ | j j | ƒ  ƒ | j | d2 | d  d  … | f | d  d  … d f dJ |D | dg d  dh | dg d/ dp ƒ| j | d2 | d  d  … | f | d  d  … d f dJ |D | dg de d  dq ƒ| j d d dr | | d d d d d | j ƒ| j# d( dV d* t ƒ }/ |/ j$ ƒ  j d+ ƒ |C | d  d  … | f | d  d  … d f dJ ds ƒ d }G | j* d |G ƒ | j dh | dg d/ dt ƒ qW| j |0 d d |0 d ƒ } | j | d2 tD t' | d ƒ ƒ d  du ƒ| j | d2 | d  d  … d f | d  d  … d f dA d  dq ƒ| j d d dr | d d d d d d | j ƒ| j# d( dV d* t ƒ }/ |/ j$ ƒ  j d+ ƒ | j* d d ƒ | j dv ƒ | j" d' ƒ | j% dw | d- d$ ƒˆ  j& ƒ  dx Gt j ƒ  | GHdy t j ƒ  | GHd  S(~   Ni   iÿÿÿÿR    R   R   R   R   R   R   t   MyFormatterc              s   e  Z d ‡  f d  † Z RS(   c            s*   | d k r d Sˆ  j  j |  | | ƒ Sd  S(   Ni    t    (   t   ScalarFormattert   __call__(   t   selft   xt   pos(   t   plt(    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyR°     s    N(   t   __name__t
   __module__RV   R°   (    (   R´   (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyR­     s   t   figsizei
   t   dpiiP   t	   facecolort   wt	   edgecolort   kt   hspacei    t   wspacei   gš™™™™™©?gš™™™™™¹?t   horizontalalignmentRQ   t   verticalalignmentt   bottomt	   transformt   backgroundcolort   labelt   yt	   linestyleR²   t   tightiè  s   Minimized intervals   t [ms]t   loct   bestt   fancyboxg      à?s   ./graphs/signal_correction.t   bbox_inchess0   plot graph from auto removing   of crosstalks   i   gš™™™™™É?io   g     @@gš™™™™™Ù?id   t   bs   R-R$_0$t   lwt   rt   Zt	   linewidths
   lower leftgffffffæ?iöÿÿÿs   R,Z [cm]t   ont   lss   --t   limiters   graphs/plasma_position.s   plot position s   Plasma radiuss   r [cm]s   upper rights   graphs/plasma_radius.s   plasma radius g    €„.As   residuum of the fit/$I_p^2$t   logg      Y@t   -s   reliable fitt   colori2   s   considerable fits   poor fitg     ˆÃ@s   SSE/$I^2_p$ [kA$^{-2}$]s
   upper lefts   graphs/residuum.s   plot residuum t   linears   radial coordinate $\rho$i   s   angular coordinate $\phi$s   $\rho$ [cm]t   sharext   frameonRR   s   $\phi$ [rad]s   graphs/plasma_position_polar.s   plot angle position iÎÿÿÿs   -.s   $I_p$i   s   mc%ds   signal/estimated error [-]i(   s   graphs/preprocesed_signal.s   plot raw datat   all(   t
   mquantilest   gs   /I$_p$R¨   s   $\chi^2$ = %2.1fgffffffî?s   /$I_p$ [mT/kA]s   I$_p$/I$_p$s   $I_p/I_p$ [-]s   ./graphs/retrofit.s
   retrofit  s   graphs plotted in %g s(   i
   i
   (   i
   i   (   i
   i
   (   RÎ   RÜ   RÌ   RÅ   (E   Rc   t
   matplotlibt   rcParamst   rcR2   t   matplotlib.pyplott   pyplotR¯   R4   t   figuret   subplots_adjustt	   enumeratet   add_subplott   xaxist   set_major_formattert   NullFormattert   yaxisR   t	   transAxest   plott   axhlinet   axvlinet
   set_ylabelR#   t   set_xlimRV   t   get_ylimt	   Rectanglet   set_clip_boxt   bboxt	   set_alphat
   add_artistt   get_legend_handles_labelst   appendt
   set_xlabelt   legendt	   get_framet   savefigt   closeR   t   MultipleLocatort   set_minor_locatort   set_ylimt   gridt   at   hypott	   set_ydatat	   set_labelt   set_visibleR/   t	   get_labelt
   set_yscalet   set_linestyleRd   t   arctan2Rh   t	   tick_leftt
   tick_rightt   set_label_positionR‡   t   clfR3   t   rangeR‰   t   scipy.stats.mstatsRÛ   t   amint   amaxt   ones(H   t   inputst   filetypeR–   RI   R¤   R¥   R§   R¨   R©   RB   R:   R¢   R—   R£   R+   R,   Rª   RÝ   R­   RE   t   framest   vlinest   hlinest
   rectanglest   figt   it   frameRz   t   curvest   ytextR   t   axt   curveRÅ   RÄ   RÆ   t   hlinet   y0t   vlinet   x0t   y_mint   y_maxt   x_mint   x_maxRÎ   t   handlest   labelst   legt   n_dett   minorLocatort   Rplott   Zplott	   upper_limt	   lower_limR¦   t   txt1t   txt2t   txt3t   rho_plott   phi_plott   phit   axLt   handlesLt   labelsLt   axRt   handlesRt   labelsRRÛ   t   ct	   y_min_limt	   y_max_limt   data_max(    (   R´   sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   graphs  sv   3	$.#
$@< "7*)%%%*34
)@%$""]Q ;!)A 
c          C   sÜ   x9 d d d g D]( }  t  j j |  ƒ s t  j |  ƒ q q Wt j d d k rh t ƒ  } t d | ƒ n  t j d d k rØ y t d ƒ } t  j	 d ƒ Wn d	 GHt
 ƒ  n Xt | d
 ƒ t d d ƒ t  j d ƒ n  d  S(   NRA  t   resultst	   constantsi   t   analysisR$   t   plotss   out.npys   no dataR¬   t   statusi    s7   convert -resize 150 graphs/plasma_position.png icon.png(   t   ost   patht   existst   mkdirt   syst   argvR«   t   savet   loadt   removet   exitRA  R   t   system(   RH  R$   (    (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   main˜  s     	t   __main__(#   RÝ   RÞ   Rß   R2   t   matplotlib.pylabR4   R   t   numpyRG  RK  t   pygolem_lite.modulesR   R	   R
   R   Rˆ   R   R   t   scipy.interpolateR   t   pygolem_liteR   R  R…   RM   R.   R3   RŠ   RN   Ra   Rv   R«   RA  RR  Rµ   (    (    (    sU   /golem/database/velin//includes/diagnostics/Magnetic/0612PlasmaPosition_TO.ON/main.pyt   <module>
   s<   

"	_		9	 ÿ 	