Jonathan's Space Pages

Historical TLE Orbital Elements - Data Format

XTLE (Extended Two Line Element) Format

The orbital data on this site are provided in a custom format that I call XTLE; it is an extension of the classic TLE (Two Line Element) format in use since the 1960s. TLE was an 80-byte format tailored for use with punch cards. XTLE relaxes this restriction and adds support for addtional metadata and for kinds of orbit than TLE cannot support.

The US astronautical community, and 18SPCS in particular, are evolving their format in a different direction, with the adoption of formats such as JSON that require more complicated parsing libraries. There are good reasons for this, but my own requirements led me to go for a format which I see as a minimal evolution of TLE, and in many cases back compatible with it.

There are two main flavours of XTLE, denoted flavour 1 and flavour 3 or XTLE1 and XTLE3. (Flavour 2 was an intermediate experiment that I used for a while but abandoned). Flavour 1 is used for most data and is largely back compatible with TLE. Flavour 3 is used for orbits whose central body is not Earth or where the eccentricity is greater than 1, or in cases where the catalog number is greater than 99999.

Both XTLE flavours have up to four lines of data, denoted line 0 to line 3.

In particular, a classic TLE is a valid XTLE1.

Cross-Tagging

The TLE archive here keeps all (X)TLEs for a given object in a single text file. Not infrequently, NORAD issued a TLE for one object which really described the orbit of a different object. When I have identified a case like this, I have moved the TLE to the file for the object it really describes, but I have not usually changed the catalog number in the TLE itself, In these cases, the catalog number in the TLE will disagree with the catalog number of the containing file. This allows some traceability - you'll be able to figure out that this was a cross-tagging case.

XTLE1: XTLE Flavour 1

Flavour 1 is used in (almost) all cases where it can accommodate the data being described.

XTLE1 Line 0 format:

(109 bytes, optional)

XTLE1 Line 0 is provided to capture the additonal information in a JSON orbit record from Space-Track that doesn't fit in a regular TLE. It is mainly intended for inspection by the user rather than machine parsing.

Start ByteField widthField ValueComments
1 1 Line ID 0 Always '0'
3 24 Name Satellite name
2812 Piece COSPAR designation
411 OType Object type X for Unknown/TBA, P for Payload, R for Rocket Body, D for Debris
438 Country Country OrgCode Code from Orgs file, e.g. CN, US
528LSite Launch Site Code from Sites file, e.g. CC, V, PL
6112LDate Launch Date UTC Gregorian date, e.g. 2022 Apr 8
7412DDate Decay Date Currently always "-" (null value)
871Status Status 'O' for in orbit, 'R' for reentered; currently always "O" if set
899Perigee Perigee in km SGP4 mean element conventional perigee height
991spacer 'x' 'x' between peri and apo for readability
1019Apogee Apogee in km SGP4 mean element conventional apogee height

Line 0 values are derived from the information in the 18SPCS JSON record, when available.

XTLE1 Line 1 format

69 bytes: (back compatible with classic TLE)

Start ByteField widthField ValueComments
1 1 Line ID 0 Always '1'
2 1 Prefix Catalog prefix 'S' if absent; blank for classic TLE
3 5 Number Catalog Number 00001 to 99999; leading zeros optional
8 1 Classification Secret or not? Always 'U' for unclassified, if present
10 8Piece COSPAR designation Optional. Packed version of Intl. Des. eg 68081J for 1968-081J. Pre 1963 designations converted to 18SPCS modern format if not blank.
1914 EpochPacked Epoch Date Example: 67335.2500 is 1967 Dec 1 0600. Line 3 gives time system, usually UTC
3410 NDOT Mean motion deriv Units: rev per day squared
458 NDOT2 Mean motion 2nd deriv Units: rev per day cubed, packed format
548 BSTAR BStar drag term Packed format like NDOT2
631 EPHTYPEEphemeris Type Usually 0
654 ELNO Element number Integer to ID the element set; may not be unique or reliable
691 PARITY TLE Checksum Checksum modulo 10, with minus signs given value 1 and all other non-digits 0

The GCAT catalog has various subcatalogs each with a different prefix. The S catalog (objects S00001 onwards) contains the same objects (more or less, modulo cross-tagging) as the USSF SATCAT. The A (auxiliary) catalog contains additional objects, some of which may have TLEs; so if bytes 2 to 9 of line 1 are 'A00035', the TLE refers to auxiliary catalog object A00035. This is the only respect in which my line 1 format may cause problems for parsers of standard TLEs.

The NDOT2 value has the form SME: sign character S = (+ or -), M (mantissa, 5 digits), E (exponent, sign and 1 digit), to be expanded as S x 0.M x 10**E. Example: +65942-4 maps to +0.65942E-4 = 0.00065942. The BSTAR value is formatted in the same way.

The ephemeris type was originally intended to encode whether Kozai or Brouwer mean motions were being used; however TLEs dating from 1962-1964 used Brouwer values without changing the ephemeris type value of 0. I am not aware of any valid TLEs in the SPCS archive with nonzero values of this parameter. I have manually edited the 1962-1964 TLEs that appear to use Brouwer mean motions, setting their ephemeris type to 2. (I recognized these TLEs on the assumption that the satellites involved had not suddenly jumped to a higher orbit for those epochs). My orbit software then does the right thing when it spots this value; I don't know if anyone else's software does.

The parity value may not be correct for TLEs whose origin is not NOR/SPTR. (In particular, I don't always correct it when I manually edit TLEs, origin = JCM).

XTLE1 Line 2 format:

69 bytes: (back compatible with classic TLE)

Start ByteField widthField ValueComments
1 1 Line ID 0 Always '2'
2 1 Prefix Catalog prefix 'S' if absent; blank for classic TLE
3 5 Number Catalog Number 00001 to 99999; leading zeros optional
9 8 Inc Inclination, deg Equator of frame, usually TEME equator of epoch
188 Node RA of asc node, degIn Frame, usually TEME coord system
277 Ecc Eccentricity Mantissa; prepend '0.' to determine value
358 AOP Argument of perigee, deg Measured from node to perigee
448 MeanAnom Mean anomaly, deg Measured from perigee
5311 N Mean motion, revs per day
645 RevNo Revolution number Not reliable
691 Parity TLE ChecksumSee line 1 description

The eccentricity must be in the range [0,1) and is formatted so that '0.5823981' is represented as '5823981', with the leading '0.' omitted.

For XTLE1 data the central body must be Earth.

XTLE1 cannot represent catalog numbers of 100000 or greater.

XTLE1 Line 3 format

110 bytes; optional.

Line 3 is optional to allow back compatibility with classic TLE; however its presence is encouraged. Default values are provided in the table and these should be assumed to hold if line 3 is absent; the default flavour is 1.

Start ByteField widthField ValueComments
1 1 Line ID 3 Always '3'
2 1 Prefix Catalog prefix 'S' if absent; blank for classic TLE
3 9 Number Catalog Number Leading zeros optional; 5 or 9 digits
13 1 Flavour 1 or 3 Always '1' for XTLE1, '3' for XTLE3
15 6 ORIGIN Elset creator See notes
22 2 Problem Problem type Error code; See notes
25 4 Eltype Element model Default SGP4; can be OSC (Osculating)
30 4 Frame Coordinate systemDefault TEME; sometimes ICRS or EC
35 4 TSYS Time systemDefault UTC; sometimes TDB
40 30 Primary Central body Name of central body, default Earth
71 40 Source Source filename Note to myself on filename or other source of raw data

The ORIGIN values encode who originally made the TLE, and include among others:

ORIGIN value Meaning Elset creator
NOR NORAD NORAD and its successors up to 2004, prior to the redistribution restrictions
SPTR SpaceTrack 18SPCS and its predecessors from 2005 onwards, via Space-Track.org, under Form 1 redistribution restrictions
UNK Unknown Source other than NORAD, unknown or too lazy to fill it in
JCM Jonathan McDowell TLEs I made up myself, sometimes actually based on evidence of some kind
CSS Canadian Space Soc. Hobbyist-created TLEs based on hobbyist observations; Molzcan, McCants, others; not necessarily actually from Canadian Space Soc, they were just the pioneers.
HOR Horizons JPL HORIZONS
TSK T.S. Kelso Celestrak Supplemental TLEs
PLU Project Pluto Bill Gray
DASO Distant Artifical Satellites list G. Williams, IAU MPC

The PROBLEM values encode flags to warn you that the TLE set may be bogus or doubtful. There are also I and O flags, but so far I haven't used them much.
PROBLEM value CodeMeaning
I INITIAL Not a problem; flag to identify preferred TLE to use as initial orbit
O OPERATIONAL Not a problem; flag to identify preferred TLE to use as operational orbit
N NULLOrbit is null
S SHAPEOrbit is based on shape (apo x peri); Node/AOP/MA values not valid
G GUESS Orbit is a (possibly wild) guess and not based on observation
E ERROROrbit is wrong in some way
EMMISID Orbit is cross-tagged with some other object
EWWRONG Just plain wrong
EIINACCURATEOrbit is valid but inaccurate
EDDOUBTFULI am skeptical of the validity
EPPREDICTED Orbit is predicted rather than observed
ECCORRUPTED TLEs are corrupted in some way

The central body names are provided in the Worlds table of the General Catalog of Artificial Space Objects, and corresponds to assumed masses in that table.

XTLE3: XTLE Flavour 3

Flavour 3 is used whenever Flavour 1 cannot; notably for 9-digit catalog numbers, hyperbolic orbits, and orbits whose central body is not Earth.

XTLE3 Line 1

The layout of XTLE3 Line 1 is similar to classic TLE, except that an extra 4 bytes are provided for the catalog number, and the rest of the line is shifted correspondingly rightward. Also, 2 extra bytes are provided for the element number.

Start ByteField widthField ValueComments
1 1 Line ID 0 Always '1'
2 1 Prefix Catalog prefix 'S' if absent; blank for classic TLE
3 9 Number Catalog Number 000000001 to 999999999; leading zeros optional
12 1 Classification Secret or not? Always 'U' for unclassified, if present
14 8Piece COSPAR designation Optional. Packed version of Intl. Des. eg 68081J for 1968-081J. Pre 1963 designations converted to 18SPCS modern format if not blank.
2314 EpochPacked Epoch Date Example: 67335.2500 is 1967 Dec 1 0600 UTC
3810 NDOT Mean motion deriv Units: rev per day squared
498 NDOT2 Mean motion 2nd deriv Units: rev per day cubed, packed format
588 BSTAR BStar drag term Packed format like NDOT2
671 EPHTYPEEphemeris Type Usually 0
696 ELNO Element number Integer to ID the element set; may not be unique or reliable
751 PARITY TLE Checksum Checksum modulo 10, with minus signs given value 1 and all other non-digits 0

XTLE3 Line 2

The layout of XTLE3 Line 2 is generally similar to classic TLE, except that an extra 4 bytes are provided for the catalog number, and the rest of the line is shifted correspondingly rightward. Also, extra width is provided for several of the fields: the eccentricity is given with explicit decimal point and may be larger than 1; to support hyperbolic orbits, the mean anomaly can be in the range -9999 to +9999. The mean motion can be in exponential format (e.g. 9.9E7).

Start ByteField widthField ValueComments
1 1 Line ID 0 Always '2'
2 1 Prefix Catalog prefix 'S' if absent; blank for classic TLE
3 9 Number Catalog Number 00001 to 99999; leading zeros optional
13 8 Inc Inclination, deg Equator of epoch
228 Node RA of asc node, degTEME coord system
3111 Ecc Eccentricity Value 0 to 999; note that "0." is explicit.
438 AOP Argument of perigee, deg Measured from node to perigee
5210 MeanAnom Mean anomaly, deg Measured from perigee. Value -9999 to +9999.
6320 N Mean motion, revs per day
846 RevNo Revolution number Not reliable
851 Parity TLE ChecksumSee line 1 description