Description of TLE (Two-line Element) data

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.

Line 0

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.

Line 1

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.  For publicly distributed TLEs,  this is almost
       always 'U' ('unclassified'),  but this is not guaranteed.
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.

Line 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.

Comments on Format

• 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, we'll have to figure something else out.)

• The classification is 'U' for publicly released elements from JSpOC, but I assume there are other classifications used within the US Government, and other producers of TLEs might use other classifications (I've considered, but not used yet, 'P' for 'preliminary', for example.)

• 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. Furthermore, the ephemeris type may be set to other values for internal processing. So don't ignore the ephemeris type, and don't assume that it will always be zero or blank.

Comments on Accuracy

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.)

Places to get TLEs

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. So I've been unable to sign up for Space-Track.org.)

Fortunately, you can click here for the Space-Track.org TLEs. 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. Many of those 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".)