B
    {d+                 @   s`   d dl Zd dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZ e
 e dZdd Zd
dd	ZdS )    N)fits)TableHDUBinTableHDU)BaseCoordinateFrameframe_transform_graphGalacticICRS)gcc             C   sn   t | tr| S t | trj|  } | dkr2tdn8| tkrBt|  S t| }|d krdtd|  n| S d S )Nez+Ecliptic coordinate frame not yet supportedz%Could not determine frame for system=)
isinstancer   strlower
ValueErrorFRAMESr   lookup_name)systemZ
system_new r   b/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/astropy_healpix/utils.pyparse_coord_system   s    



r   c       	      C   s   t | ttfrT| j}| j}t|d }||j| j  }d|kr|d 	 dk}n`t | t
r|t| |pld }t||dS t | trt | d tjr| d }t| d }ntd|||fS )zW
    Parse input HEALPIX data to return a Numpy array and coordinate frame object.
    ZCOORDSYSZORDERINGnested   )fieldr   zFinput_data should either be an HDU object or a tuple of (array, frame))r   r   r   dataheaderr   columnsnameZravelr   r   r   openparse_input_healpix_datatuplenpZndarray	TypeError)	Z
input_datar   Zhdu_inr   r   r   Zcoordinate_system_inZarray_inZhdur   r   r   r      s    
r   )r   NN)numpyr    Z
astropy.ior   Zastropy.io.fitsr   r   Zastropy.coordinatesr   r   r   r   r   r   r   r   r   r   r   <module>   s   
