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.cdmto directly ingest official CCSDS Conjunction Data Message XMLs. - Multithreaded Interpolation: Upgraded the
find_conjunctionsmodule withThreadPoolExecutorto 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e727819637e098cdf505af982f1ea0b13f0e7c0a33f66bd467ce6eda641ab3c1
|
|
| MD5 |
a309cccc387ad09491f873e32d896542
|
|
| BLAKE2b-256 |
294df6c1666abc5a91a37e6f84f881f5e00b6824fca9cb46dd37e61317346d97
|
File details
Details for the file astra_core_engine-2.0.0-py3-none-any.whl.
File metadata
- Download URL: astra_core_engine-2.0.0-py3-none-any.whl
- Upload date:
- Size: 32.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d20117a53af41fb44a8ca8f06c26f86fef036ea249de1d65e7db0d5f781bd686
|
|
| MD5 |
63a201a695efbca91427f4c1d5953268
|
|
| BLAKE2b-256 |
93e41f0667fdfadbbb5f0bb5408c71ee41eafdc1f9b3dbceb71e7763d7e6530d
|