
    R1i                         d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	 d dl
mZmZ d dlmZ dZdZd	 Zd
ZddlmZ edz  Zedz  ZdZd Zd Zd Zd Zd Zd Zd Zd Zy)    )array)api)EarthSatelliteload)AU_KMAU_M)TEME_to_ITRFVectorFunction)julian_datezE1 25544U 98067A   18184.80969102  .00001614  00000-0  31745-4 0  9993zE2 25544  51.6414 295.8524 0003435 262.6267 204.2868 15.54005638121106c                  P   t         j                  j                         } t        t        t
              }t        g dg dg      j                  }t        g dg dg      j                  }dt        z  }dt        z  }| j                  ddd	      }|j                  |      }t        |j                  j                  |d d d
f   z
        j                         |k  sJ t        |j                   j"                  |d d d
f   z
        j                         |k  sJ | j                  ddd	dg      }|j                  |      }t        |j                  j                  |z
        j                         |k  sJ t        |j                   j"                  |z
        j                         |k  sJ y )N)gQ*>g(9g͵I>g譸?)g	fg=,GgL2)gD\g|	p?g$H!?)gLfa?g TݼngNO?g       @g      R@        r      )r   r   	timescaler   line1line2r   Tr   r   tdbatabspositionaumaxvelocityau_per_d)tsshphv
two_metersthree_km_per_hourtps           h/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/skyfield/tests/test_earth_satellites.pytest_iss_against_horizonsr&      sr   				Bue$A	JM 
 	q  
KK 
 	q 
 tJ"U*
tQA	QAqzz}}r!A#w&'++-
:::qzz""R!W,-1136GGGG
tQAA	QAqzz}}r!"&&(:555qzz""R'(,,.1BBBB    zTEME EXAMPLE
1 00005U 58002B   00179.78495062  .00000023  00000-0  28098-4 0  4753
2 00005  34.2682 348.7242 1859667 331.7664  19.3264 10.82419157413667
   )DEG2RAD      N@     @c                     t        g d      } t        g d      }|dz  dz  dz  }t        ddddd	d
      }d}||dz  z   }dt        z  }dt        z  }t        || |||      \  }}d}	t	        d|d   z
        |	k  sJ t	        d|d   z
        |	k  sJ t	        d|d   z
        |	k  sJ |t
        z  }
d}	t	        d|
d   z
        |	k  sJ t	        d|
d   z
        |	k  sJ t	        d|
d   z
        |	k  sJ y )N)g{w.@gg@gK3X@)g1|	g
uVk%?guv @g      8@r*   i  r      r   3   gA`b<@g;.R(ܿr+   gAd&¿gET?Hj>g	`%r   gP*+Kݾ@   gI[@r(   gz]r>gLw	g@hg:NͰ @)r   r   	arcsecondr	   r   seconds_per_day)rTEMEvTEMEjd_utcd_ut1jd_ut1xpyprITRFvITRFepsilonvITRF_per_seconds              r%   ,test_appendix_c_conversion_from_TEME_to_ITRFr>   I   s?   ?@E:;EDL4$&Eq!QF3FEego%F	Y	B	I	Bub"=LE5G~a()G333~a()G333~a()G333.G|.q112W<<<|.q112W<<<|.q112W<<<r'   c                  J   t         j                         } t        j                  j	                         }t        | d   | d   | d   |      }|j                  |j                  j                  dz   |j                  j                        }|j                  |      \  }}}d}t        d|d   z
        |k  sJ t        d|d   z
        |k  sJ t        d|d   z
        |k  sJ d	}t        d
|d   z
        |k  sJ t        d|d   z
        |k  sJ t        d|d   z
        |k  sJ y )Nr0   r(   r   g      @g-C6?g^<gn2@g۳m~m@r/   g_#og=qgGR>B	)appendix_c_example
splitlinesr   r   r   r   tt_jdepochwholett_fraction_position_and_velocity_TEME_kmr   )linesr   satr#   r3   r4   errorr<   s           r%   test_appendix_c_satelliterJ   e   s4   ))+E				B
q58U1Xr
:C
3&		(=(=>A <<Q?E5%
 G~a()G333}uQx'(7222|eAh&''111 G|eAh&''111|eAh&''111|eAh&''111r'   c                      t         j                  dd      } | j                         }t        |d   |d   |d         }|j                  j                         dk(  sJ y )Nz00179.78495062z98001.00000000r0   r(   r   z"A.D. 1998-Jan-01 00:00:00.0000 UTC)r@   replacerA   r   rC   utc_jpl)r   rG   rH   s      r%   test_epoch_daterN      sW    ""#35EFALLNE
q58U1X
6C99"FFFFr'   c                  N    t        t        t              } | j                  dk(  sJ y )Ni)r   r   r   target)r   s    r%   test_target_numberrQ      s     ue$A88wr'   c                     t         j                  j                         } | j                  ddddt	        ddd            }t        t        t              }t        d      }g d}t        |j                  |      j                  |            |k(  sJ t        j                  d	d
      }t        ||z
  j                  |      j                  |            |k(  sJ y )Nr   r      r   <   
   	de421.bsp)TFFFTTz	40.8939 Nz	83.8917 W)r   r   r   utcranger   r   r   listr   	is_sunlitTopos)r   r#   r   ephexpectedtoposs         r%   test_is_sunlitr_      s    				B
tQ1eAr2./Aue$A
{
C6HQ!!#&'8333 IIk;/EUq!++C01X===r'   c                  p   t         j                  j                         } | j                  ddddt	        ddd            }t        t        t              }t        d      }g d}|d	   |z   j                  |      j                  |d
         j                         }t        |j                               |k(  sJ y )Nr   r   rS   r   rT   rU   rV   )FTTTFFearthsun)r   r   r   rW   rX   r   r   r   r   observeapparentrY   is_behind_earth)r   r#   r   r\   r]   r$   s         r%   test_is_venus_behind_earthrf      s     
			B
tQ1eAr2./Aue$A
{
C6H	W	a ((U4==?A!!#$000r'   c                  \   t         j                  j                         } | j                  ddddt	        ddd            }t        t        t              }t        t        j                  dd      t              }g d	}||z
  j                  |      }t        |j                               |k(  sJ y )
Nr   r   rS   r   rT   rU   z184.80969102z185.80969102)TTTTTT)r   r   r   rW   rX   r   r   r   rL   r   rY   re   )r   r#   r   s2r]   r$   s         r%   &test_is_another_satellite_behind_earthri      s    				B
tQ1eAr2./Aue$A	nnEu	MB3H	
RAA!!#$000r'   c            	          G d dt               } t        j                  j                         }|j	                  ddddd      } | dt
        z  d	d	g       | d
t
        z  d	d	g       | g d       | dt
        z  d	d	g       | dt
        z  d	d	g      g}|D cg c]/  }|D ](  }||ur"||z
  j                  |      j                         * 1 }}}|g dk(  sJ y c c}}w )Nc                   4    e Zd ZdZdZ eg d      Zd Zd Zy)-test_behind_earth_thoroughly.<locals>.FakeSati  Nr   r   r   c                 $    t        |      | _        y N)r   r)selfrp   s     r%   __init__z6test_behind_earth_thoroughly.<locals>.FakeSat.__init__   s    1XDFr'   c                 6    | j                   | j                  d d fS ro   )rp   zero)rq   r#   s     r%   _atz1test_behind_earth_thoroughly.<locals>.FakeSat._at   s    66499dD00r'   )	__name__
__module____qualname__centerrP   r   rt   rr   ru    r'   r%   FakeSatrl      s    W~		1r'   r{   i  r      r0      g    @w+r   g     j(rm   g     j(Ag    @w+A)FTTTFTTTTTTTTTTFTTTF)r
   r   r   r   rW   r   r   re   )r{   r   r#   satss1rh   verdictss          r%   test_behind_earth_thoroughlyr      s    1. 1 
			B
tQ1b!A
 	q!$%q!$%	ua#$ua#$D BBR< 
bQ'') 	*       s   4CN) numpyr   skyfieldr   skyfield.apir   r   skyfield.constantsr   r   skyfield.sgp4libr	   r
   skyfield.timelibr   r   r   r&   r@   	constantsr)   	arcminuter1   r2   r>   rJ   rN   rQ   r_   rf   ri   r   rz   r'   r%   <module>r      sw      - * 9 (OOC:   dN		=826G>
1	1"r'   