Ted Molczan, 23 September 1996; modified by Bill Gray, 2016 August 28
Orbital elements for earth-orbiting objects are often given in the "two-line element" format. It's been a common data exchange format for decades; most artsat software (including some on this site) can make use of it.
Places to get TLEs
C/C++ code for using TLEs
The Wikipaedia page on TLEs and this CelesTrak column also give a lot of details on the TLE format.
Despite the name, there are (usually) three lines of data for each object. The first, or "zeroth", line contains the name and certain physical data. (Elements with this extra line are sometimes called "3LEs".) The second and third give the orbital elements, in the standard NORAD "2-line" format.
Note that many TLEs have either no line 0, or a line 0 that gives only the object name. Some, however, give the name, dimensions and estimated standard magnitude, in the following format:
Example: ALOUETTE 1 0.9 1.1 0.0 8.2 d Column 01-15 Name 17-20 Length, m (1) 22-25 Width, m (2) 27-30 Depth, m 31-35 Standard magnitude (at 1000 km range, and 50 % illuminated) (3) 37-37 Standard magnitude source flag. (1) If width and depth are zero, then the object is a sphere, and the length is its diameter. Objects with unknown dimensions have been assumed to be spherical, and a value of diameter has been "guesstimated". (2) If depth is zero, then the object is a cylinder, and width is its diameter. (3) The standard magnitude may be an estimate based on the mean cross- sectional area derived from its dimensions, or it may be a mean value derived from visual observations. The former are denoted by a letter "d" in column 37; the latter by a "v". To estimate the magnitude at other ranges and illuminations, use the following formula: mag = stdmag - 15.75 + 2.5 * log10 (range * range / fracil) where : stdmag = standard magnitude as defined above range = distance from observer to satellite, km fracil = fraction of satellite illuminated, [ 0 <= fracil <= 1 ] Note that this assumes a sphere whose brightness depends solely on the illuminated fraction. That is, at a 90-degree elongation where half of it is lit, it'll be half as bright as it would be at opposition. Real artsats, with a variety of shapes and reflectances, will do something different. In general, they'll usually be fainter at small elongations than the above formula would indicate. But you rarely really know what to expect.
Example : 1 NoradU COSPAR Epoch.epoch dn/dt/2 d2n/dt2/6 BSTAR T El# C 1 00424U 62B-A 1 90 25.21309753 .00000220 00000-0 25410-3 0 2561 Column 01-01 Line number 1 of NORAD elements 03-07 NORAD number 08-08 Classification. I have never seen TLEs for which this byte was anything but 'U' ('unclassified'). This is true even of TLEs generated by amateurs which presumably fall outside such designations. I assume, though, that there are 'C' ('classified') and other values this byte can take. So don't assume it'll always be 'U'. 10-11 International designation - year of launch. For this and the epoch year, it should be safe to assume that year 57 and up are for the 1900s, and those up to 56 are for the current century. Eventually, we'll have to deal with the Y2057 problem. 12-14 International designation - number of launch since start of year 15-17 International designation - code for specific piece from launch 19-20 Epoch - year. 21-32 Epoch - day of the year and fraction, UTC 34-43 One half of first derivative of mean motion with respect to time, rev/day**2. Note that this value and the following second derivative value were used in the original SGP model (preceding SGP4/SDP4). I don't think actual TLEs using them have been published in decades. 45-52 One sixth of second derivative of mean motion with respect to time, rev/day**3 (leading decimal point assumed, not shown) 54-61 BSTAR drag term used by SGP4/SDP4 (leading decimal point not shown) 63-63 Ephemeris type. This is almost always either blank or 0, meaning that SGP4 is used if the orbital period is less than 225 minutes and SDP4 should be used for higher orbits. But one can specify a particular ephemeris here: 1=SGP, 2=SGP4, 3=SDP4, 4=SDP8, 5=SDP8. Don't assume it will be zero or blank. 65-68 Bulletin number. In theory, you could use this to compare two TLEs for an object to figure out which is more recent. In practice, there are problems with doing so*. 69-69 Modulo 10 checksum. Letters, blanks, periods = 0, minus sign = 1, plus sign = 2.
Example : 2 NoradU Inclina RAAscNode Eccent ArgPeri MeanAno MeanMotion Rev# C 2 00424 80.4628 67.0294 0022286 281.5113 78.3546 13.67284761363155 Column 01-01 Line number 2 of NORAD elements 03-07 NORAD number 09-16 Inclination, degrees 18-25 Right ascension of the ascending node, degrees 27-33 Eccentricity (leading decimal point not shown) 35-42 Argument of perigee, degrees 44-51 Mean anomaly, degrees 53-63 Mean motion, rev/day 64-68 Revolution number 69-69 Modulo 10 checksum. Same rules as for line1.
• Not everybody puts their TLEs together in the same manner. You may find leading zeroes on some fields, or not. A positive BSTAR or motion derivative may be prefaced with a '+', or that may be left implicit. Sometime between mid-2014 and late 2016, JSpOC set the 'bulletin number' to 999 for all TLEs. (Note, though, that the bulletin number could theoretically go as high as 9999.) For TLEs made by me for certain high-flying artsats, the bulletin number is the date, in number of days since 2018 Jan 0, on which the TLEs were computed. (Which, in late 2020, will be greater than 999. But it won't pass 9999 until May 2045; at that point, I'll have to figure something else out. I'll be 80 by then, though, and perhaps will have turned the problem over to somebody else.)
• The ephemeris type is either blank or 0 for every TLE I've seen... except for certain elements for high-altitude artsats generated by me. These are for high orbits that can't be fitted to SDP4; they have a '2' ephemeris type, meaning that SGP4 is used even though their orbital period is greater than 225 minutes. I do this only because I've found that for some artsats, mostly with periods of about six days or more and with eccentric orbits, it's impossible to fit an SDP4 orbit to an ephemeris with decent accuracy. (Impossible for me, at any rate.)
I'm told that the ephemeris type may be set to values other than blank or 0 for internal processing in some organizations. So don't ignore the ephemeris type, and don't assume that it will always be zero or blank.
Most of the elements in the N2L-XXX.ZIP files originate with NORAD, and are distributed by NASA. I [Ted Molczan] receive them from several sources, in hard- copy and electronic form. These sources are usually accurate, however, they do not all include each of the original NORAD data. For example, some sources omit the second time derivative of the mean motion, BSTAR, bulletin number and revolution number. Except for BSTAR, these are not serious omissions. To ensure compatibility with SGP4 users, missing BSTAR data has been estimated based on the mean motion, XN0 and the first time derivative of the mean motion, XNDT20, using the following formula :
BSTAR = XNDT20 / XN0 / C2 / 1.5 where : XN0 and XNDT20 have been converted to units of radians and minutes, as in SGP and SGP4 C2 = value computed during SGP4 initialization.
Values of BSTAR obtained in this way are usually within about 3% of the original NORAD value.
The orbital decay terms produced by NORAD (and others) are often very inaccurate. In most cases, it is possible to make more accurate predictions by using average values. Most of the elements in the N2L-XXX.ZIP files have mean values for the first time derivative of the mean motion and BSTAR. The exceptions are satellites near decay, satellites which make large manouevers, or those that are greatly affected by solar radiation pressure, which can more than offset drag.
The average drag terms are obtained as follows. Using two elsets separated in epoch by about 7-10 days, the average value of the first time derivative of the mean motion is computed:
mean motion 2 - mean motion 1 average XNDT20 = ----------------------------- 2 X (epoch2 - epoch1)
with mean motion in degrees/day and the difference in epochs given in minutes. Then BSTAR is computed using the formula presented earlier.
Ted Molczan áç.ñtsn.xöf@nåzclôm (remove cedillas, tildes, etc.)
There are three main sources for TLEs that may be of interest.
The vast majority of publicly-available TLEs are distributed via Space-track.org. The data are freely available, but one is asked to agree not to transfer any data or analysis of data without approval. That can be a problem for some (including me [Bill Gray]; I'm often asked, for example, if I can identify an object someone has observed, and I even provide an on-line service for identifying satellites for astrometry. It is possible I'd actually be OK. But I don't want to take the risk of ending up in a small cell at Guantanamo. So I've never signed up for Space-Track.org.)
Fortunately, you can click here for the Space-Track.org TLEs, without a user agreement. They are updated daily, and the 'ALL_TLE.TXT' file covers over 15000 objects: active payloads, deceased objects, and junk.
The above are objects tracked by the US Government, and therefore doesn't include "classified" objects. (Anything the US doesn't want you or others to know about, and anything they don't want others to know that the US Government knows about.) Many of these "secret" objects are covered in elements in the 'classified' file on Mike McCants' page. These are objects tracked mostly by amateurs, who then compute their own TLEs from the observations. They track about 400 objects. (Some have not been observed lately, and the TLEs therefore probably have large errors.)
The third source for TLEs comes from TLEs for high-flying satellites. These are TLEs computed by me [still Bill Gray], for objects found by people looking for near-earth asteroids. (The faster-moving asteroids are moving at roughly the same rate as the higher, slower-moving artificial satellites; if you're looking for NEAs, you'll have some artsats as unwanted "bycatch".)
For various reasons, the TLEs are organized by object; one file might give you, say, 365 TLEs covering one year for one object. You can click here to get TLEs for high-fliers for a specified date.