Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Orekit Orekit
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 76
    • Issues 76
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 17
    • Merge requests 17
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Orekit
  • OrekitOrekit
  • Issues
  • #664
Closed
Open
Created Mar 30, 2020 by Clément Jonglez@yzokrasDeveloper

TLE does not accept negative RAAN and AOP whereas KeplerianOrbit does

Original discussion: https://forum.orekit.org/t/negative-raan-and-aop-keplerianorbit-vs-tle/777

Context

  • In a KeplerianOrbit object, the Right Ascension of Ascending Node (RAAN) and the Argument of Perigee (AOP) are defined in the [- \pi, + \pi] interval
  • In a TLE object (and the TLE format in general), the RAAN and the AOP are defined in the [0, 2 \pi] interval

What happens

When passing osculating elements from a KeplerianOrbit to a TLE (as a first guess before fitting mean elements):

  • The TLE constructor does not complain
  • When calling the toString() method, an exception is raised:
---------------------------------------------------------------------------
JavaError                                 Traceback (most recent call last)
<ipython-input-20-da382527e187in <module>
----1 tle_first_guess.toString()

JavaError: <super: <class 'JavaError'>, <JavaError object>>
    Java stacktrace:
org.orekit.errors.OrekitInternalError: internal error, please notify development team by creating an issue at https://gitlab.orekit.org/orekit/orekit/issues
	at org.orekit.propagation.analytical.tle.TLE.toString(TLE.java:693)
Caused by: org.orekit.errors.OrekitException: invalid TLE parameter for object 99,999: raan = -120.1314
	at org.orekit.propagation.analytical.tle.TLE.addPadding(TLE.java:507)
	at org.orekit.propagation.analytical.tle.TLE.buildLine2(TLE.java:461)
	at org.orekit.propagation.analytical.tle.TLE.getLine2(TLE.java:357)
	at org.orekit.propagation.analytical.tle.TLE.toString(TLE.java:691)

Possible "solutions"

I see three possibilities:

  1. Throw an exception if the user initialized negative angles.
  2. If the angles are negative, then normalize them between 0 and 2 pi inside the TLE constructor (more user-friendly because no exceptions are thrown).
  3. Change nothing, just document the angles range in the javadoc
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking