rudrani-rane/ATIS
🛰️ ATIS — Automated Threat Intelligence System
Planetary Defense Mission Control · Near-Earth Object Monitoring · v1.0
ATIS is a research-grade planetary defense intelligence platform that ingests real NASA JPL asteroid data, runs a Graph Neural Network to learn orbital threat relationships, and surfaces results through an interactive multi-page mission-control dashboard.
Demo
Features
AI Threat Engine
- Graph Attention Network (GAT) trained on 12,054 Near-Earth Objects
- GNN + Gradient Boosting hybrid classifier — 5-fold cross-validated accuracy: 99.7%, Recall: 99.1%, F1: 99.2%, ROC-AUC: 0.9999
- Orbital-only input (neo/pha columns stripped to prevent label leakage)
- 17 orbital features → 32-dimensional latent embedding space
- Probabilistic output heads: mean (µ) + uncertainty (σ) per asteroid
- Hybrid threat score combining GNN intelligence with physical orbital parameters (MOID, H, eccentricity, inclination)
- PHA probability per asteroid from dedicated classifier head trained with weighted BCE loss
Live Data Integration
- Real-time asteroid ingestion from NASA JPL Small Body Database (SBDB) API
- Background updater polling for new close-approach events
- WebSocket broadcast of live threat score changes to all connected clients
Dashboard Pages (Version 1.0)
Alert System
- Auto-generates alerts from watchlist when no history is available
- Classifies alerts as
critical,high,warning, orinfobased on GNN threat score - Live update events injected every 25 seconds from top-threat asteroids
Tech Stack
Getting Started
Prerequisites
- Python 3.10+
- pip
Installation
git clone <repo-url>
cd "Automated Intelligence Threat System"
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux/macOS
pip install -r requirements.txtRun the Server
uvicorn src.web.main:app --port 8000Open http://localhost:8000 in your browser.
Note: On first launch ATIS runs GNN inference, fits the PHA probability classifier, and computes 5-fold cross-validation scores. This takes ~60–90 seconds before the server accepts requests.
Retrain the GNN (optional)
python -m src.models.trainGNN Model Details
Scientific Formulas & Algorithms
Keplerian Orbital Mechanics
Kepler's Equation (Eccentric Anomaly):
E - e·sin(E) = MSolved using Newton-Raphson iteration.
Position Calculation:
x = a·(cos(E) - e)
y = a·√(1-e²)·sin(E)Velocity (Vis-Viva Equation):
v = √[μ·(2/r - 1/a)]Impact Energy
Kinetic Energy:
E = ½·m·v²
E_MT = E / (4.184 × 10¹⁵) joulesCrater Diameter (Scaling Law):
D_crater = 1.8 · ρ_a^0.11 · ρ_t^(-1/3) · L^0.13 · v^0.44 · g^(-0.22) · sin(θ)^(1/3)N-Body Simulation
Gravitational Acceleration:
a_i = Σ [G·m_j·(r_j - r_i) / |r_j - r_i|³]Verlet Integration:
v(t+Δt/2) = v(t) + a(t)·Δt/2
r(t+Δt) = r(t) + v(t+Δt/2)·Δt
a(t+Δt) = F(r(t+Δt))/m
v(t+Δt) = v(t+Δt/2) + a(t+Δt)·Δt/2Anomaly Detection
Z-Score:
z = (x - μ) / σIsolation Forest Score:
s(x, n) = 2^(-E(h(x))/c(n))VERSION 2 - LATER
The following features are planned for the next major release and are not yet available in v1.0:
Pages Reserved for v2
Planned Improvements
- Proper location-based galaxy view — real Keplerian orbital positions at J2000 epoch instead of z-score approximations
- Automated nightly sync with full JPL SBDB catalog
- MPC (Minor Planet Center) observation data for trajectory refinement
- Temporal GNN — model orbital evolution over time
- SHAP-based per-asteroid local explainability
- Monte Carlo impact probability distributions
- Deflection mission delta-V planner
- User accounts with personal watchlists and email alerts
- Docker/container packaging for one-command deployment
- Mobile-responsive layout pass
- AR/VR mode for the 3D galaxy view (WebXR)
Data sourced from NASA/JPL — see JPL SBDB for data terms.
