Skip to main content

Autonomous Space Traffic Risk Analyzer - Computation Engine

Project description

ASTRA-Core v2.0.0 🚀

The High-Performance Mathematical Foundation for Space Situational Awareness.

ASTRA-Core is the computational engine powering the ASTRA ecosystem. It is an elite Python library designed for aerospace engineers, researchers, and developers who need to track thousands of orbital objects simultaneously with sub-second precision.


📋 The Science Behind ASTRA

ASTRA-Core manages the extreme complexity of Low Earth Orbit (LEO) through three primary mathematical modules:

1. Vectorized SGP4 Propagation

Standard orbital models for Earth involve non-spherical gravity (J2/J3/J4 effects), lunar-solar perturbations, and atmospheric drag. ASTRA-Core utilizes the Simplified General Perturbations #4 (SGP4) model, implemented with vectorized NumPy arrays. This allows you to propagate 15,000+ objects simultaneously at 60Hz without bottlenecking the CPU.

2. Conjunction & Collision Probability

ASTRA-Core doesn't just measure "miss distance"—it solves the Probability of Collision ($P_c$).

  • Hermite Spline Interpolation: Instead of checking positions every minute (which can miss a collision), ASTRA-Core fits cubic splines to trajectories to find the mathematical root of the closest approach point.
  • Mahalanobis B-Plane Mapping: We project 3D error ellipsoids (covariance) onto a 2D encounter plane to calculate the true statistical likelihood of an impact.

3. Spatial Filtering (Sweep-and-Prune)

To find a collision between 20,000 satellites, you'd usually. check 200 million pairs ($O(n^2)$). ASTRA-Core uses a 1D Sweep-and-Prune algorithm combined with Axis-Aligned Bounding Boxes (AABB) to prune 99.9% of non-threatening pairs in milliseconds.


📦 Installation

ASTRA-Core is available as a standalone package on PyPI:

pip install astra-core-engine

Alternatively, for development:

git clone https://github.com/ISHANTARE/ASTRA.git
cd ASTRA/ASTRA-Core
pip install .

💻 Technical Quickstart

import astra
import numpy as np

# 1. Fetch live TLEs
print("Downloading live catalog...")
active_catalog = astra.fetch_celestrak_active()

# 2. Setup Debris Monitoring
objects = [astra.make_debris_object(tle) for tle in active_catalog]
leo_only = astra.filter_altitude(objects, min_km=200, max_km=2000)

# 3. Mass Propagation
tles = [obj.tle for obj in leo_only]
time_steps = np.arange(0, 120, 5.0) # Next 2 hours
trajectories = astra.propagate_many(tles, time_steps)

# 4. Filter for Conjunction Events (< 5km)
events = astra.find_conjunctions(
    trajectories, 
    leo_only[0].tle.epoch_jd + time_steps/1440.0, 
    {obj.tle.norad_id: obj for obj in leo_only}, 
    threshold_km=5.0
)

print(f"Detected {len(events)} potential threats.")

🚀 What's New in v2.0.0 (Industry-Grade Update)

The v2.0.0 release transforms ASTRA from a mathematical core into an elite, production-ready aerospace library.

  • examples/ Directory: Added 3 fully-commented tutorial scripts for Conjunctions, 3D Visualization, and Pass Predictions.
  • Professional Logging: Replaced silent execution with configurable, formatted Python logging.
  • GitHub Actions CI/CD: Added robust automated test pipelines via GitHub Actions.
  • Space Force CDM Parser: Added astra.cdm to directly ingest official CCSDS Conjunction Data Message XMLs.
  • Multithreaded Interpolation: Upgraded the find_conjunctions module with ThreadPoolExecutor to automatically utilize all CPU cores, bypassing the GIL during heavy spline math.

📚 Library Reference

  • astra.orbit: The SGP4 engine and trajectory mapping.
  • astra.conjunction: Spline-based TCA finding and AABB spatial filters.
  • astra.covariance: Mahalanobis projection and B-Plane probability logic.
  • astra.visibility: Topocentric observer geometry (Pass Predictions).
  • astra.data: Automated CelesTrak and OMM data ingestion.

👤 Author

ISHAN TARE
Astrodynamics & Computer Science Student


© 2026 ASTRA Project

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

astra_core_engine-2.0.0.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

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

astra_core_engine-2.0.0-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

Details for the file astra_core_engine-2.0.0.tar.gz.

File metadata

  • Download URL: astra_core_engine-2.0.0.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for astra_core_engine-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e727819637e098cdf505af982f1ea0b13f0e7c0a33f66bd467ce6eda641ab3c1
MD5 a309cccc387ad09491f873e32d896542
BLAKE2b-256 294df6c1666abc5a91a37e6f84f881f5e00b6824fca9cb46dd37e61317346d97

See more details on using hashes here.

File details

Details for the file astra_core_engine-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for astra_core_engine-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d20117a53af41fb44a8ca8f06c26f86fef036ea249de1d65e7db0d5f781bd686
MD5 63a201a695efbca91427f4c1d5953268
BLAKE2b-256 93e41f0667fdfadbbb5f0bb5408c71ee41eafdc1f9b3dbceb71e7763d7e6530d

See more details on using hashes here.

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