Skip to content

v0.9.0

Choose a tag to compare

@ATTron ATTron released this 17 Feb 02:18
· 9 commits to main since this release
4d8e449

v0.9.0

SDP4 Deep-Space Propagator

astroz now handles all cataloged satellites — not just near-earth. GPS, GEO, Molniya, and other deep-space orbits (period > 225 min) are fully supported with SIMD-vectorized SDP4 propagation.

Everything auto-dispatches. Pass any TLE to Satrec.twoline2rv() or Constellation and it just works — SGP4 for near-earth, SDP4 for deep-space, no code changes needed.

What's new:

  • Sdp4.zig / Sdp4Batch.zig — scalar and SIMD SDP4 with lunar/solar perturbations and resonance handling
  • Satellite.zig — unified type that picks SGP4 or SDP4 automatically
  • Constellation.zig — replaces Sgp4Constellation.zig, propagates mixed constellations with threading
  • Satrec.is_deep_space property in Python
  • Satrec.sgp4_array_into() — zero-copy SIMD batch for single satellites (SGP4 and SDP4)
  • New benchmark scripts for JAX CPU/GPU comparisons

Breaking Changes (Zig only)

Python API has no breaking changes.

  • Sgp4Constellation replaced by Constellation
  • Sgp4Batch and simdMath now accessed via Constellation.Sgp4Batch / Constellation.simdMath
  • DragCoefficients no longer stores perige — passed as a parameter instead
  • Several Sgp4 internal types made pub for SDP4 reuse

Fixes

  • Fixed non-compiling benchmarks (#80)
  • CelestialBody constants refactored to use default field values