Skip to main content

sidereon

GNSS and astrodynamics for Python, with answers you can trust.

sidereon is the Python interface to the sidereon engine: a single GNSS and astrodynamics core, written in Rust, exposed here as an idiomatic Python package. You get orbit propagation, precise positioning, frames and time, ephemeris handling, and format parsing through plain Python objects and numpy arrays. The engine is reference-validated (SGP4 is bit-exact to Vallado's implementation; frames and time check against Skyfield and IERS; the positioning stack checks against IGS products), so the numbers match the sources the field already trusts.

The Rust core is compiled into the wheel and linked statically, so the package is fast and the only runtime dependency is numpy. There is no separate native install.

Install

pip install sidereon
import sidereon
print(sidereon.__version__)

Example: where is the ISS in the sky right now?

No data files and no setup: give it a two-line element set and a ground station, and ask for the look angles. Everything that takes time takes unix microseconds (int64) and arrays propagate in one call.

import numpy as np
import sidereon

tle = sidereon.Tle(
    "1 25544U 98067A   24001.50000000  .00016717  00000-0  10270-3 0  9009",
    "2 25544  51.6400 208.8657 0002644 250.3037 109.7782 15.49560812999990",
)
station = sidereon.GroundStation(latitude_deg=51.5, longitude_deg=-0.1, altitude_m=10.0)

# Epochs are unix microseconds (int64); arrays propagate in one call.
epochs_us = np.array([1_704_110_400_000_000], dtype=np.int64)
look = tle.look_angles(station, epochs_us)
print(look.azimuth_deg, look.elevation_deg, look.range_km)

Tle also gives you propagate() (TEME state arcs as numpy arrays) and find_passes() (rise/set/peak over a window). The positioning side has the same shape: a typed config in, a result object with numpy positions and scalar attributes out.

import sidereon

sp3 = sidereon.load_sp3(open("igs_product.sp3", "rb").read())

config = sidereon.SppConfig(
    observations=[
        sidereon.SppObservation("G08", 23_825_519.8),  # PRN, pseudorange (m)
        sidereon.SppObservation("G10", 22_717_690.1),
        # ...more satellites
    ],
    t_rx_j2000_s=646_272_000.0,
    t_rx_second_of_day_s=43_200.0,
    day_of_year=176.5,
    initial_guess=[4_500_000, 500_000, 4_500_000, 0.0],
    corrections=sidereon.SppCorrections(ionosphere=True, troposphere=True),
    with_geodetic=True,
)

solution = sidereon.solve_spp(sp3, config)
print(solution.position)     # numpy [x, y, z] ECEF metres
print(solution.rx_clock_s)   # receiver clock bias, seconds

Capabilities

The Python package mirrors the full breadth of the engine.

  • Orbit propagation: SGP4/SDP4 from TLE/OMM, numerical propagation with atmospheric drag and orbital-decay estimation, batch and constellation arcs, pass prediction, look angles, and coverage analysis.
  • Orbital mechanics: classical, equinoctial, and modified equinoctial elements, anomaly conversions and Kepler propagation, Lambert transfers, initial orbit determination (IOD), and relative motion in RIC/RTN/LVLH frames with Clohessy-Wiltshire propagation.
  • GNSS positioning: single-point positioning (SPP), RTK (float and fixed), PPP (float and fixed), DGNSS, a robust solve driver with RAIM fault detection and exclusion (FDE), and DOP.
  • GNSS corrections and products: SBAS and RTCM SSR corrections applied to broadcast ephemeris, Bias-SINEX code and phase biases (DCB/OSB), Klobuchar and NeQuick-G ionosphere, IONEX maps, and troposphere models.
  • Ephemeris and time: broadcast ephemeris and precise SP3 products, JPL SPK (DAF/.bsp) kernels, uniform satellite-state sampling across broadcast and precise sources, scale-aware time (UTC/TT/TDB/UT1/GPS), and Earth orientation parameters (EOP).
  • Geometry and events: reference frames, geodetic and ECEF conversions, look angles, eclipse, conjunction screening with collision probability, and angular geometry (separation, position angle, phase angle, beta angle).
  • Observation and almanac: apparent places for the Sun, Moon, and any SPK body (astrometric and apparent RA/Dec plus az/el, with refraction and polar motion), sub-solar and sub-observer points, the terminator, parallactic angle, satellite visual magnitude, moonrise/moonset, seasons, moon phases, planetary events, meridian transits, and lunar and solar eclipses.
  • Terrain: DTED elevation lookup and geoid (EGM96) height conversion.
  • RF: link budget (FSPL, EIRP, C/N0, antenna gain).
  • Formats: parse and serialize TLE/OMM, CCSDS OEM/OPM/CDM, RINEX, CRINEX, SP3, IONEX, ANTEX, Bias-SINEX, SBAS logs, and RTCM.
  • Data acquisition: the sidereon.data module downloads and caches GNSS products (SP3 and IONEX from IGS/MGEX analysis centers, including merged multi-center SP3) and DTED terrain tiles.

The binding adds no modeling of its own: every result is exactly what the engine computes, returned as numpy arrays, typed objects, and real Python exceptions (sidereon.SidereonError and friends). Full signatures live in the bundled type stubs (sidereon/__init__.pyi).

One engine, every language

sidereon is one validated core with first-class interfaces, so the numbers are the same everywhere:

See the live demo and docs at sidereon.dev.

Building from source

For contributors: pip install maturin, then maturin develop from the repo. Run the tests with pytest.

License

MIT.

Metadata

Release files for sidereon 0.14.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sidereon 0.14.0
File Size Uploaded
sidereon-0.14.0.tar.gz 1.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for sidereon 0.14.0
File
sidereon-0.14.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
sidereon-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
sidereon-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
sidereon-0.14.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
sidereon-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 29.9 MB

Release files / sidereon-0.14.0.tar.gz

Download URL sidereon-0.14.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
acd4792549896dfa3cf73f4acb125d7a37fbc667fbe719fee0d18779c9e269dc
BLAKE2b-256 checksum
How to use checksums
35d4f7c1acc97c48600020b9fc38e43eee7837008b92a16a43998d7850f7f7be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / sidereon-0.14.0-cp39-abi3-win_amd64.whl

Download URL sidereon-0.14.0-cp39-abi3-win_amd64.whl
Size 5.3 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
8adbe6b202c4b6c762c131b21c6c4f210387094fd2ebffda8985c991c28a6340
BLAKE2b-256 checksum
How to use checksums
84ddc81b70b4a0103d583193828b357a21b681c2337bcd868599b1761d693a8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / sidereon-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL sidereon-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 5.9 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a1b4f0c659951a765b16ef0c8645d4b5d133d99bacc04646e857db581fd4fdcc
BLAKE2b-256 checksum
How to use checksums
15eb43d5e75f7119c6387bc9ab65a980e3dac3dfead386c30e7709c75c040a05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / sidereon-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL sidereon-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 5.9 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
d56403aa429d37aec725a24ca7f3afae3d9ab12fff2ddece56ad78e216210dc0
BLAKE2b-256 checksum
How to use checksums
5fab750244a57f1d1ec3989abc5c1708b62b9a9ac4caa7dc473baaf996e0d873
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / sidereon-0.14.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL sidereon-0.14.0-cp39-abi3-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7060b763a1e524e6a6b77a7d4ea57200ff67bd2c23c4fbee2d787c8ca29731ad
BLAKE2b-256 checksum
How to use checksums
b2a6c0b84459977cae7a011c1be840cd2e89c683b7ac0051390baaabbc797d61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release files / sidereon-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL sidereon-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 5.9 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
2234d281271d396b27f6adb2c6d098748e96634d4a5588732c484a2a0645679a
BLAKE2b-256 checksum
How to use checksums
ccae540858bfc15de89a5714bcb3ab91f95a4a71b102e0f61106509b09c12b96
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 4, 2026.

Transparency log

Release history Release notifications | RSS feed

3.0.3

6 release files

3.0.2

6 release files

3.0.1

6 release files

3.0.0

6 release files

2.1.1

6 release files

2.1.0

6 release files

2.0.0

6 release files

1.4.1

6 release files

1.3.3

6 release files

1.3.1

6 release files

1.3.0

6 release files

1.2.0

6 release files

1.1.1

6 release files

1.1.0

6 release files

1.0.1

6 release files

1.0.0

6 release files

0.39.1

6 release files

0.39.0

6 release files

0.38.0

6 release files

0.35.0

6 release files

0.34.0

6 release files

0.33.1

6 release files

0.32.0

6 release files

0.31.2

6 release files

0.30.0

6 release files

0.29.2

6 release files

0.29.1

6 release files

0.29.0

6 release files

0.28.1

6 release files

0.28.0

6 release files

0.27.1

6 release files

0.27.0

6 release files

0.26.1

6 release files

0.26.0

6 release files

This release

0.14.0 This release

6 release files

0.9.2

6 release files

0.9.1

6 release files

0.9.0

6 release files

0.8.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page