
=Wc           @   s~  d  d l  Z  e  j    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	 d  d l
 m
 Z
 m Z d  d l m Z m Z d  d l Td  d l Z d  d l m Z d  d l m Z d	 e j d
 <d  d l j Z d  d l m Z m Z m Z m Z d  d l m Z d Ge  j    e GHd   Z  d   Z! d   Z" d   Z# d   Z$ d   Z% d   Z& e' d k rze&   n  d S(   iN(   t   GapsFillingt   CalcProjections(   t   IntegLightAnalyz(   t   CalcDensTempt   plotDensTemp(   t   Tokamakt   OceanOptics_Spec(   t   *(   t   norm(   t   fftconvolvet   Aggt   backend(   t   load_advt   get_page_pathst	   saveconstt   save_adv(   t   Shots   including timec   
      C   se  d t  |   GHd t  |   d } y0 t d t  |    } t d t  |    } Wn d GHd } t } n Xx t d  D] } yq t j j d	 t  |   d
  s t j |  } t	 d	 t  |   d
 d  } | j
 | j    | j   n  PWq{ d GHt j d  q{ Xq{ Wd | GHt d  } t d |  } | j d d d	 t  |    }	 | |	 | | f S(   Ns   downloading s*   http://golem.fjfi.cvut.cz/operation/shots/sE   /diagnostics/Radiation/1111Spectrometer.ON/data/spectra.txt_Data_.txts   ./data/PlasmaStart_s   ./data/PlasmaEnd_s(   missing plasma start or end = no plasma?i    i
   t   data_s   .txtt   ws   spectra not found, waiting ...i   s   data waiting time %dst   GOLEMs   HR+C1886t    t   Python_Data_file(   t   strt   loadtxtt   inft   ranget   ost   patht   isfilet   urllib2t   urlopent   opent   writet   readt   closet   timet   sleepR   R   t   loadData(
   t   shot_numt   urlt   plasma_startt
   plasma_endt   it   ut	   localFileR   t   HR2000t   shot(    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   LoadData_web   s2    
 	c    
      C   s   t    }  |  d } |  d } |  d } t d  } t d |  } t    j d d t } d } xX t |  D]J } y | j d	 d
 | d   }	 PWqm d t |  GHt j	 d  qm Xqm W| | d k r t
 d   n  | | |	 | | f S(   NR(   R)   t   plasmaR   s   HR+C1886s   spectrometr:datat   return_pathid   R   R   is   no spectroscopic data i   s   no data found!(   R   R   R   t   get_datat   TrueR   R%   R   R#   R$   t	   Exception(
   t   DataR(   R)   R0   R   R-   t	   file_patht   nmaxR*   R.   (    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   LoadData=   s$    	


c         C   s_   d G|  GHd } t  } t d  } t d |  } | j d d d t |    } | | | | f S(   Ns   Loading shot i    R   s   HR+C1886R   R   s   ./net_data/data_(   R   R   R   R%   R   (   R&   R(   R)   R   R-   R.   (    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   LoadData_offlineY   s    	c   $   	   C   s  t    } t    } t    } t    } t    } t    } t    }	 t    }
 t   } d } x| D]} y t | | d t j } Wn | Gd GHq^ n X| d  d   d f } | d  d   d f } | | k  | |  k @} d | | <t | |  } d | | | d | k <d	 } d
 } | j |  | j |  | j t | | |   | j |  | j t d   t d d g d d g g  } | d  k rt d  } | d  d   d f c d	 :<n  | j |  |	 j d  |
 j d  q^ Wxt	 d!  D]\ } } y/ | | \ } } t
 | d  d k r3wn  Wn
 qn X| d :} | |  7} t d  } x(t	 d"  D]\ } } t | d  d   | f  } t d# d$ f  } | j t |   | j | d  d   | f  d } t | d  d   | f  d } | j t | d  d   | f | |   | j d | | f  | j | d  d   d | d | d  f  | j |  |	 j d  qnW|
 j t d%   qW| | |
 | |	 | | | f } t d  \ } } | j }  | j }! | j }" | |! |" | |  f }# |# | f S(&   Nt
   photodiodet   photodiode_alphas   photodiode alphat   copys   was not foundi    i   i   id   g{Gzt?s	   bpy47.txti   i  s   ./filters/656.txtg-C6?s   camera\color_emiss_1s   camera\color_emiss_2ii  s   filters/camera_filters.txtt   Rt   Gt   Bi^  i  i
   s   camera %s%di   g{Gz?s   ./data/projection(   R:   R;   s   photodiode alpha(   R;   s   photodiode alpha(   s   camera\color_emiss_1s   camera\color_emiss_2(   R=   R>   R?   (   i^  i   (   i  i   (   i   i   (   t   listR   t   arrayt   Falset   Tt   mediant   appendt   hypotR   t	   enumeratet   sizet   isnanR<   t   onesR   t   data_errt   tvec_errt   relative_calibration($   R(   R)   t   spectrometert
   photoLabelt	   photoDatat
   photoErrort	   photoTvect   photoFiltert   photoSensitivityt   photoTvecErrort   correl_listR5   t
   photo_listt
   photo_namet	   photodiodt
   photo_tvect   indt   medt   SNRt
   backgroundt   foto_filtert   jt   camerat   tvect   datat   camera_sensitivityR*   t   ct   camera_gapst   camera_filtert   PhotodiodesDatat
   projectiont   projectionErrort	   tvecErrort   SpectrSensitivt   SpectrometerData(    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   LoadDataIDAm   s    										


 */			c    "      C   s  de }  df } t  d  \ } } t |  s3 d GHd  St  d  \ } } t  d  \ } } | } | j } t  d  \ } } | j }	 | } t  d  \ }
 } t  d  \ }
 } t d   } t d!  } t | d"  } t | d#  } t | d"  } t d$  } t  d  \ } } t |  } d% t j f d&     Y} t j	 d'  } t j
 d(  } t j	 d)  } t | d"  } t t | | d  d   f |  j d* d" } t | d  d   | f d* d" } | | } t d+ |
 |  t j d, dg d/ d0 d1 d2 d3 d4  } | j d5  } | j |
 | d) d6 d7 d8 d9 d: | j |
 | d; d7 d< d9 d: | j |
 | d= d7 d> d9 d: | j d? d@ dA | dB dC dD dE dF | j dG d2 | j j |  | j j |  | j j |  | j dH  | j dI  | j dJ dK dL t  } | j   j dM  | j dN  | j  dO dP  | j! dQ dR  | j" dS  | j# dT dU dN | j$   t |  st | (n  t j d, dh d/ d0 d1 d2 d3 d4  } | j d5  } xZ t% |  D]L } | j& | | dW | | | f dX | | dY | | | f d7 |  | qW| j" dZ  | j dJ d[ dL t  } | j   j dM  | j d\  | j d]  | j dN  | j! d# d   | j# d^ dU dN | j$   | j d5  } | | 9} | | 9} xb t% |  D]T } | j& | | dW | | | f dW dY | | | f dW dX | | d7 |  | qW| j" d_  | j dJ d[ dL t  } | j   j dM  | j d`  | j d]  | j dN  | j! d# d   | j# da dU dN | j$   t  db  \ } } t( |  dW }  t) |  dW }! t j d, di d/ d0 d1 d2 d3 d4  } | j d5  } | j& | dW | dW dY |	 dW | j" dc  | j d`  | j d]  | j  |  d" |! d"  | j! d# d   | j# dd dU dN | j$   d  S(j   Nt   HIt   OIt   OIIt   OIIIt   HeIt   CIIt   CIIIt   NIt   NIIt   NIIIt   Mystery1s   CIV+NIV+OIVs   b-s   r-s   r--s   r-.s   g-s   k--s   k-.s   y-s   y--s   y-.s   c-s   m:s   ./data/plasmas   no radiation observeds   ./data/intensitiess   ./data/projections   ./data/TotalPowers   ./data/componentss   ./data/overburneds   ./data/energy_constants.npys   ./results/IonChi2.txti   i    s   ./results/TotalChi2.npyt   MyFormatterc           B   s   e  Z d d   Z RS(   c         S   s*   | d k r d St  j j |  | |  Sd  S(   Ni    R   (   t   pltt   ScalarFormattert   __call__(   t   selft   xt   pos(    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyR}      s    N(   t   __name__t
   __module__t   NoneR}   (    (    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyRz      s   i2   s   %di
   t   axiss   ./data/residual_spectrat   figsizei   i   t   dpiiP   t	   facecolorR   t	   edgecolort   kio   Re   t   labelt   residuumt   lwg333333?t   rRc   t   bt   retrofitg?g?s   $\chi^2$ = %2.1ft   horizontalalignmentt   leftt   verticalalignmentt   bottomt	   transformt   backgroundcolors   $\lambda$ [nm]s   counts/read noise [-]t   locs   upper rightt   fancyboxgffffff?t   tighti   ip  ii   s   Total retrofits   graphs/spectrum_retrofit.pngt   bbox_inchesi   g     @@t   fmtt   yerrs   ion radiation intensitys
   upper leftt	   intenzitys   t [ms]s   graphs/RelativeIntensity.pngs$   radiation power in range 200-1200 nms   P [kW]s   graphs/RadiatedEnergy.pngs   ./data/temperatures)   Total radiated power in range 200-1200 nms   graphs/TotalPower.png(   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   Ry   s   CIV+NIV+OIV(   s   b-s   r-s   r--s   r-.s   g-s   k--s   k-.s   y-s   y--s   y-.s   c-s   m:(   i   i   (   i
   i   (   i
   i   (*   R   t   anyRK   t   loadR   RH   t   bool_R{   R|   t   MultipleLocatort   FormatStrFormattert   allt   meant   dotRC   R   t   figuret   add_subplott   plott   textt	   transAxest   xaxist   set_major_locatort   set_major_formattert   set_minor_locatort
   set_xlabelt
   set_ylabelt   legendR3   t	   get_framet	   set_alphaR   t   set_xlimt   set_ylimt	   set_titlet   savefigt   clfR   t   errorbarR   t   amint   amax("   t   namest   stylesRb   R0   t   intensitiest	   proj_dictRi   Rj   t
   totalPowert   totalPower_errt
   wavelengtht
   componentst
   overburnedt   energy_constantst   chi2iont
   n_featurest   n_componentst   n_measurementt   chi2Rz   t   majorLocatort   majorFormattert   minorLocatort   fitt	   mean_datat   residt   figt   axt   legR*   t	   tvec_tempt	   temp_dictt   tmint   tmax(    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   make_graphs   s    		."
$#

$+


%-
$"c         C   sP  d GHi d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d  d! 6} dI } dJ } t  d&  \ } } t  d'  \ } } t  d(  \ } } t |  } | | d  d   f }	 | j | d  d   f }
 t |	 d) d* }	 t  d+  \ } } t | d  d   | f d) d, } |	 d  d   d  f | } t t |	 |  d) d* } t | d) d* } | | } t j d-  } t j	 d.  } t j d,  } t j
 d/ dK  } | j d2 d2 d3 d3 g  } d4 | d5 d6 d2 } | j | | | d7 d8 d, d9 d: | j | | | d d8 d, d9 d; x^ t | | |  D]J \ } } } | d* k } | j | | | | | | | d8 d, d9 | qXWx t |  j  D] \ } } | | d, } | j d< d* d9 | d, d= | d* d> | d,  x t | d*  D] \ } } | t |  k  s| t |  k rEqn  | j d< | d= | d* d> | d,  | j | | | | d, d? | d* qWqW| j t |  t |   | j d@ d   | j dA  | j dB dC dD t  } | j   j d4  | j j |  | j j |  | j j |  dE GH| j dF dG dH t j    d  S(L   Nt   PlotDetailResiduums   b-t   Hs   r-Rp   s   r--Rq   s   r-.Rr   s   r:t   OIVs   g-Rs   s   g--t   HeIIs   k-t   CIs   k--Rt   s   k-.Ru   s   k:t   CIVs   y-Rv   s   y--Rw   s   y-.Rx   s   y:t   NIVs   c-t   unknowRo   Ry   s   CIV+NIV+OIVs   m:s   ./data/componentss   ./data/projections   ./data/plasmaR   i    s   ./data/intensitiesi   i
   s   %dR   i   i   g?g?gffffff?i   i   s   b:t	   linewidthR   s   fit residuumRc   R   Re   t   lst   colorit   symlogR   s   center rightR   s   saving s   ./graphs/spectra.svgzR   R   (   s   HIs   OIs   OIIs   OIIIs   HeIs   CIIs   CIIIs   NIs   NIIs   NIIIs   Mystery1s   CIV+NIV+OIV(   s   b-s   r-s   r--s   r-.s   g-s   k--s   k-.s   y-s   y--s   y-.s   c-s   m:(   i   i   (!   R   R   RK   R   R   R   t   sumR{   R   R   R   t   add_axesR   t   zipRG   t   elementst   axvlineR   R   R   R   R   t
   set_yscaleR   R3   R   R   R   R   R   R   R   R"   (   R   t
   style_dictR   R   R   R   Rb   R   R0   Ri   Rj   R   t   norm_componentsR   R   R   R   R   R   R   t   shiftt   shot_spectrumt   nt   sR[   R*   t   elementR`   t   lineR   (    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyR     s`    4B"
##"3.$$-c          C   sR  x< d d d d g D]( }  t  j j |   s t  j |   q q Wt j d d k r t   \ } } } } } d GHt | | | |  } d GH| r d	 GHd  St   n  t j d d
 k r t	   t
   t d d  t  j d  n  t j d d k rNt   \ } } } } } | j   \ } } t | | |  \ }	 }
 t | | | |	 |
  n  d  S(   Nt   graphst   resultsRc   t   HistoricalAnalysisi   t   analysiss   loaded datas   CalcProjections dones	   no plasmat   plotst   statusi    s7   convert -resize 150x120\! ./graphs/density.png icon.pngt   postanalysis(   R   R   t   existst   mkdirt   syst   argvR8   R   R   R   R   R   t   systemt   getDataRn   R   (   R   t   spectrometrt   tokt
   actualShotR(   R)   t   noplasmaR   t   _Rm   Rh   (    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   main,  s,    
t   __main__((   R#   t   tR   R   R   t   CalcIonProjectionsR    R   t   IDAR   R   R   t   SpectrometerControlR   R   t   numpyt
   matplotlibt   scipy.linalgR   t   scipy.signalR	   t   rcParamst   matplotlib.pyplott   pyplotR{   t   pygolem_lite.modulesR   R   R   R   t   pygolem_liteR   R/   R8   R9   Rn   R   R   R  R   (    (    (    sO   /golem/database/velin//includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   <module>   s4   
"	#			_	 
	W	1