Skip to content

Document two-body vs SGP4 propagation fidelity in ActorBuilder#214

Merged
gomezzz merged 1 commit into
aidotse:mainfrom
TobiasEdman:feature/propagator-fidelity-docs
Jul 6, 2026
Merged

Document two-body vs SGP4 propagation fidelity in ActorBuilder#214
gomezzz merged 1 commit into
aidotse:mainfrom
TobiasEdman:feature/propagator-fidelity-docs

Conversation

@TobiasEdman

Copy link
Copy Markdown
Contributor

Description

Summary of changes

  • Add a note to the ActorBuilder.set_orbit docstring: it creates an analytical two-body orbit (no J2 / drag), so propagated positions drift from real satellite trajectories over multi-hour horizons; TLE users should prefer set_TLE, higher-fidelity users set_custom_orbit.
  • Add a cross-reference in the set_TLE docstring (propagates with SGP4, consistent with the model that generated the TLE).
  • Add a matching N.B. in the README's Keplerian Orbit section.

Motivation: we seeded a LEO/SSO actor (Sentinel-1C) via set_orbit from its SGP4 state at epoch and measured divergence vs the TLE's SGP4 trajectory: 252 km @ +3 h, 485 km @ +6 h, 908 km @ +12 h, 1,856 km @ +24 h, 3,634 km @ +48 h, 5,418 km @ +72 h. set_TLE matched SGP4 to 0.00 km in the same setup. Both behaviours are correct — this PR just makes the fidelity trade-off visible at the point of choice. Docs-only, no behaviour change.

Resolved Issues

  • (none — docs-only)

How Has This Been Tested?

pytest paseos/tests run before/after the change: 30 passed, 6 failures pre-existing and identical on the unmodified tree in this environment (pykep/boost "bad lexical cast" + one thermal assert).

Related Pull Requests

  • (none)

🤖 Generated with Claude Code

set_orbit creates an analytical Keplerian two-body orbit, so J2 and
drag are unmodelled and propagated positions drift from real satellite
trajectories over multi-hour horizons. Measured for a LEO/SSO actor
seeded from an SGP4 state: 252 km at +3 h, 5,418 km at +72 h vs the
TLE's SGP4 trajectory, while set_TLE matches SGP4 exactly.

Add a fidelity note to the set_orbit docstring pointing TLE users to
set_TLE, a cross-reference in set_TLE, and a matching N.B. in the
README's orbit section. No behaviour change.

Verified-by: pytest paseos/tests — 30 passed; 6 pre-existing env
failures identical on unmodified tree
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gomezzz gomezzz self-requested a review July 6, 2026 07:42

@gomezzz gomezzz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems there is an issue with the CI, approving since only doc changes and should hence be fine. Thanks Tobias!

@gomezzz gomezzz merged commit faf8bbd into aidotse:main Jul 6, 2026
3 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants