U
    W`eu>                     @   sB  d dl Z d dlZd dlZd dlT d dlZd dlZdZdZdZ	de
dd Zde Zed	 Zed
 ZdZdZdZdZdZdZdZe Ze Ze  e  e  ejZi ZdZdddddddddddddgZeed Zd!d" Z d#d$ Z!d%d& Z"d'Z#de# Z$g Z%g Z&i Z'e(d(D ]@Z)e"ed)e)d*  d*Z*e%+e* e!ed+e$e)d,  Z,e,e'e*< qe(d-D ] Z)e&+e!ed+d.e)d,   q`e'd/ Z-e'd0 Z.g Z/g Z0e(d1D ] Z)e/+e ed2d3e)d   qe ed2d4Z1g Z2e(d-D ] Z)e/+e ed2d5e)d   qe(d6D ]6Z)e)d- Z3e/e3 e/e3d  e/e3d7  gZ4e2+e4 qd8d9 Z5d:d; Z6d<d= Z7d>d? Z8d@dA Z9dBdC Z:dDdE Z;dFd Z<dGdH Z=dIdJ Z>dKdL Z?dMdN Z@dudOdPZAdvdQdRZBdSdT ZCdwdUdVZDdWdX ZEdYdZ ZFd[d\ ZGd]d^ ZHd_d` ZIedafdbdcZJeKe jLdkr>e jLd ZMeNeMZOeDeOdd eOde eOdf dg ZePeOdh eOd eOdi eOdj eOdk eOdl g eQdmejejR e=ejZSe?ejZTeTdn ZUeBejejVeTdo ZWeHdejZXeQeX eHdejZYeQeY dpejV  dq ZZeJdejeZ[eQe[ e[dr eZ Z\e[ds eZ Z]e^e\Z_e^e]Z`eQe_e_d  dt e`d  dt  dS )x    N)*g      @glH@d            <     iJxgn#@gYͶ=?i
 i  geWѧ?g[ק?z /var/www/DE405/lnxp1600p2200.405ZmerZvenearmarZjupsatZuraZnepZplumonsunnutlibrbc                 C   s&   |  | | d}t||}|d S )Nr   r   seekreadunpackffmtposzzz r   /var/www/ahpy/de405.pyrdbin&   s    


r   c                 C   s&   |  | | d}t||}|d S )N   r   r   r   r   r   r   rdbin_d+   s    


r   c                 C   s   |  | | |}| S )N)r   r   decode)r   r   Zszr   r   r   r   	rdbin_cst0   s    

r!   i           dr      i\
  zAU    zEMRAT $   ii
  i  i        c                 C   s   d|g}ddg}t | d D ]h}|d }|d| ||d   ||d    |d| ||d   ||d   d||d     q||dS )N      ?g        r*   r   )chtchtp)rangeappend)nxtttpjr(   r   r   r   chebX   s    &8r5   c                 C   s.   d}t ttD ]}t| | kr|} q*q|S )N)r.   lenbodies)stZiir(   r   r   r   getIndx`   s    r:   c              	   C   s  ddddddg}t |}d}|dkr(d}t| d d }t| d }t| d }| d }t|td  td  d }	|	d t }
g }tttd D ]}|	t
td|
|d   q|d |d  }|| }||d  }t|| | }|d ||  }d	| ||  d
 }t||}t|D ]}t|D ]p}|| ||  || |  }||  |d | ||  7  < |dkr.|||   |d | ||  7  < q.|||   d	| | d 9  < q"|S )Nr   r&   
   r*   r   g   @OBAr%   r          @r+   r,   r-   g     @)r:   IPTmathfloorsslrecr.   inturecr/   r   fder5   )mjdZstbodr1   ZindbZncompaddZncoeZnarcstZnrecr   cccr(   ZdtallZdtsubZdt0ZiarcZtt0r2   chr4   Zindr   r   r   intpbodyg   s:    
 
($rJ   c                 C   s8   d}t dD ]}|| | | |  7 }qt|t d S )Nr   r&     )r.   r>   sqrtCLIGHT)r1   r%   r(   r   r   r   dis_sec   s    rN   c                 C   sl   t | d}t | d}tdt  }ddddddg}tdD ] }|| d| ||   ||< q8|t| |S )Nr	   r   r   r   r$   )rJ   emratr.   r/   rN   )rE   ZxbemZxemZfbaryr1   r(   r   r   r   	geocenter   s    

rP   c                 C   sD   t | d}|t| | |d d  }t |d}|t| |S Nr   r$   Q )rJ   r/   rN   )rE   r1   mjdtherer   r   r   moon   s    

rT   c                 C   s   t | |}|dkr<t| }tdD ]}||  || 8  < q"|t| | |d d  }t ||}|dkrtdD ]}||  || 8  < qt|t| |S rQ   )rJ   rP   r.   r/   rN   )rE   ZstbxbZxgr(   rS   r   r   r   sun_pla   s    

rV   c                 C   s
   t | dS )Nr   )rJ   )rE   r   r   r   r      s    c                 C   s2  t d d }| d d }|| }|| }d| d|  d|  | }d| d|  d	|  | }d
| d|  d|  | }t|}t|}	t|}
t|}t|}t|}||
 | |	|  |	 |
 | ||  |
 | g|| | |	|
  |	 | | ||
  | | g|| |	 | |gg}|S )N     f@g      @    +@    @gͪo@g5A} R?gْUn?gO],σ?gIΣ?gNё\>Q@gX5;N?gɍ"k?)PIr>   cossin)rE   ZASEC_RADtlZtl2Ztl3ZxaZzataZcosxaZsinxaZcoszaZsinzaZcostaZsintaprr   r   r   	prec2000r   s$    





00r`   c                 C   s<   | d d }dd|  d| |  d| | |  }|d S )NrX   i  gJ+י@gAekG@g1ZGUC?gJE]?r   r   )mjdttcer   r   r   eps   s    (rd   c                 C   s  t | }t| }| d d }|t }||d  }dd|  d| |  d| | |  d| | | |  t d	 d
t  }t|dt }t|t|d  dt| t d	 d  }t|}t|}	t|}
t|}t|d }t|d }|| | |	 | g|
| ||
 | |	|  |	|
 | ||  g|| || | |	|
  |	| | ||
  gg}||||dS )NrX   rY   r   g˿yAgh",*yAgOe@g!?gRĖ0#?@	 r;   r*   r   g)\u@gư>)eqim_nutepsmepstrue)r   rd   RAD_DEGrZ   r>   fmodr[   r\   )ra   ntZepsilrb   rh   ZepstZargOrf   ZcemZsemZcetsetZcdpZsdprg   r   r   r   elnutr   s&    L2



,,rn   c                 C   s   g }t | }t | d }t |}t |d }|}|}t|D ]X}	g }
t|D ]<}d}t|D ] }|| |	 | || |  7 }q\|
| qL||
 q<|S Nr   r7   r.   r/   )abrb   ZnlaZncaZnlbZncbZnlcZnccr(   Zccr4   r%   kr   r   r   matMul   s      rt   c                 C   s   g }t | }t |}t | d }||kr,|}t|D ]P}d}t|D ]4}	|dkr\| | |	 n
| |	 | }
||
||	  7 }qD|| q4|S ro   rp   )mvZitrpZvoutnrZncZncmr(   tmpr4   mulr   r   r   matVec   s        rz   c                 C   s   | d| d  d }dd|  }t |d}t |d}t || d}dt | }| d d }d	d
|  d| |  d| | |  d| | | |  }|t d }||| 7 }t |dt }|dk r|dt 7 }|S )Nd;OI@rR   rX   gr'̄	?gU擛mf?r   r<   rY   g5&\R?gXK(@gK3X?g_~?g[>re   r*   r   )r>   rk   rZ   )ra   ZleapZequiZtuthZth2r2   Zgstr   r   r   hsg2000   s(    

r}   c                 C   s   t | }t| tj|d }t| }t|d |}t|t|dgt| t|dgdddgg}t||}|||d dS )Nrf   rg   r   r   ri   )matrixhsgri   )	rn   r}   ggpsutcr`   rt   r>   r[   r\   )rE   elnr   pre
matJ2000_Tm_geoZmatJ2000_geor   r   r   	j2000ECEF  s    6
r   c                 C   s   g }| t  }|t  }t|}t|}t|}t|}	ttdtt | |   }
||
| |	 |  ||
| |	 |  ||
dtt   | |  | |dg| | | | |	g||	 ||	 |gg}|||||dS )Nr   r   )r1   gen_loclonrdlatrdhe)rj   r>   r\   r[   ELL_arL   ELL_er/   )lonlatr   r1   lr   slclZsfZcfNr   r   r   r   ellCart  s    



2r   c           	      C   s  t | d d | d d  | d d  }t | d d | d d  }| d |d  | d |d   | d |d   | }t | d | d }t | d |}|dk r|dt 7 }|d | d  | d |d   | | }||d  || d   | | }||||gS )Nr   r*   r   )r>   rL   atan2rZ   )	r1   xdRrZRdotr   rr   ZldotZbdotr   r   r   l_b$  s    *4 ( r   c              	   C   s  t || }|d |d |d g}t|}t|}t|d |}t||}t||}t|d |d t d }	|	dk r~|	d7 }	t|d	 t|d |d  |d |d   t d
 }
|d }dddgdt	|t
|gdt
| t	|gg}t||}t||}t|d |d t d }|dk r8|d7 }t|d	 t|d |d  |d |d   t d
 }t||}|	|
|||dS )Nr&   r      rg   r   r         r*   r   ri   )alphadeltalambdabetalbr)rV   rn   r`   rt   rz   r>   r   rZ   rL   r[   r\   r   )bdyrE   r1   r   r   r   r   xxxxdZalfar   rd   ZmrotZxxeZxxedZlambr   r   r   r   r   get_equ_ecl2  s*    


 :6


 :
r   c                 C   s  t || }td }td }t|}t|d |}t|d |d |d |d g}tdD ]}||  || 8  < qX|d  t |d t dg}	tdD ]}||| |	|   qtt	|d |d  td	  t
 d
 d}
t	|d t|d |d  |d |d   t
 d }t||}t||d |d |d g}tdD ]}|||  qHt	|d |d t
 d }t	|d t|d |d  |d |d   t
 d }|dk r|d7 }| |
|||t|t|td|d d	S )Nr1   r   r~   r&   r   r   r   r   r   r   r   r*   r   rW        v@	bodyahr   azelrN   ZxgeoxxxZsgndel)rV   xGeor   rz   r.   OMDOTr/   r>   rk   r   rZ   rL   rN   copysign)r   rE   r1   xGmtoLocECEFr   Zvvr(   ZvGr   r   r   Zvvvr   r   r   r   r   getCooI  s,    
 .:
:
 r   c                 C   s  t || }|d |d |d g}td }td }t|}t|}t|d |}t||}	t||}
t|tj|d }t	
|t	|dgt	| t	
|dgddd	gg}t	| t t	
|t dgt	
| t t	| t dgdddgg}t||	}t||
}t||	}tdD ]}||  || 7  < qg }tdD ]}||| ||   qBtdD ]}|||  qht	t	|d	 |d  td
  t d d}t	|d t	|d |d  |d	 |d	   t d }t||}t||d |d |d g}tdD ]}|||  qt	|d |d	 t d }t	|d t	|d |d  |d	 |d	   t d }|dk r|d7 }| ||||t|t|t	d	|d d	S )Nr&   r   r   r1   r   rg   rf   r   r   r   r   r   r*   r   rW   r   r   )rV   r   rn   r`   rt   rz   r}   r   r   r>   r[   r\   OMDEr.   r/   rk   r   rZ   rL   rN   r   )r   rE   r1   r   r   r   r   r   r   r   r   r   r   Zm_geodotr   ZxxxdZxxxdHr(   ZxTr   r   ZxxTZvvTr   r   r   r   r   getCoo2c  sB    


6J


	.:
:
 r   c              	   C   s6  t d }t d }t| }|d }|d }t|t| dg}tt|d |d  t d  t d d	}|dkrz|n|d	 }t||}	t|	d |	d t d
 }
t|	d t	|	d |	d  |	d |	d   t d
 }|
dk r|
d7 }
|t d }|dk r|d	7 }|d	kr"|d	8 }d||
||||dS )Nr1   r   r   ri   r   r   r   r   r   rW   r*   r   gamma)r   r   r   r   r   hslrd   )
r   r   r>   r[   r\   rk   r   rZ   rz   rL   )rE   r   r   r   Zhsgrrd   r   r   r   r   r   r   r   r   r   r   getGam  s&    .
: 
 
 r   gzGc                 C   s  t |d }t |d }d}d}| dkr0d}d}d}	t| |}
|
d  d }tdD ]<}t| || }
|
d d }t |dk r|}	 q||8 }qX|t }|
d	 t }|d | }|dkrd
nd}t | |t |  | t | }d}t|d
krt |t	 d }d}|| |d  }|| |d  }t| |}|d | }| d | t |d	 d t	  d }tdD ]h}||7 }t| |}|d }|d | }| d | t |d	 d t	  d }t|dk r| qq|t| |}|d | }|d | t |d	 d t	  d }tdD ]f}||7 }t| |}|d }|d | }|d | t |d	 d t	  d }t|dk r* qq*| |||	|
d |||||d
S )Nr   r   r   g[ir   r   c   g%Ӈ=r   r   r6   r   r      r      r   g2.Z >)
astdmjdsgnculiterelevZdahlcmjdLmjdCazlazc)
r>   r\   r[   r   r.   fabsrj   absacosrZ   )rr   rE   r   ZepdZsinphiZcosphir   r   r   r   r1   r(   ZdeltZepr   r   ZcosAHZdahZitlcZmjdcZmjdlydeZdmr   r   r   merid  sf     

( 
(
( 

&
& 
r   r   r   r   rK   Zyyyydayhru   sZMJDTTrg   rf   r{   rR   r   r   r   )r   )r   )r   )asysjsonr>   structGpstimeZnumpyZnpZlondZlatdr   r   rZ   rj   ZRAD_MINZRAD_SECrM   r   r   ZASUNZAMr   r   Zg0r   Zjust_nowra   ZMJDr   filer8   openrD   r   r   r!   rC   rA   Zcstnamr@   Z
dict_constr.   r(   Zcnamir/   r   ZaurO   ZiptZlptZdenumr=   rs   Zarhr5   r:   rJ   rN   rP   rT   rV   r   r`   rd   rn   rt   rz   r}   r   r   r   r   r   r   r   r   r7   argvjsnloadsZinpdate_time_tprintZtsysZmprr   Zmnutr   r   ZsundatZmondatZtt2utcZelmeridZutclZutccmodfZjjLZjjCr   r   r   r   <module>   s   

	

	
3+;

.



