
    R1i(                     |    d dl Zd dlmZmZmZ d dlmZmZm	Z	 d dl
mZ ddlmZ d Zd Zd	 Zd
 Zd Zd Zd Zd Zy)    N)PlanetaryConstantsT0load)AU_KMAU_MDAY_S)ICRF   )	IS_32_BITc                  &   t        j                         } t               }|j                  t        d             |j	                  t        d             |j                  d      }|j                  J t        dz
  }g dg dg dg}g dg d	g d
g}t        j                  |      t        z  }|j                  | j                  |            }t        ||z
        j                         dk  sJ |j                  | j                  |            \  }}||k(  j!                         sJ t"        r!t        ||z
        j                         dk  s#J t        ||z
        j                         dk  sJ t        }g dg dg dg}g dg dg dg}t        j                  |      t        z  }|j                  | j                  |            }t        ||z
        j                         }	|	dk  sJ |j                  | j                  |            \  }}t        ||z
        j                         }	||k(  j!                         sJ t%        |	       |	dk  sJ t        dz
  }g dg dg dg}g dg dg dg}t        j                  |      t        z  }|j                  d      }|j                  | j                  |            }t        ||z
        }	t"        r!t        ||z
        j                         dk  s#J t        ||z
        j                         dk  sJ |j                  | j                  |            \  }}||k(  j!                         sJ t"        r"t        ||z
        j                         dk  sJ y t        ||z
        j                         d k  sJ y )!Nmoon_080317.tfmoon_pa_de421_1900-2050.bpcMOON_PA_DE421i+  )g%Z5?g6#?gl?)g$}gǚ&?g䞳?)g&F)[?gV_h׿g+.?)g;gxg	>gQz>)gp>Pƾg4K/;$wgjc v_)g͓-=gAig#K]=gMg<gO:gq7K<)g?gy?gYZD^?)g'Kgz<T{?grw?)gU8oؖgzjWڿg'5'?)gLggGVz>g	K!>)gݠ˸gPcage&=)gfgHgr;UgvIh%L=gt =)g+ N?g*YHTP?gڣ$j?)gd0Qgu=?gGQ̿?)grMT?gnڕ׿g6S?)gu+xg!>guIݾ>)gcPƾgB`vgkU_)g~5
D=gZg\MOON_ME_DE421gؗҬ<gؗҼ<gC]rB<gq7K<)r   	timescaler   	read_textread_binarybuild_frame_named_matrixr   nparrayr   rotation_attdb_jdabsmaxrotation_and_rate_atallr   print)
tspcframetdbdesired_rotationdesired_rateRR2Rvdeltas
             d/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/skyfield/tests/test_planetarylib.pytest_frame_rotation_matricesr*      se    
	B		BLL&'(NN4567  1E==   
 u*C 	IHH	 	!	!L 88L)E1L"))C.)Aq##$((*U222''		#7FBG==??2$%))+e3332$%))+e333 CDFH	 	!	"L 88L)E1L"))C.)A$$%))+E5==''		#7FB\!"&&(EG==??	%L5==
 u*CGGH	 	"	!L 88L)E1L  1E"))C.)A$$%E1''(,,.6661''(,,.666''		#7FBG==??2$%))+e3332$%))+e333    c                  p   d} t        j                         }|j                  t        | dz  dz  z         }t	               }|j                  t        d             |j                  t        d             t        t        j                  g d      t        z        }||_        d}|j                  d      }|j                  |      }t        t        |j                   g d	z
              |k  sJ |j                  d
      }|j                  |      }t        t        |j                   g dz
              |k  sJ y )Ng_2Ag      @g      8@r   r   )gduEAgb_gXhMbP?r   )gK70Agt M@g+eqrr   )gL/Ag\@gjMú)r   r   r   r   r   r   r   r	   r   r   r   tr   	frame_xyzr   r   km)	
et_secondsr   r.   r    vectormeterr!   resultrelative_frames	            r)   test_rotating_vector_into_framer6   w   s   "J		B
		"zE)D001A		BLL&'(NN4567
 "(( 5 68=> ?F FHE  1Ee$Fs699CCDEMMM))/:Nn-Fs699CCDEMMMr+   c                     t        j                         } | j                  d      }t               }|j	                  t        d             |j	                  t        d             |j                  t        d             |j                  d      }|j                  dk(  sJ |j                  |dd      }|j                  dk(  sJ |j                  |      }|j                  dk(  sJ d	}d
t        z  }t        |j                  j                  |z
        j                         d|z  k  sJ d}t        |j                  j                   |z
        j                         dk  sJ y )Ng   eBAr   pck00008.tpcr   r   -  L:@gffffffG)gbgoc̾gB\$>g      ?e   )gk;\>g?;¾g1Pgdy=)r   r   r   r   r   r   r   centerbuild_latlon_degreesatr   r   positionaur   velocityau_per_d)r   r.   r    r!   pt	geometricwantr3   s           r)   4test_horizons_position_of_latitude_longitude_on_moonrF      s8    
	B
		)A		BLL&'(LLn%&NN4567  1E<<3		 	 e	4B99aIs"""
 QD$JEy!!$$t+,002S5[@@@PDy!!**T126687BBBr+   c                     t        j                         } | j                  ddd      }t               }|j	                  t        d             |j	                  t        d             |j                  t        d             |j                  d      }|j                  dk(  sJ |j                  |d	d
      }|j                  dk(  sJ t        d      }|d   |z   j                  |      j                  |d         }|j                         \  }}}	d}
d}t        |j                  |
d   z
        d|z  k  sJ t        |j                  |
d   z
        d|z  k  sJ |j                         }|j!                         \  }}}	d}
|j                  |j                  f}t        t#        j$                  |
      |z
        j'                         d|z  k  sJ y )N        r   r8   r   r   r9   r:   33333s@	de421.bspmoonearth)gLa%p@g;6߼xV42?r   gQ?r
   )cZB> E@y&1\@)r   r   utcr   r   r   r   r<   r=   r>   observeradecr   _degreesdegreesapparentaltazr   r   r   )r   r.   r    r!   rC   ephastrometricradecdistancerE   	arcsecondrW   altazpairs                   r)   *test_observing_earth_from_location_on_moonrb      s   		B
tRA		BLL&'(LLn%&NN4567  1E<<3		 	 e	4B99
{
Cv;#''*223w<@K
 $))+BX#DIr{{T!W$%y(8888s{{T!W$%y(8888 ##%H (CXD;;

"Drxx~$%))+b9n<<<r+   c                     t        j                         } | j                  ddddg      }t               }|j	                  t        d             |j	                  t        d             |j                  t        d             |j                  d      }|j                  |d	d
      }t        d      }|d   |z   j                  |      j                  |d         }|j                         }|j                         \  }}	}
d}|j                  |	j                  f}d}t        t        j                  |      |z
        j!                         d|z  k  sJ y )NrH   rI   rJ      r   r8   r   r   r:   rK   rL   rM   rN   ))rP   gfc]^D@)rQ   g镲]@rO   )r   r   rR   r   r   r   r   r=   r>   rS   rW   rX   rV   r   r   r   r   )r   r.   r    r!   rC   rY   rZ   rW   r_   r`   r]   rE   ra   r^   s                 r)   ;test_observing_earth_from_location_on_moon_with_time_vectorre      s#    
	B
tR"b"A		BLL&'(LLn%&NN4567  1E		 	 e	4B
{
Cv;#''*223w<@K##%H (CX3D;;

"DIrxx~$%))+b9n<<<r+   c                  D   t        j                         } | j                  ddd      }t        d      }|d   j                  |      }t	               }|j                  t        d             |j                  t        d             |j                  t        d             |j                  d	      }|j                  |d
dd      }|d   |z   j                  |      }d}t        t        |j                  j                  |j                  j                  z
              |k  sJ y )Ni        rL   rM   r   r8   r   r   r:   rK   iH}r-   )r   r   rR   r>   r   r   r   r   r=   r   r   r?   m)	r   r.   rY   a1r    r!   placea2mms	            r)   -test_using_elevation_to_locate_center_of_moonrn      s     
	B
tQA
{
C	V	B		BLL&'(LLn%&NN4567  1E##E4AE
f+
	!	!!	$B	Bs2;;==2;;==012R777r+   c                  |   t               } | j                  t        d             | j                  t        d             | j	                  d      }| j	                  d      }t        j
                         }|j                  t              }|j                  |      |j                  |      k(  j                         sJ y )Nr   r   r   MOON_PA)
r   r   r   r   r   r   r   r   r   r   )r    f1f2r   r.   s        r)   test_frame_aliasrs     s    		BLL&'(NN4567			o	.B			i	(B		B
		"ANN1!2277999r+   c                      t               } | j                  t        d             	 | j                  d       y # t        $ r}t        |      dk(  sJ Y d }~y d }~ww xY w)Nr   r   zLyou have not yet loaded a binary PCK file that has a segment for frame 31006)r   r   r   r   LookupErrorstr)r    es     r)   test_unloaded_bpcrx     sZ    		BLL&'(

_- 
1v2
 	
 

s   8 	AAA)numpyr   skyfield.apir   r   r   skyfield.constantsr   r   r   skyfield.positionlibr	   fixesr   r*   r6   rF   rb   re   rn   rs   rx    r+   r)   <module>r      sH     5 5 1 1 % n4`N4%CP#=J=48,
:	
r+   