Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement SGP4-XP Propagator for Extended Precision Ephemeris Handling #795

Open
thkruz opened this issue Nov 8, 2023 · 0 comments
Open
Assignees
Labels
Milestone

Comments

@thkruz
Copy link
Owner

thkruz commented Nov 8, 2023

Background

In 2020, the United States Space Force released an implementation of the SGP4-XP propagator, a more accurate version of the standard SGP4, which is claimed to deliver accuracy comparable to the USSF's SPEPH. The SGP4-XP is not backwards compatible with SGP4 and provides enhanced accuracy, especially for medium- and high-Earth orbits. The AstroStds library supports this algorithm, but as of November 2023, it's only available in compiled binary form, which poses a challenge for JavaScript and TypeScript runtimes that cannot execute binary code directly.

User Story

  • As a developer of orbital analysis tools,
  • I want to integrate the SGP4-XP propagator into our Keep Track project,
  • So that users can benefit from the increased precision for medium- and high-Earth orbit objects and more accurate velocity calculations for low-Earth orbit objects.

Acceptance Criteria

  • Given a user has TLE data with ephemeris type 4,

  • When they attempt to propagate the orbit using Keep Track,

  • Then the system should accurately use the SGP4-XP algorithm without throwing unexpected errors.

  • Given a user tries to input SGP4-XP TLE data into the current SGP4 system,

  • When the parsing of the 1st line of the TLE occurs,

  • Then the system should throw a clear and informative error explaining the incompatibility.

Commentary

  • Updates should be made to handle TLEs correctly and ensure that any incompatible TLEs throw expected errors.
  • Investigate the possibility of using WebAssembly (WASM) to implement the binary on the web, while considering the performance overhead when processing individual TLEs.
  • A solution might be to propagate a whole catalog per WASM call to mitigate performance issues.
  • Security concerns regarding the use of third-party binaries without source code should be addressed.
  • Any leads on projects attempting to implement SGP4-XP via WASM would be valuable.

Further Discussion

Please share any insights or suggestions on how to approach the implementation, especially if you have experience with WASM or have come across any projects that are already paving the way for this kind of functionality in JavaScript or TypeScript environments.

@thkruz thkruz added the Feature label Nov 8, 2023
@thkruz thkruz added this to the Backlog milestone Nov 8, 2023
@thkruz thkruz self-assigned this Nov 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant