
<iQc           @   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   s\  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{ Wt 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    id   t   data_s   .txtt   ws   spectra not found, waiting ...i   t   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(    (    s;   ../includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   LoadData_web   s0    
 c    	      C   s   t    }  |  d } |  d } |  d } t d  } t d |  } t    j d d t } xX t d  D]J } y | j d	 d
 | d   } PWqg d t |  GHt j	 d  qg Xqg W| d k r t
 d   n  | | | | | f S(   NR(   R)   t   plasmaR   s   HR+C1886s   spectrometr:datat   return_pathi
   R   R   is   no spectroscopic data ic   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_pathR*   R.   (    (    s;   ../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.   (    (    s;   ../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(   R9   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(    (    s;   ../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 j f d%     Y} t j	 d&  } t j
 d'  } t j	 d(  } t j d) d  d* dg d- d. d/ d0 d1 d2  } | j d3  } t t | | d  d   f |  j d4 d! } t | d  d   | f d4 d! } | | } t d5 |
 |  t j |
 | d( d6 d7 d8 d9 d: t j |
 | d; d7 d< d9 d: t j |
 | d= d7 d> d9 d: | j d? d@ dA | dB dC dD dE dF | j dG d0 | j j |  | j j |  | j j |  | j dH  | j dI  t j dJ dK dL t  } | j   j dM  | j dN  | j  dO dP  | j! dQ dR  | j" dS  | j# dT dU dN | j$   t |  } t |  srt | (n  t j d) d  d* dh d- d. d/ d0 d1 d2  } | j d3  } xZ t% |  D]L } t j& | | dW | | | f dX | | dY | | | f d7 |  | qW| j" dZ  t j dJ d[ dL t  } | j   j dM  | j d\  | j d]  | j dN  | j! d" d   | j# d^ dU dN | j$   | | 9} | | 9} xb t% |  D]T } t j& | | dW | | | f dW dY | | | f dW dX | | d7 |  | qWt j' d_  t j dJ d[ dL t  } | j   j dM  t j( d`  t j) d]  t j dN  t j* d" d   t j# da dU dN t j$   t  db  \ } } t+ |  dW } t, |  dW }  t j d) d  d* di d- d. d/ d0 d1 d2  } t j& | dW | dW dY |	 dW t j' dc  t j( d`  t j) d]  t j- | d! |  d!  t j* d" d   t j# dd dU dN t 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/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(    (    s;   ../includes/analysis/Radiation/1212Impurities_TO.ON/main.pyR|      s    N(   t   __name__t
   __module__t   NoneR|   (    (    (    s;   ../includes/analysis/Radiation/1212Impurities_TO.ON/main.pyRy      s   i2   s   %di
   t   numt   figsizei   i   t   dpiiP   t	   facecolorR   t	   edgecolort   kio   t   axiss   ./data/residual_spectraRd   t   labelt   residuumt	   linewidthg333333?t   rRb   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(   Rn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rw   Rx   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   anyRJ   t   loadR   RG   t   bool_Rz   R{   t   MultipleLocatort   FormatStrFormattert   figureR   t   add_subplott   meant   dotRB   R   t   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   errorbart   titlet   ylabelt   xlabelt   ylimt   amint   amaxt   xlim(!   t   namest   stylesRa   R0   t   intensitiest	   proj_dictRh   Ri   t
   totalPowert   totalPower_errt
   wavelengtht
   componentst   energy_constantst   chi2iont
   n_featurest   n_componentst   n_measurementt   chi2Ry   t   majorLocatort   majorFormattert   minorLocatort   figt   axt   fitt	   mean_datat   residt   legR*   t	   tvec_tempt	   temp_dictt   tmint   tmax(    (    s;   ../includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   make_graphs   s    		*."
#

*+


%-
*"c         C   s.  i 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} dG } dH } 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. dI  } | j d1 d1 d2 d2 g  } d3 | d4 d5 d1 } | j | | | d6 d7 d+ d8 d9 | j | | | d d7 d+ d8 d: xF t | | |  D]2 \ } } } | j | | | | d7 d+ d8 | qSWx t |  j  D] \ } } | | d+ } | j d; d) d8 | d+ d< | d) d= | d+  x t | d)  D] \ } } | t |  k  s| t |  k r(qn  | j d; | d< | d) d= | d+  | j | | | | d+ d> | d) qWqW| j t |  t |   | j d? d   | j d@  | j dA dB dC t  } | j   j d3  | j j |  | j j |  | j j |  | j dD dE dF t j    d  S(J   Ns   b-t   Hs   r-Ro   s   r--Rp   s   r-.Rq   s   r:t   OIVs   g-Rr   s   g--t   HeIIs   k-t   CIs   k--Rs   s   k-.Rt   s   k:t   CIVs   y-Ru   s   y--Rv   s   y-.Rw   s   y:t   NIVs   c-t   unknowRn   Rx   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:R   R   s   fit residuumRb   R~   Rd   t   lst   colorit   symlogR   s   center rightR   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   RJ   R   R   R   t   sumRz   R   R   R   t   add_axesR   t   zipRF   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   Ra   R   R0   Rh   Ri   R   t   norm_componentsR   R   R   R   R   R   R   t   shiftt   shot_spectrumt   nt   sR*   t   elementR_   t   lineR   (    (    s;   ../includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   PlotDetailResiduum  sZ    4B"
##"'.$$-c          C   s\  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 rXt   \ } } } } } | j   \ } } t | | |  \ }	 }
 t | | | |	 |
  t |  n  d  S(   Nt   graphst   resultsRb   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   argvR7   R   R   R   R   R   t   systemt   getDataRm   R   R   (   R   t   spectrometrt   tokt
   actualShotR(   R)   t   noplasmaR   t   _Rl   Rg   (    (    s;   ../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   pyplotRz   t   pygolem_lite.modulesR   R   R   R   t   pygolem_liteR   R/   R7   R8   Rm   R   R   R  R   (    (    (    s;   ../includes/analysis/Radiation/1212Impurities_TO.ON/main.pyt   <module>   s4   
"	#			_	 	\	0