σ
ίΘ[c           @` s   d  d l  m Z m Z m Z d  d l Z d d l m Z d d l	 m
 Z
 d d l m Z d   Z d   Z d	   Z d
   Z d   Z d S(   i    (   t   print_functiont   divisiont   absolute_importNi   (   t   units(   t   six(   t   BaseCoordinateFramec      
   C` s  |  d t  j k rjd d d d d d d d	 d
 d g
 } d d d d d d d d d d g
 } t  j g t |  } d d d d d d d d g } d d d d d d d d g } t j |  d } t  j g t |  } t j |  d } t  j g t |  }	 t j | | | g  }
 | | | } |	 | | } |
 j |  j	 t  j   } | | } | | } | | St
 |  j t  j   t  j Sd  S(   Ng      π?g      ψ?i   i   i   i   i(   iF   ix   i  i  i   i   i   i
   i   i   i-   iZ   i΄   ih  g      @g      @i   i   i   i   g      N@g      ¬@(   t   ut   arcsect   degreet   lent   npt   arrayt   arcmint   concatenatet   searchsortedt   tot   select_step_scalart   to_value(   t   dvt   degree_limits_t   degree_steps_t   degree_unitst   minsec_limits_t   minsec_steps_t   minute_limits_t   minute_unitst   second_limits_t   second_unitst   degree_limitst   degree_stepst   nt   stept   unit(    (    sB   lib/python2.7/site-packages/astropy/visualization/wcsaxes/utils.pyt   select_step_degree   s(    $$	

c         C` s§  |  d t  j k r~d d d d d d d d	 d
 g	 } d d d d d d d d d g	 } t  j g t |  } d d d d d d d d d d d g } d d d d d d d d d d d g } t j |  d } d t  j g t |  } t j |  d } d t  j g t |  }	 t j | | | g  }
 | | | } |	 | | } |
 j |  j	 t  j   } | | } | | } | | St
 |  j d t  j   d t  j Sd  S(   Ng      .@g      ψ?g      @g      @i   i   i
   i   i   i$   i   i   i   i   i   i   i   i   i   g      @g      @i   i   i   i-   i   i   g      N@g      ¬@(   R   R   t	   hourangleR	   R
   R   R   R   R   R   R   R   (   R   t   hour_limits_t   hour_steps_t
   hour_unitsR   R   R   R   R   R   t   hour_limitst
   hour_stepsR   R   R    (    (    sB   lib/python2.7/site-packages/astropy/visualization/wcsaxes/utils.pyt   select_step_hour3   s(    !!''	

c         C` so   t  j |   } t  j |  } | | } t  j d d d d g  } t  j t  j | |   } d | | | S(   Ni   i   i   i
   g      $@(   R
   t   log10t   floort   argmint   abs(   R   t   log10_dvt   baset   fract   stepst   imin(    (    sB   lib/python2.7/site-packages/astropy/visualization/wcsaxes/utils.pyR   V   s    
c         C` sΠ   i  } d | d <d | d <t j t j f | d <d d l m } t |  t j  r |  } | j |   }  |  d  k r t	 d j
 |    q n  t |  t  s© |    }  n  t |  j j    } | d	  | d
 <| S(   Nt	   longitudet   latitudet   typet   wrapR    i    (   t   frame_transform_graphs   Unknown frame: {0}i   t   name(   R2   R3   (   NN(   t   NoneR   t   degt   astropy.coordinatesR6   t
   isinstanceR   t   string_typest   lookup_namet
   ValueErrort   formatR   t   listt   representation_component_namest   keys(   t   framet
   coord_metaR6   t   initial_framet   names(    (    sB   lib/python2.7/site-packages/astropy/visualization/wcsaxes/utils.pyt   get_coord_metad   s    

c         C` sj   |  d  d k s# |  d d !d k r' d S|  d  d k r; d S|  d  d k s^ |  d d !d
 k rb d Sd Sd S(   sd   
    Determine whether a particular WCS ctype corresponds to an angle or scalar
    coordinate.
    i   s   RA--i   t   LONR2   t   HPLNg     f@s   DEC-t   HPLTt   LATR3   t   scalarN(   s   RA--(   R2   N(   RI   (   R2   g     f@(   s   DEC-RJ   (   R3   N(   RL   N(   R8   (   t   ctype(    (    sB   lib/python2.7/site-packages/astropy/visualization/wcsaxes/utils.pyt   coord_type_from_ctype|   s    ##(   t
   __future__R    R   R   t   numpyR
   t    R   R   t   externR   t   coordinatesR   R!   R(   R   RG   RN   (    (    (    sB   lib/python2.7/site-packages/astropy/visualization/wcsaxes/utils.pyt   <module>   s   	%	#		