I/O
TLE
The TLE representation is a de-facto standard for orbit description.
Module for handling TLE reading and writing
ISS (ZARYA)
1 25544U 98067A 08264.51782528 -.00002182 00000-0 -11606-4 0 2927
2 25544 51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537
First Line
1 01–01 Line number 1
2 03–07 Satellite number 25544
3 08–08 Classification (U=Unclassified) U
4 10–11 International Designator (Last two digits of launch year) 98
5 12–14 International Designator (Launch number of the year) 067
6 15–17 International Designator (piece of the launch) A
7 19–20 Epoch Year (last two digits of year) 08
8 21–32 Epoch (day of the year and fractional portion of the day) 264.51782528
9 34–43 First Time Derivative of the Mean Motion divided by two [10] −.00002182
10 45–52 Second Time Derivative of Mean Motion divided by six (decimal point assumed) 00000-0
11 54–61 BSTAR drag term (decimal point assumed) [10] -11606-4
12 63–63 The number 0 (originally this should have been "Ephemeris type") 0
13 65–68 Element set number. Incremented when a new TLE is generated for this object.[10] 292
14 69–69 Checksum (modulo 10) 7
Second Line
1 01–01 Line number 2
2 03–07 Satellite number 25544
3 09–16 Inclination (degrees) 51.6416
4 18–25 Right ascension of the ascending node (degrees) 247.4627
5 27–33 Eccentricity (decimal point assumed) 0006703
6 35–42 Argument of perigee (degrees) 130.5360
7 44–51 Mean Anomaly (degrees) 325.0288
8 53–63 Mean Motion (revolutions per day) 15.72125391
9 64–68 Revolution number at epoch (revolutions) 56353
10 69–69 Checksum (modulo 10) 7
- class beyond.io.tle.Tle(text, **kwargs)
Bases:
object
TLE parsing
- classmethod from_orbit(orbit, name=None, norad_id=None, cospar_id=None)
Convert an orbit to it’s TLE representation
- Parameters:
orbit (MeanOrbit)
norad_id (str or int)
cospar_id (str)
- Returns:
TLE representation
- Return type:
str
- classmethod from_string(text, comments='#', error='warn')
Generator of TLEs from a string
- Parameters:
text (str) – A text containing many TLEs
comments (str) – If a line starts with this character, it is ignored
error (str) – How to handle errors while parsing the text. Could be ‘raise’, ‘warn’ or ‘ignore’.
- Yields:
Tle
- to_list()
Convert the tle to a list representation, with the order as it can be found in the TLE representation.
- exception beyond.io.tle.TleParseError
Bases:
ParseError
CCSDS
- exception beyond.io.ccsds.CcsdsError
- beyond.io.ccsds.dump(data, fp, **kwargs)
Write a CCSDS file depending on the type of data, this could be an OPM file (Orbit), an OEM file (Ephem or list of Ephem), or a TDM file (MeasureSet).
- Parameters:
- Keyword Arguments:
name (str) – Name of the object
cospar_id (str) – International designator of the object
originator (str) – Originator of the CCSDS file
fmt (str) – Output format of the file, can be ‘xml’ or ‘kvn’. Default to ‘kvn’
kep (bool) – For OPM only, if
False
disable the optional osculating keplerian elements.
- Raises:
TypeError – if the data object class is not handled
If
kep = True
and the frame of the StateVector is (pseudo-)inertial (i.e. EME2000, CIRF, TOD, etc.) the optional osculating keplerian elements will be added to the OPM.It is possible to set the configuration dict to change the default value of ‘fmt’.
from beyond.config import config config["io"] = {"ccsds_default_format": "xml"}
- beyond.io.ccsds.dumps(data, **kwargs)
Create a string CCSDS representation of the object
Same arguments and behaviour as
dump()
- beyond.io.ccsds.load(fp)
Read CCSDS format from a file descriptor, and provide the beyond class corresponding; Orbit or list of Orbit if it’s an OPM, Ephem if it’s an OEM, MeasureSet if it’s a TDM.
- Parameters:
fp – file descriptor of a CCSDS file
- Returns:
Orbit, Ephem, List[Ephem] or MeasureSet
- Raises:
CcsdsError – when the text is not a recognizable CCSDS format
- beyond.io.ccsds.loads(text)
Read CCSDS from a string, and provide the beyond class corresponding; Orbit or list of Orbit if it’s an OPM, Ephem if it’s an OEM, MeasureSet if it’s a TDM.
- Parameters:
text (str)
- Returns:
Orbit, Ephem, List[Ephem] or MeasureSet
- Raises:
CcsdsError – when the text is not a recognizable CCSDS format
Horizon ephemeris
Module dedicated to parsing Horizon ephemeris format retrievable from NASA’s https://ssd.jpl.nasa.gov/horizons.cgi
- exception beyond.io.horizon.HorizonParseError
- beyond.io.horizon.load(fp)
Read Horizon format ephemeris from a file
- Parameters:
fp – file descriptor of a Horizon file
- Returns:
Ephem
- Raises:
HorizonParseError – The file is not a recognizable Horizon format
- beyond.io.horizon.loads(text)
Read Horizon format ephemeris from a text
- Parameters:
text (str) – text in Horizon format
- Returns:
Ephem
- Raises:
HorizonParseError – The text is not a recognizable Horizon format