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:
LINE 1:
FIELD COLS 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 -.00002182
10 45-52 Second Time Derivative of Mean Motion (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 COLS 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-68 Revolution number at epoch [Revs] 56353
10 69-69 Checksum (Modulo 10) 7
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 as given in the http://celestrak.com/NORAD/documentation/spacetrk.pdf.
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 shall be given the value read from line 1 cols 54-61 (example: -11606-4 means -0.11606E-4)
XINCL=FINC*6.283185/360. where FINC is the value from line 2 cols 9-16. XINCL has the dimension radians and FINC the dimension degrees.
XNODEO=GOM*6.283185/360. where GOM is the value from line 2 cols 18-25. XNODEO has the dimension radians and GOM the dimension degrees.
EO is the value from line 2 cols 27-33 (example: 0006703 means 0.0006703).
OMEGAO=SOM*6.283185/360. where SOM is the value from line 2 cols 35-42. OMEGAO has the dimension radians and SOM the dimension degrees.
XMO=FMA*6.283185/360. where FMA is the value from line 2 cols 44-51. XMO has the dimension radians and FMA the dimension degrees.
XNO=FMM*6.283185/1440. where FMM is the value from line 2 cols 53-63. XNO has the dimension radians/minute and FMM the dimension revolutions/day.
COMMON/C1/ shall be given fixed constants that do not depend on the TLE:
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.
The position and velocity in km and km/s (relative 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 the time specified on line 1 cols 19-32.
The INTEGER*4 variable IFLAG 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.
For a spacecraft in a typical Low Earth orbit the accuracy that can be obtaine with the SGP4 orbit model is in the order of 1 km.