ó
w™xTc           @   sè   d  d l  m Z d  d l Z d  d l m 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 GHe
 j j ƒ  GHe
 j j ƒ  j ƒ  GHd  d l m Z e e
 ƒ Z e j ƒ  e j e j d	 ƒ n  d S(
   iÿÿÿÿ(   t   divisionN(   t   DetectorImageBaset	   ADSCImagec           B   s;   e  Z d  „  Z d d d „ Z d „  Z d „  Z d „  Z RS(   c         C   s   t  j |  | ƒ d |  _ d  S(   Nt   ADSC(   R   t   __init__t
   vendortype(   t   selft   filename(    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyR      s    i 0  c         C   s§  |  j  s£d } t |  j d ƒ } | j t | ƒ ƒ | k sB t ‚ x) t rm | j d ƒ } | j ƒ  sE PqE qE W| } x3 t r© | j d ƒ } | j ƒ  sœ Pn  | | 7} qw W| j	 d ƒ | j t
 | ƒ ƒ |  _ | j ƒ  i d d 6|  _  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  k	 rüt | d ƒ d k sït ‚ | | } n  x | D]w \ } }	 }
 t j |	 d d ƒ } | j |  j ƒ } t | ƒ d k r| d d" k rz|
 | d ƒ |  j  | <qzqqW|  j  j d ƒ s£d! |  j  d <q£n  d  S(#   Ns   {
HEADER_BYTES=t   rbi   i    iÿÿ  t   CCD_IMAGE_SATURATIONt   HEADER_BYTESt   SIZE1t   SIZE2t   DETECTOR_SNt
   PIXEL_SIZEt	   OSC_STARTt   DISTANCEt
   WAVELENGTHs   \nWAVELENGTHt   BEAM_CENTER_Xs   \nBEAM_CENTER_Xt   BEAM_CENTER_Ys   \nBEAM_CENTER_Yt	   OSC_RANGEt   TWOTHETAt
   BYTE_ORDERt   AXISt   PHIt   OMEGAt   DATEi   t   =s   (.*);iÿÿÿÿt   Nonet   unknowng        (   Ns   Nones   unknown(   t
   parameterst   openR   t   readt   lent   AssertionErrort   Truet   isspacet   isdigitt   seekt   intt   headert   closet   floatt   strR   t   ret   compilet   findallt   has_key(   R   t	   maxlengtht   external_keyst   MAGIC_NUMBERt   streamt   ct   header_bytest   libraryt   tagt   searcht   datatypet   patternt   matches(    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyt
   readHeader
   s^    	!		
!c         C   s   |  j  d S(   NR
   (   R   (   R   (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyt
   dataoffsetI   s    c         C   s   d S(   Ni   (    (   R   (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyt   integerdepthL   s    c         C   s.   |  j  d j ƒ  j d ƒ d k r& d Sd Sd  S(   NR   t   bigi    i   (   R   t   lowert   find(   R   (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyt	   getEndianQ   s    "N(   t   __name__t
   __module__R   R   R<   R=   R>   RB   (    (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyR      s
   	?		t   __main__i   (   t	   JPEGImagei   (   t
   __future__R    R,   t   iotbx.detectors.detectorbaseR   R   RC   t   syst   argvt   it   aR    t   linearintdatat   sizet   accessort   gridt   labelit.detectors.jpegRF   t   jt	   calcimaget   write(    (    (    sB   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/iotbx/detectors/adsc.pyt   <module>   s   R

