ó
w™xTc           @   s¹   d  d l  m Z d  d l Z d  d l m Z d  d l m Z e f Z e	 f Z
 e f Z d e f d „  ƒ  YZ e d k rµ d  d l Z e j d Z e e ƒ Z e j ƒ  e j ƒ  n  d S(	   iÿÿÿÿ(   t   divisionN(   t	   ADSCImage(   t   DetectorImageBaset   SaturnImagec           B   s/   e  Z d  „  Z d „  Z d d „ Z d „  Z RS(   c         C   s   t  j |  | ƒ d |  _ d  S(   Nt   RigakuSaturn(   R   t   __init__t
   vendortype(   t   selft   filename(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/saturn.pyR      s    c         C   sL   | j  d ƒ } x d | k r. | j d ƒ q Wg  | D] } | | ƒ ^ q6 S(   Nt    t    (   t   splitt   remove(   R   t   inputstrt   typefunct   parsedt   I(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/saturn.pyt   getTupleofType   s    i   c   
      C   sk  |  j  sgt |  j d ƒ j | ƒ } | j d ƒ } | j d ƒ } | | d | | !|  _ i  |  _  x¤d d t f d d t f d d t f d	 d	 t f d
 d
 t f d d t f d d t	 f d d t
 f d d t f d d t f d d t f d d t f d d t
 f d d t
 f d d t
 f d d t f d d t
 f d d t f d d t f d d t f d d t
 f g D]  \ } } } t j | d d  ƒ } | j |  j ƒ }	 t |	 ƒ d! k rft | ƒ t d/ ƒ k rì|  j |	 d" | d! ƒ |  j  | <q| |	 d" ƒ |  j  | <qfqfW|  j  d j d# ƒ d! k s,t ‚ |  j  d d! |  j k sLt ‚ |  j  d d! |  j |  j  d$ <t |  j  d d! d% ƒ |  j  d& <|  j  d d' d( k s©t ‚ |  j  d d' |  j  d) <|  j  d d! |  j |  j  d* <|  j  d d |  j |  j  d+ <t |  j  d d |  j  d d! d% ƒ |  j  d, <|  j  d d d- k sLt ‚ |  j  d d% |  j  d. <n  d  S(0   Nt   rbt   {t   }i   t   CCD_IMAGE_SATURATIONt   SATURATED_VALUEt   HEADER_BYTESt
   BitmapSizet   SIZE1t   SIZE2t   CCD_DETECTOR_DESCRIPTIONt   CCD_DETECTOR_DIMENSIONSt   CCD_DETECTOR_SIZEt   CCD_GONIO_DESCRIPTIONt   CCD_GONIO_NAMESt   CCD_GONIO_NUM_VALUESt   CCD_GONIO_UNITSt   CCD_GONIO_VALUESt   CCD_GONIO_VALUES_MAXt   CCD_GONIO_VALUES_MINt
   WAVELENGTHt   SCAN_WAVELENGTHt   CCD_SPATIAL_BEAM_POSITIONt
   BYTE_ORDERt   AXISt   ROTATION_AXIS_NAMEt   DATEt   DTREK_DATE_TIMEt   ROTATIONs
   \nROTATIONt   =s   (.*);i    iÿÿÿÿt   Saturnt
   PIXEL_SIZEi   t	   OSC_STARTi   t   Distancet   DISTANCEt   BEAM_CENTER_Xt   BEAM_CENTER_Yt	   OSC_RANGEt   2Thetat   TWOTHETA(   i    i   (   t
   parameterst   openR   t   readt   indext   headert   floatt   intt   strt   INTt   FLOATt   STRt   ret   compilet   findallt   lent   typeR   t   findt   AssertionErrort   size1t   roundt
   pixel_size(
   R   t	   maxlengtht   rawdatat
   headeropent   headercloset   tagt   searcht   datatypet   patternt   matches(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/saturn.pyt
   readHeader   sd    		" 
!	'c         C   s›   d d l  m } t |  j d ƒ } | j |  j ƒ  ƒ | j |  j |  j |  j	 ƒ  ƒ } |  j
 | | |  j ƒ  |  j |  j |  j |  j |  j ƒ  ƒ ƒ d  S(   Niÿÿÿÿ(   t	   ReadRAXISR   (   t   iotbx.detectorsRX   R:   R   t   seekt
   dataoffsetR;   RK   t   size2t   integerdeptht   bin_safe_set_datat   bint   endian_swap_required(   R   RX   t   Ft   chardata(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/saturn.pyR;   V   s    #(   t   __name__t
   __module__R   R   RW   R;   (    (    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/saturn.pyR   
   s   		At   __main__i   (   t
   __future__R    RD   t   iotbx.detectors.adscR   t   iotbx.detectors.detectorbaseR   R?   RA   R>   RB   R@   RC   R   Rc   t   syst   argvt   it   aRW   R;   (    (    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/saturn.pyt   <module>   s   			V
