Skip to content

Releases: ATTron/astroz

v0.7.1

02 Feb 09:32

Choose a tag to compare

** Python 3.10 Builder Bug Fix **

v0.7.0

02 Feb 09:25
ecba79e

Choose a tag to compare

What's New

  • python-sgp4 interoperablity: astroz is now a drop in replacement for python-sgp4. Simply change your import line to from astroz and get a 2x speedup! Follow the full migration guide for even more gains up to 100x compared to sgp4.

What's Changed

  • python-sgp4 compatability layer by @ATTron in #70

Full Changelog: v0.6.1...v0.7.0

v0.6.1

30 Jan 05:24
1cdd72d

Choose a tag to compare

What's Changed

Full Changelog: v0.6.0...v0.6.1

v0.6.0

30 Jan 04:24
0befacd

Choose a tag to compare

Breaking Changes

Removed APIs

  • Sgp4 class - Single satellite propagator removed from Python bindings
  • load_constellation() - Backward compatibility alias removed
  • min_distances() - Standalone function removed
  • coarse_screen() - Standalone function removed
  • WGS84 constant - No longer exported

Constellation class changes

  • propagate() method removed from class (now a module-level function)
  • metadata property and with_metadata parameter removed
  • batch_size property removed
  • out parameter for pre-allocated output removed

New API

The Python API is now simplified to two main functions:

  from astroz import Constellation, propagate, screen
  # Parse TLEs once for repeated use
  c = Constellation("starlink")
  # Propagate satellites
  positions = propagate(c, times, start_time=dt, output="ecef")
  positions, velocities = propagate(c, times, velocities=True)
  # Conjunction screening - single target (fastest, fused propagate+screen)
  min_dists, t_indices = screen(c, times, threshold=10.0, target=0)
  # Conjunction screening - all-vs-all
  pairs, t_indices = screen(c, times, threshold=10.0)

Migration Guide

Propagating a constellation:

# Before
c = Constellation("starlink")
positions = c.propagate(times)
# After
c = Constellation("starlink")
positions = propagate(c, times)

Loading a constellation:

# Before
c = load_constellation("starlink")
# After
c = Constellation("starlink")

Conjunction screening:

# Before
positions = c.propagate(times)
pairs = coarse_screen(positions, threshold=10.0)
distances, t_indices = min_distances(positions, pairs)
# After
pairs, t_indices = screen(c, times, threshold=10.0)
Single-target screening:
# Before
positions = c.propagate(times)
pairs = coarse_screen(positions, threshold=10.0)
# ... filter pairs for target ...
# After (faster - fused propagate+screen)
min_dists, t_indices = screen(c, times, threshold=10.0, target=0)

Single satellite propagation:

# Before
sgp4 = Sgp4(tle)
pos, vel = sgp4.propagate(30.0)

# After
positions = propagate(tle_string, [30.0])

What's Changed

Full Changelog: v0.5.0...v0.6.0

v0.5.0

26 Jan 06:16
b88a9f0

Choose a tag to compare

What's Changed

  • feat: 8 wide SIMD by @ATTron in #62
  • deprecation of *V4 in favor of *VN to capture both V4 simd and V8 simd accurately

Full Changelog: v0.4.4...v0.5.0

v0.4.4

25 Jan 04:32
7b20c62

Choose a tag to compare

What's Changed

  • feat(core): add SIMD ECEF coordinate rotation by @ATTron in #59
  • feat: constellation propagation with epoch offsets and output modes by @ATTron in #60
  • add multithreading by @ATTron in #61

Full Changelog: v0.4.3...v0.4.4

v0.4.3

22 Jan 00:22

Choose a tag to compare

What's Changed

Full Changelog: v0.4.2...v0.4.3

v0.4.2

19 Jan 07:04

Choose a tag to compare

What's Changed

  • SIMD SGP4 omptimizations

Full Changelog: v0.4.1...v0.4.2

v0.4.1

16 Jan 07:29

Choose a tag to compare

  • small fix to the github action with the proper zig build flags

v0.4.0

16 Jan 05:02

Choose a tag to compare

Biggest Change

  • Add SGP4 prop and offer C API / python bindings into it
    • This implementation is the fastest open source option for SGP4 orbit prop

What's Changed

Full Changelog: v0.3.0...v0.4.0