Skip to main content

Orbital Uncertainty & Risk Engine --- Satellite Collision Probability Solver

Project description

OURE (Orbital Uncertainty & Risk Engine)

Python 3.11+ Coverage License Version

OURE is a high-performance, enterprise-grade Space Situational Awareness (SSA) platform designed for orbital risk prediction, collision avoidance optimization, fragmentation modeling, and massive fleet screening.

Built for mission-critical speed and mathematical rigor, OURE processes Space-Track Two-Line Elements (TLEs), NASA CDDIS data, and CCSDS Conjunction Data Messages (CDMs). It propagates uncertainty using vectorized Monte Carlo simulations and evaluates Probability of Collision ($P_c$) using Foster's algorithm on the encounter B-plane.

Key Features

  • Multi-Fidelity Physics Engine: Native SGP4 propagation combined with a High Precision Orbit Propagator (HPOP) featuring J2 oblateness, Solar Radiation Pressure (SRP), and atmospheric drag perturbations.
  • NASA-Grade Integration: Supports parsing NASA CDDIS CPF (Satellite Laser Ranging) files for centimeter-level accuracy and implements the NASA MSFC Jacchia analytical atmospheric model for highly accurate solar flux drag modifications.
  • Collision Avoidance (SLSQP): Mathematical maneuver optimization to find minimum-fuel 3D Delta-V vectors that mitigate collision risk below safety thresholds.
  • NASA Standard Breakup Model: Simulation of hypervelocity impacts and debris cloud dispersion.
  • Sensor Fusion: Extended Kalman Filter (EKF) updates to simulate commercial radar tasking and covariance collapse.
  • KD-Tree Fleet Screening: Distributed epoch-bucketed $O(N \log N)$ screening of entire satellite constellations against the full NORAD catalog.
  • Enterprise Observability: Fully instrumented FastAPI REST API and Celery/Redis background workers, seamlessly integrated with Prometheus and Grafana for real-time physics engine throughput and risk quantification latency monitoring.
  • Interactive Visualizations: 3D ECI encounter geometry and massive orbital fleet visualization using Next.js, React Three Fiber, and Three.js.

Installation & Deployment

OURE can be run locally via CLI, launched via a lightweight web interface, or deployed as a full enterprise microservice stack.

1. Global Installation (CLI & Web)

You can install OURE globally using pip (or uv):

# Install the OURE backend package and its dependencies
pip install oure

# Start the FastAPI backend
uvicorn oure.api.main:app --reload

# In a new terminal, start the Next.js 3D Frontend
cd frontend
npm install
npm run dev

2. Enterprise Stack (Docker Compose)

For production environments, OURE deploys as a fully isolated 6-service stack including the API, Background Workers, Redis Broker, Operations Dashboard, Prometheus metrics, and a Grafana observability suite.

# Clone the repository for the Enterprise Stack
git clone https://github.com/h-rishi16/oure.git
cd oure

# Start the full Enterprise Stack
docker compose up --build -d

CLI Usage

1. Analyze a Conjunction

oure analyze --primary 25544 --secondary 43205 --look-ahead 72

2. Avoidance Maneuver Wizard

Starts an interactive guide to optimize a fuel-efficient burn:

oure avoid --primary 25544 --secondary 43205

3. Fleet Screening

Screen thousands of secondaries against a fleet of primaries in parallel:

oure analyze-fleet --primaries-file p.json --secondaries-file s.json --workers 8

4. Space Debris Fragmentation

Simulate a "What-if" collision between two objects:

oure shatter --primary 25544 --secondary 43205 --fragments 5000

Architecture & Security

OURE enforces a strict, decoupled 5-layer architecture, hardened against Resource Exhaustion (DoS) and Numerical Singularities:

  1. Core: Immutable data models (StateVector, CovarianceMatrix) and Prometheus Metrics Managers.
  2. Data: Caching fetchers (SpaceTrack, NOAA F10.7), NASA CDDIS CPF parsing, and strict CCSDS CDM Parser.
  3. Physics: Certified SGP4, RK45 Numerical integrators, NASA MSFC Atmospheric modeling, and SRP.
  4. Uncertainty: Memory-hardened Vectorized Monte Carlo ensembles (capped at 100k samples), STM generation, and EKF Sensor updates.
  5. Conjunction/Risk: TCA Golden-section search, Robust Foster $P_c$ math utilizing Moore-Penrose pseudo-inverses (np.linalg.pinv) to prevent singular matrix crashes, and SLSQP maneuver optimization.

Testing & Quality

OURE maintains strict engineering standards, verified by GitHub Actions CI/CD:

  • Test Coverage: 88%+ enforced via pytest-cov across 70+ test suites.
  • Static Analysis: Strict mypy typing and ruff linting.
  • Numerical Stability: Joseph-form covariance updates, eigenvalue-ordered risk projection with singularity protection.
uv run pytest tests/ -v --cov=oure

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oure-1.1.0.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oure-1.1.0-py3-none-any.whl (104.2 kB view details)

Uploaded Python 3

File details

Details for the file oure-1.1.0.tar.gz.

File metadata

  • Download URL: oure-1.1.0.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for oure-1.1.0.tar.gz
Algorithm Hash digest
SHA256 2093bcc395a3953c51066365a80cfc193414cf248a97dd3a2eb2154d9d359ddc
MD5 4fe2acf4f0a16ba876beb33952a603da
BLAKE2b-256 712d5d7b4682a655e6c023893cf8598116c1e0c60001d2284a230d46788a8599

See more details on using hashes here.

Provenance

The following attestation bundles were made for oure-1.1.0.tar.gz:

Publisher: publish.yml on h-rishi16/OURE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file oure-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: oure-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 104.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for oure-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 76022ed7628ec2971335bcae4d9ee76087578484742f6f4f620af8edf61cec40
MD5 417904adc7dcaaf60b81766239b3cd85
BLAKE2b-256 9b4999e486f6856b964ecf56bbec2ad1251e7e788f221cf842aac09b57e6813f

See more details on using hashes here.

Provenance

The following attestation bundles were made for oure-1.1.0-py3-none-any.whl:

Publisher: publish.yml on h-rishi16/OURE

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page