| This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (November 2008) |
A Two-Line Element set (TLE) is a set of orbital elements that describe the orbit of an earth satellite. A computer program called a model can use the TLE to compute the precise position of a satellite at a particular time. The TLE is in a format specified by NORAD and used by NORAD and NASA. The TLE can be used directly by the SGP4 model (or one of the SGP8, SDP4, SDP8 models). Orbital elements are determined for many thousands of space objects by NORAD and are freely distributed on the Internet in the form of TLEs.[1] A TLE consists of a title line followed by two lines of formatted text.
Contents |
Format
The following is an example of a TLE (for the International Space Station)
ISS (ZARYA) 1 25544U 98067A 08264.51782528 -.00002182 00000-0 -11606-4 0 2927 2 25544 51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537
The meaning of this data is as follows:
- Title line
| Field | Columns | Content | Example |
|---|---|---|---|
| 1 | 01-24 | Satellite name | ISS (ZARYA) |
- LINE 1
| Field | Columns | Content | Example |
|---|---|---|---|
| 1 | 01-01 | Line number | 1 |
| 2 | 03-07 | Satellite number | 25544 |
| 3 | 08-08 | Classification (U=Unclassified) | U |
| 4 | 10-11 | International Designator (Last two digits of launch year) | 98 |
| 5 | 12-14 | International Designator (Launch number of the year) | 067 |
| 6 | 15-17 | International Designator (Piece of the launch) | A |
| 7 | 19-20 | Epoch Year (Last two digits of year) | 08 |
| 8 | 21-32 | Epoch (Day of the year and fractional portion of the day) | 264.51782528 |
| 9 | 34-43 | First Time Derivative of the Mean Motion divided by two | -.00002182 |
| 10 | 45-52 | Second Time Derivative of Mean Motion divided by six (decimal point assumed) | 00000-0 |
| 11 | 54-61 | BSTAR drag term (decimal point assumed) | -11606-4 |
| 12 | 63-63 | The number 0 (Originally this should have been "Ephemeris type") | 0 |
| 13 | 65-68 | Element number | 292 |
| 14 | 69-69 | Checksum (Modulo 10) | 7 |
- LINE 2
| Field | Columns | Content | Example |
|---|---|---|---|
| 1 | 01-01 | Line number | 2 |
| 2 | 03-07 | Satellite number | 25544 |
| 3 | 09-16 | Inclination [Degrees] | 51.6416 |
| 4 | 18-25 | Right Ascension of the Ascending Node [Degrees] | 247.4627 |
| 5 | 27-33 | Eccentricity (decimal point assumed) | 0006703 |
| 6 | 35-42 | Argument of Perigee [Degrees] | 130.5360 |
| 7 | 44-51 | Mean Anomaly [Degrees] | 325.0288 |
| 8 | 53-63 | Mean Motion [Revs per day] | 15.72125391 |
| 9 | 64-69 | Revolution number at epoch [Revs] | 563537 |
Usage
The "First Time Derivative of the Mean Motion" and the "Second Time Derivative of Mean Motion" are not used for the SGP4 model.
The parameters "Inclination", "Right Ascension of the Ascending Node", "Eccentricity", "Argument of Perigee" and "Mean Anomaly" are not osculating Kepler elements but a special case of "mean elements" to be used with the SGP4 model.[2]
The original FORTRAN code for the SGP4 algorithm is as follows:
SUBROUTINE SGP4(IFLAG,TSINCE)
COMMON/E1/XMO,XNODEO,OMEGAO,EO,XINCL,XNO,
1 BSTAR,X,Y,Z,XDOT,YDOT,ZDOT
COMMON/C1/CK2,CK4,E6A,QOMS2T,S,TOTHRD,XJ3,XKE,XKMPER,AE
C
C THE FOLLOWING SAVE STATEMENTS ADDED TO THE ORIGINAL CODE
C SOME FORTRAN SYSTEM DO NOT KEEP THE VALUES OTHERWISE!
C
SAVE COSIO,X3THM1,XNODP,AODP,ISIMP,ETA,C1,SINIO,X1MTH2,C4,C5
SAVE XMDOT,OMGDOT,XNODOT,OMGCOF,XMCOF,XNODCF,T2COF,XLCOF,AYCOF
SAVE DELMO,SINMO,X7THM1,D2,D3,D4,T3COF,T4COF,T5COF
IF (IFLAG .EQ. 0) GO TO 100
C RECOVER ORIGINAL MEAN MOTION (XNODP) AND SEMIMAJOR AXIS (AODP)
C FROM INPUT ELEMENTS
A1=(XKE/XNO)**TOTHRD
COSIO=COS(XINCL)
THETA2=COSIO*COSIO
X3THM1=3.*THETA2-1.
EOSQ=EO*EO
BETAO2=1.-EOSQ
BETAO=SQRT(BETAO2)
DEL1=1.5*CK2*X3THM1/(A1*A1*BETAO*BETAO2)
AO=A1*(1.-DEL1*(.5*TOTHRD+DEL1*(1.+134./81.*DEL1)))
DELO=1.5*CK2*X3THM1/(AO*AO*BETAO*BETAO2)
XNODP=XNO/(1.+DELO)
AODP=AO/(1.-DELO)
C INITIALIZATION
C FOR PERIGEE LESS THAN 220 KILOMETERS, THE ISIMP FLAG IS SET AND
C THE EQUATIONS ARE TRUNCATED TO LINEAR VARIATION IN SQRT A AND
C QUADRATIC VARIATION IN MEAN ANOMALY. ALSO, THE C3 TERM, THE
C DELTA OMEGA TERM, AND THE DELTA M TERM ARE DROPPED.
ISIMP=0
IF((AODP*(1.-EO)/AE) .LT. (220./XKMPER+AE)) ISIMP=1
C FOR PERIGEE BELOW 156 KM, THE VALUES OF
C S AND QOMS2T ARE ALTERED
S4=S
QOMS24=QOMS2T
PERIGE=(AODP*(1.-EO)-AE)*XKMPER
IF(PERIGE .GE. 156.) GO TO 10
S4=PERIGE-78.
IF(PERIGE .GT. 98.) GO TO 9
S4=20.
9 QOMS24=((120.-S4)*AE/XKMPER)**4
S4=S4/XKMPER+AE
10 PINVSQ=1./(AODP*AODP*BETAO2*BETAO2)
TSI=1./(AODP-S4)
ETA=AODP*EO*TSI
ETASQ=ETA*ETA
EETA=EO*ETA
PSISQ=ABS(1.-ETASQ)
COEF=QOMS24*TSI**4
COEF1=COEF/PSISQ**3.5
C2=COEF1*XNODP*(AODP*(1.+1.5*ETASQ+EETA*(4.+ETASQ))+.75*
1 CK2*TSI/PSISQ*X3THM1*(8.+3.*ETASQ*(8.+ETASQ)))
C1=BSTAR*C2
SINIO=SIN(XINCL)
A3OVK2=-XJ3/CK2*AE**3
C3=COEF*TSI*A3OVK2*XNODP*AE*SINIO/EO
X1MTH2=1.-THETA2
C4=2.*XNODP*COEF1*AODP*BETAO2*(ETA*
1 (2.+.5*ETASQ)+EO*(.5+2.*ETASQ)-2.*CK2*TSI/
2 (AODP*PSISQ)*(-3.*X3THM1*(1.-2.*EETA+ETASQ*
3 (1.5-.5*EETA))+.75*X1MTH2*(2.*ETASQ-EETA*
4 (1.+ETASQ))*COS(2.*OMEGAO)))
C5=2.*COEF1*AODP*BETAO2*(1.+2.75*(ETASQ+EETA)+EETA*ETASQ)
THETA4=THETA2*THETA2
TEMP1=3.*CK2*PINVSQ*XNODP
TEMP2=TEMP1*CK2*PINVSQ
TEMP3=1.25*CK4*PINVSQ*PINVSQ*XNODP
XMDOT=XNODP+.5*TEMP1*BETAO*X3THM1+.0625*TEMP2*BETAO*
1 (13.-78.*THETA2+137.*THETA4)
X1M5TH=1.-5.*THETA2
OMGDOT=-.5*TEMP1*X1M5TH+.0625*TEMP2*(7.-114.*THETA2+
1 395.*THETA4)+TEMP3*(3.-36.*THETA2+49.*THETA4)
XHDOT1=-TEMP1*COSIO
XNODOT=XHDOT1+(.5*TEMP2*(4.-19.*THETA2)+2.*TEMP3*(3.-
1 7.*THETA2))*COSIO
OMGCOF=BSTAR*C3*COS(OMEGAO)
XMCOF=-TOTHRD*COEF*BSTAR*AE/EETA
XNODCF=3.5*BETAO2*XHDOT1*C1
T2COF=1.5*C1
XLCOF=.125*A3OVK2*SINIO*(3.+5.*COSIO)/(1.+COSIO)
AYCOF=.25*A3OVK2*SINIO
DELMO=(1.+ETA*COS(XMO))**3
SINMO=SIN(XMO)
X7THM1=7.*THETA2-1.
IF(ISIMP .EQ. 1) GO TO 90
C1SQ=C1*C1
D2=4.*AODP*TSI*C1SQ
TEMP=D2*TSI*C1/3.
D3=(17.*AODP+S4)*TEMP
D4=.5*TEMP*AODP*TSI*(221.*AODP+31.*S4)*C1
T3COF=D2+2.*C1SQ
T4COF=.25*(3.*D3+C1*(12.*D2+10.*C1SQ))
T5COF=.2*(3.*D4+12.*C1*D3+6.*D2*D2+15.*C1SQ*(
1 2.*D2+C1SQ))
90 IFLAG=0
C UPDATE FOR SECULAR GRAVITY AND ATMOSPHERIC DRAG
100 XMDF=XMO+XMDOT*TSINCE
OMGADF=OMEGAO+OMGDOT*TSINCE
XNODDF=XNODEO+XNODOT*TSINCE
OMEGA=OMGADF
XMP=XMDF
TSQ=TSINCE*TSINCE
XNODE=XNODDF+XNODCF*TSQ
TEMPA=1.-C1*TSINCE
TEMPE=BSTAR*C4*TSINCE
TEMPL=T2COF*TSQ
IF(ISIMP .EQ. 1) GO TO 110
DELOMG=OMGCOF*TSINCE
DELM=XMCOF*((1.+ETA*COS(XMDF))**3-DELMO)
TEMP=DELOMG+DELM
XMP=XMDF+TEMP
OMEGA=OMGADF-TEMP
TCUBE=TSQ*TSINCE
TFOUR=TSINCE*TCUBE
TEMPA=TEMPA-D2*TSQ-D3*TCUBE-D4*TFOUR
TEMPE=TEMPE+BSTAR*C5*(SIN(XMP)-SINMO)
TEMPL=TEMPL+T3COF*TCUBE+
1 TFOUR*(T4COF+TSINCE*T5COF)
110 A=AODP*TEMPA**2
E=EO-TEMPE
XL=XMP+OMEGA+XNODE+XNODP*TEMPL
BETA=SQRT(1.-E*E)
XN=XKE/A**1.5
C LONG PERIOD PERIODICS
AXN=E*COS(OMEGA)
TEMP=1./(A*BETA*BETA)
XLL=TEMP*XLCOF*AXN
AYNL=TEMP*AYCOF
XLT=XL+XLL
AYN=E*SIN(OMEGA)+AYNL
C SOLVE KEPLERS EQUATION
CAPU=FMOD2P(XLT-XNODE)
TEMP2=CAPU
DO 130 I=1,10
SINEPW=SIN(TEMP2)
COSEPW=COS(TEMP2)
TEMP3=AXN*SINEPW
TEMP4=AYN*COSEPW
TEMP5=AXN*COSEPW
TEMP6=AYN*SINEPW
EPW=(CAPU-TEMP4+TEMP3-TEMP2)/(1.-TEMP5-TEMP6)+TEMP2
IF(ABS(EPW-TEMP2) .LE. E6A) GO TO 140
130 TEMP2=EPW
C SHORT PERIOD PRELIMINARY QUANTITIES
140 ECOSE=TEMP5+TEMP6
ESINE=TEMP3-TEMP4
ELSQ=AXN*AXN+AYN*AYN
TEMP=1.-ELSQ
PL=A*TEMP
R=A*(1.-ECOSE)
TEMP1=1./R
RDOT=XKE*SQRT(A)*ESINE*TEMP1
RFDOT=XKE*SQRT(PL)*TEMP1
TEMP2=A*TEMP1
BETAL=SQRT(TEMP)
TEMP3=1./(1.+BETAL)
COSU=TEMP2*(COSEPW-AXN+AYN*ESINE*TEMP3)
SINU=TEMP2*(SINEPW-AYN-AXN*ESINE*TEMP3)
U=ACTAN(SINU,COSU)
SIN2U=2.*SINU*COSU
COS2U=2.*COSU*COSU-1.
TEMP=1./PL
TEMP1=CK2*TEMP
TEMP2=TEMP1*TEMP
C UPDATE FOR SHORT PERIODICS
RK=R*(1.-1.5*TEMP2*BETAL*X3THM1)+.5*TEMP1*X1MTH2*COS2U
UK=U-.25*TEMP2*X7THM1*SIN2U
XNODEK=XNODE+1.5*TEMP2*COSIO*SIN2U
XINCK=XINCL+1.5*TEMP2*COSIO*SINIO*COS2U
RDOTK=RDOT-XN*TEMP1*X1MTH2*SIN2U
RFDOTK=RFDOT+XN*TEMP1*(X1MTH2*COS2U+1.5*X3THM1)
C ORIENTATION VECTORS
SINUK=SIN(UK)
COSUK=COS(UK)
SINIK=SIN(XINCK)
COSIK=COS(XINCK)
SINNOK=SIN(XNODEK)
COSNOK=COS(XNODEK)
XMX=-SINNOK*COSIK
XMY=COSNOK*COSIK
UX=XMX*SINUK+COSNOK*COSUK
UY=XMY*SINUK+SINNOK*COSUK
UZ=SINIK*SINUK
VX=XMX*COSUK-COSNOK*SINUK
VY=XMY*COSUK-SINNOK*SINUK
VZ=SINIK*COSUK
C POSITION AND VELOCITY
X=RK*UX
Y=RK*UY
Z=RK*UZ
XDOT=RDOTK*UX+RFDOTK*VX
YDOT=RDOTK*UY+RFDOTK*VY
ZDOT=RDOTK*UZ+RFDOTK*VZ
RETURN
END
FUNCTION ACTAN(X,Y)
ACTAN=ATAN2(X,Y)
IF (ACTAN. LT. 0. ) ACTAN=ACTAN + 6.283185
RETURN
END
FUNCTION FMOD2P(X)
FMOD2P=AMOD(X,6.283185)
IF (FMOD2P. LT. 0. ) FMOD2P=FMOD2P + 6.283185
RETURN
END
Using this original code for the SGP4 algorithm the variables in COMMON/E1/ shall be given the following values:
BSTAR is the drag term value from line 1 cols 54-61 (example: -11606-4 means -0.11606E-4)
XINCL is the inclination in radians, computed by multiplying π/180 by the inclination in degrees from line 2 cols 9-16.
XNODEO is the right ascension of the ascending node (RAAN) in radians. It is computed by multiplying π/180 by the RAAN in degrees from line 2 cols 18-25.
EO is the (dimensionless) eccentricity from line 2 cols 27-33 (example: 0006703 means 0.0006703).
OMEGAO is the argument of perigee in radians, computed by multiplying π/180 by the value in degrees in line 2 cols 35-42.
XMO is the mean anomaly at epoch in radians, computed by multiplying π/180 by the mean anomaly in degrees in line 2 cols 44-51.
XNO is the mean motion in radians/minute, computed by multiplying π/720 by the mean motion in revolutions/day from line 2 cols 53-63.
COMMON/C1/ contains the following fixed constants:
CK2 = 5.413080E-4
CK4 = 0.62098875E-6
E6A = 1E-6
QOMS2T = 1.88027916E-9
S = 1.01222928
TOTHRD = 2./3.
XJ3 = -0.253881E-5
XKE = 0.743669161E-1 []
XKMPER = 6378.135
AE = 1.
XKE is the angular velocity in radians/minute of a hypothetical satellite with a semimajor axis of 1 earth equatorial radius (a "surface skimming" satellite).
XKMPER is the earth's equatorial radius in km from WGS-72.
The position and velocity in km and km/s (in the "True of Date" coordinate system) at a certain time are obtained from the parameters X,Y,Z,XDOT,YDOT,ZDOT of COMMON/E1/ as
XKMPER*X
XKMPER*Y
XKMPER*Z
XKMPER*XDOT/60.
XKMPER*YDOT/60.
XKMPER*ZDOT/60.
after having made a call
CALL SGP4(IFLAG,TSINCE)
where TSINCE is a REAL*4 variable giving the time in minutes relative to the epoch time specified on line 1 cols 19-32.
The INTEGER*4 variable IFLAG initializes the model for a new set of elements. It shall have another value then 0 for the first call of SGP4 and will be 0 after the call. For subsequent calls with unchanged values for XMO,XNODEO,OMEGAO,EO,XINCL,XNO,BSTAR (i.e no new TLE having been read) the variable IFLAG can be kept 0 resulting in a faster execution.
SGP4 accuracy
For a spacecraft in a typical Low Earth orbit the accuracy that can be obtained with the SGP4 orbit model is in the order of 1 km.
References
- ^ Celestrak (http://celestrak.com/)
- ^ Spacetrack documentation
|
|||||||||||||||||||||||||||||||||||||||||
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)




