
    R1i                     X    d Z ddlmZ ddlmZ ddlmZ edz  Zddez  z  Zd Z	d	 Z
d
 Zy)zsExport orbit data to a Two-Line-Element representation.

Contributed by Egemen Imre https://github.com/egemenimre

    )pi)compute_checksum)sat_epoch_datetimeg     f@     @g       @c                 <   d| j                   g}|j                  }t        | dd      } ||j                         xs d        |d       t        | dd      } |dj	                  |             | j
                  }|dz  } |t        |      j                  d	      d
j	                  | j                        z   dz           |dj	                  | j                  t        dz  z        j                  ddd      dz           |t        | j                  t        z  dz  d              |t        | j                  dz  d             t        | dd      }t        | dd      } |dj	                  ||             dj                  |      }|t        t!        |            z  }d| j                   g}|j                  }d| j"                  cxk  r	t$        k  sn t'        d| j"                         |dj	                  | j"                  t(        z               d| j*                  cxk  rd	t$        z  k  sn t'        d| j*                         |dj	                  | j*                  t(        z        j-                  dd      dz           |dj	                  | j.                        j                  dd      dz          d| j0                  cxk  rd	t$        z  k  sn t'        d| j0                         |dj	                  | j0                  t(        z        j-                  dd      dz          d| j2                  cxk  rd	t$        z  k  sn t'        d | j2                         |dj	                  | j2                  t(        z        j-                  dd      dz           |d!j	                  | j4                  t        z        j-                  dd              |t        | j6                        j-                  d"             dj                  |      }	|	t        t!        |	            z  }	||	fS )#zBGenerate the TLE for a given `Satrec` object; returns two strings.z1 classificationU intldesg z{0:8} d      z	{:012.8f}z	{0: 8.8f}r   0   g    sAz-0g      $@z+0ephtyper   elnumz	{0} {1:4}z2 z,Inclination must be between 0 and pi, got %rz
 {0:8.4f} z'RAAN must be between 0 and 2 pi, got %rz{0:8.4f}   z{0:8.7f}z0.z6Argument of Perigee must be between 0 and 2 pi, got %rz/Mean Anomaly must be between 0 and 2 pi, got %rz	{0:11.8f}   )
satnum_strappendgetattrstripformatepochyrstrzfill	epochdaysndot_xpdotpreplace_abbreviate_ratenddotbstarjoinr   inclor   
ValueError_deg2radnodeorjusteccoargpomono_kozairevnum)
satrecpiecesr   r   r   r   r   r   line1line2s
             Q/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/sgp4/exporter.py
export_tler4      s    F%%&F]]F V%5s;N
>!(S)
3K vz2.H
8??8$% nnGsNG
3w<a ;#5#5f6F6F#GG#MN ;fkkWv-=>?GGRQRSVYYZ FLL72Z?FG FLL4/67 fi+GFGQ'E
;gu-. GGFOE	S!%())E
 F%%&F]]F ""GVV
<v||h678 &B&BFLLQQ
:V\\H45;;AsCcIJ :V[[)11$;cAB &B&QSYS_S_``
:V\\H45;;AsCcIJ 		#QV#JFIIVV
:VYY1288C@3FG ;foo78>>q#FG 3v}}##A&' GGFOE	S!%())E%<    c                     dj                  |       j                  dd      j                  d|      j                  dd      j                  dd      S )	Nz
{0: 4.4e} .r   ze+00ze-0-ze+0+)r   r    )valuezero_exponent_strings     r3   r!   r!   a   sF    E"	b		-	.				r5   c                    t        | j                  d d       }|d|dk  dz  z   z  }dj                  || j                  dd        }i d|d|dd	d
ddddddt        |       j	                  d      d| j
                  t        z  d| j                  d| j                  t        z  d| j                  t        z  d| j                  t        z  d| j                  t        z  d| j                  d| j                  d| j                  d| j                   | j"                  | j$                  | j&                  t        dz  z  | j(                  t        dz  dz  z  dS )Nr   il  9   r   z{0}-{1}OBJECT_NAME	OBJECT_IDCENTER_NAMEEARTH	REF_FRAMETEMETIME_SYSTEMUTCMEAN_ELEMENT_THEORYSGP4EPOCHz%Y-%m-%dT%H:%M:%S.%fMEAN_MOTIONECCENTRICITYINCLINATIONRA_OF_ASC_NODEARG_OF_PERICENTERMEAN_ANOMALYEPHEMERIS_TYPECLASSIFICATION_TYPENORAD_CAT_IDELEMENT_SET_NOr   i  )REV_AT_EPOCHBSTARMEAN_MOTION_DOTMEAN_MOTION_DDOT)intr   r   r   strftimer-   r   r*   r%   r'   r(   r+   r,   r   r   satnumr   r.   r#   r   r"   )r/   object_namelaunch_year	object_ids       r3   
export_ommr]   j   s   foobq)*K4;+s222K  fooab.ABI{Y 	w 	V	
 	u 	v 	#F+445KL 	v0 	 	v||h. 	&,,1 	V\\H4 			H, 	&.. 	v44  	!" 	&,,#$ !;;'F*:;"LLGf,<t,CD+ r5   N)__doc__mathr   sgp4.ior   sgp4.conveniencesr   r'   r   r4   r!   r]    r5   r3   <module>rc      s?   
  $ 0 :
C"H
Qfr5   