Re: Year 2000 Problem for TLEs??

Jim Varney (
Fri, 22 Aug 1997 23:39:14 -0700

Bruno Tilgner wrote:

>I have looked into the code in the meantime. Bjoern is quite right. The
>SDP4 model needs the absolute date to calculate solar and lunar effects.
>To this end, a variable DS50 (Julian days since 1950.0) is calculated
>in the routine ThetaG.

I'm afraid it's worse than that.  SGP4 is affected by the 'Y2K' bug too.

The offending lines of code are:

epoch    := Real_Value(abuf[1],19,14); {read in the epoch from the TLE}
 julian_epoch := Julian_Date_of_Epoch(epoch);

Function Julian_Date_of_Epoch(epoch : double) : double;
    year,day : double;
  year := 1900 + Int(epoch*1E-3);  <----------------
  day  := Frac(epoch*1E-3)*1E3;
  Julian_Date_of_Epoch := Julian_Date_of_Year(year) + day;
  end; {Function Julian_Date_of_Epoch}

Both SGP4 and SDP4 use the above function to calculate the JD of the elset's
epoch, so both SGP4 and SDP4 will think a 00001.0000 epoch is year 1900, not

Bryan Dort wrote:

>Maybe TLEs could be changed from [T]wo [L]ine [E]lements to [3] [L]ine
>[E]lements (3LE or maybe 4LE) to fit the additional data that everyone
>seems to need:  Century; Std. Mag; Std Freq; Mass; etc.

I think a more elegant solution (at least for the epoch) is to change the
TLE's epoch from the clumsy YYDDD format to astronomical Julian day number.

Jim Varney     121.398 W, 38.458 N, 8m     Sacramento, Calif.