# Re: Year 2000 Problem for TLEs??

Jim Varney (jamesv@softcom.net)
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;
var
year,day : double;
begin
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
2000.

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.