Advanced satellite collision detection and avoidance system using machine learning, physics-informed models, and standardized orbital data formats (CCSDS CDM, TLE), with explainable AI and optimized maneuver planning.
- Fixed nested folder issue by introducing a flat, well-named structure for explainability code:
src/explainability/ - Integrated datasets and formats used in Erik Cupsa's On-Orbit Collision Predictor, including CCSDS CDM sample data
- Added datasets documentation with usage examples and source acknowledgments (
datasets/README_DATASETS.md) - Enhanced About section and project description for clarity
src/explainability/shap_explainer.py— SHAP-based explainability utilities for model predictions
datasets/ccsds_cdm_sample.json— sample CCSDS CDM file (Erik Cupsa format)sample_tle_data.csv— sample TLE elementsparse_tle.py— helper to parse TLE dataREADME_DATASETS.md— datasets and formats documentation
models/— ML and physics-informed models (PINNs, LSTMs, GNNs)maneuver_planning/— delta-V optimization and avoidance planningvisualization/— 3D/AR visualization and dashboards
- CCSDS CDM (Conjunction Data Message)
- File:
datasets/ccsds_cdm_sample.json - Fields: TCA, miss distance, relative state, covariance, collision probability, object metadata
- Source pattern: aligned with Erik Cupsa's repository data format
- File:
- TLE (Two-Line Element)
- Files:
datasets/sample_tle_data.csv, parserdatasets/parse_tle.py - Sources: NORAD/Space-Track, CelesTrak
- Files:
See datasets/README_DATASETS.md for details, examples, and references.
This project includes an explainability toolkit to increase operator trust in automated alerts:
- SHAP waterfall and force plots for per-prediction insights
- Global summary plots for feature importance
- Feature ranking by mean |SHAP| value
- Module:
src/explainability/shap_explainer.py
Prerequisites
- Python 3.8+
- Docker (optional for containerized runs)
- Access to telemetry or simulation data (optional)
Setup
# Clone
git clone https://github.com/Anand0295/Satellite-Collision-Detection
cd Satellite-Collision-Detection
# (Optional) Build container
docker build -t satellite-collision-detector .
Data
- Place additional CCSDS CDM files under
datasets/ - Load TLEs with
datasets/parse_tle.py
Explainability quick start
import json
import numpy as np
from src.explainability.shap_explainer import SHAPExplainer
# Example model stub with predict(X) -> y_proba
class DummyModel:
def predict(self, X):
# Return a probability-like score for demonstration
return np.clip(0.5 + 0.1 * np.random.randn(len(X)), 0, 1)
model = DummyModel()
background = np.random.randn(100, 10)
explainer = SHAPExplainer(model, background)
X = np.random.randn(5, 10)
feature_names = [f"f{i}" for i in range(X.shape[1])]
ex = explainer.explain_prediction(X, feature_names)
rank = explainer.get_feature_importance_ranking(ex)
print(rank.head())The project aims to provide accurate, timely conjunction risk assessment and maneuver planning by combining:
- Multi-source data fusion (radar, optical, TLE, CCSDS CDM)
- Advanced ML and physics-informed modeling
- Real-time processing at scale
- Explainable AI for trustworthy decision support
- Operator-focused visualization and APIs for safe maneuver execution
- Erik Cupsa — inspiration and data format integration from On-Orbit Collision Predictor
- NORAD/Space-Track, CelesTrak — orbital element datasets (TLE)
- CCSDS — CDM standard (CCSDS 508.0-B-1)
MIT — see LICENSE.