An Integrated Platform for Benchmarking and Operational Deployment of LLM-Based Anomaly Detection in Spacecraft Telemetry
Built on top of ORBITA (Orbital Registry for Big Data, Intelligence, and Traffic Analysis), this platform integrates real-time spacecraft telemetry management with the ATSADBench evaluation framework to systematically test, visualize, and operationally deploy anomaly detection models โ including Large Language Models (LLMs) โ on aerospace time-series data.
Large Language Models (LLMs) are being proposed for aerospace anomaly detection, but their effectiveness remains under-examined due to:
- Complex, multivariate spacecraft telemetry data
- Misaligned evaluation metrics that don't reflect operational needs
- Absence of domain-specific knowledge in general-purpose LLMs
The ATSADBench (Aerospace Time Series Anomaly Detection Benchmark) was recently released with:
- 9 tasks covering univariate and multivariate spacecraft telemetry
- 108,000+ data points from real and simulated missions
- Novel user-oriented metrics: Alarm Accuracy, Alarm Latency, Alarm Contiguity
| Scenario | LLM Performance |
|---|---|
| Univariate tasks | โ Strong performance |
| Multivariate telemetry | โ Approaches random guessing |
| RAG augmentation | |
| Few-shot learning |
The benchmark exists, but nobody has built an integrated platform that allows systematic testing, visualization, and operational deployment of these models.
ORBITA-ATSAD bridges the gap between benchmark evaluation and operational deployment:
- ORBITA as the data backend โ Full spacecraft catalog, orbit tracking, and telemetry management
- ATSADBench evaluation framework as a service โ Register models, submit predictions, auto-compute all metrics
- Visualization dashboards โ Time-series anomaly detection results, leaderboards, per-channel analysis
- Extensible model registry โ Test your own novel detection methods alongside baselines
- Operational pipeline โ From benchmark validation to real-time anomaly monitoring
[External Data Sources: CelesTrak, Space-Track.org, NOAA SWPC]
|
v
[Celery Workers + Beat] โโ> [RabbitMQ] โโ> [Background Tasks]
โ TLE updates (30m) โ โ Conjunction Screening (KD-Tree)
โ Space Weather (15m) โ โ Telemetry Ingestion
โ Conjunction Scan (1h) โ โ Kessler Simulation
v v v
[FastAPI Backend] <โโโโโโโโ> [PostgreSQL + PostGIS + TimescaleDB]
โ โ โ
โ โ [WebSocket /ws] โโ> โ [Row-Level Security (RBAC)]
โ โ v
โ โ [Temporal + Spatial + ML Queries]
โ v
โ [LangChain AI Agent] โโ> [GPT-4o / Claude] โโ> Incident Reports
โ โ Tools: query_telemetry, run_propagation, correlate_events
โ v
โ [HiFi Physics Engine]
โ โ Numerical Propagator (DOP853)
โ โ J2 Perturbations + Atmospheric Drag
โ โ KD-Tree Collision Screening
โ โ Collision Probability (Alfano/Foster)
โ โ CAM Optimizer (SLSQP)
โ โ NASA Breakup Model (Kessler Sim)
โ v
โ [Redis Cache]
v
[React + CesiumJS Frontend]
โ Instanced Rendering (10K+ sats @ 60 FPS)
โ Timeline Slider + Time Machine
โ Web Worker SGP4 Propagation
โ Debris Field Visualization
v
[ATSAD Benchmark Engine]
โ โ
v v
[Model Registry] [Evaluation Pipeline]
โ โ
v v
[Leaderboard] [Anomaly Visualizations]
| Layer | Technology |
|---|---|
| Database | PostgreSQL 15 + PostGIS + TimescaleDB |
| Backend | Python / FastAPI |
| Orbit Propagation | SGP4 / Skyfield + SciPy DOP853 Numerical Propagator |
| Physics Engine | J2-J6 Perturbations, Atmospheric Drag (NRLMSISE-00), Covariance Propagation |
| Collision Assessment | KD-Tree Screening, Alfano Pc, CAM Optimizer |
| AI Agents | LangChain + OpenAI GPT-4o / Anthropic Claude |
| ML Evaluation | NumPy / ATSADBench metrics engine |
| Message Broker | RabbitMQ + Celery Workers + Beat Scheduler |
| Cache | Redis |
| Frontend | React + TypeScript + CesiumJS (Instanced Rendering) |
| Containerization | Docker + Docker Compose + Kubernetes |
| CI/CD | GitHub Actions |
| Auth | JWT + RBAC + API Keys + Row-Level Security |
- Docker & Docker Compose
- Git
git clone <repo-url> orbita-platform
cd orbita-platform
# Start all services (database + API + pgAdmin + Redis)
docker compose up -d| Service | URL |
|---|---|
| API Docs (Swagger) | http://localhost:8000/docs |
| API Docs (ReDoc) | http://localhost:8000/redoc |
| pgAdmin | http://localhost:8080 |
| Health Check | http://localhost:8000/health |
| Admin CRUD UI | http://localhost:5173/admin |
pgAdmin credentials: admin@orbita.dev / admin123
Add server: host=orbita-db, port=5432, db=orbita_registry, user=orbita_admin
cd backend
alembic upgrade headAlembic migrations now live in backend/alembic/, with a baseline revision for existing SQL-managed schema and incremental revisions for new changes.
Seed behavior:
0003_org_scoping_audit_and_seedscreates default org membership metadata and starter ATSAD dataset/model entries for local development.
Admin UI sections:
/admin/catalog/space-objects/admin/catalog/operators/admin/catalog/missions/admin/catalog/ground-stations/admin/catalog/launch-vehicles/admin/users/admin/events/conjunctions/admin/tle/admin/atsad?tab=datasets|models|runs
All routes are prefixed with /api/v1.
| Endpoint | Methods | Description |
|---|---|---|
/space-objects |
GET, POST | Catalog of satellites, debris, rocket bodies |
/space-objects/{id} |
GET, PATCH, DELETE | Single object CRUD |
/space-objects/norad/{norad_id} |
GET | Lookup by NORAD ID |
/operators |
GET, POST | Space agencies and companies |
/launch-vehicles |
GET, POST | Rocket / launch vehicle catalog |
/launches |
GET, POST | Launch event records |
/missions |
GET, POST, PATCH | Mission management |
| Endpoint | Methods | Description |
|---|---|---|
/orbits/{object_id} |
GET, POST | Orbit state history |
/orbits/{object_id}/latest |
GET | Most recent orbit |
/orbits/batch |
POST | Batch orbit ingestion |
/observations |
GET, POST | Tracking observations (radar/optical) |
/observations/batch |
POST | Batch observation ingestion |
/propagations/{object_id} |
GET | Orbit propagation results |
/propagations/batch |
POST | Batch propagation ingestion |
/ground-stations |
GET, POST | Ground station catalog |
| Endpoint | Methods | Description |
|---|---|---|
/telemetry/{object_id} |
GET, POST | Satellite telemetry |
/telemetry/batch |
POST | Batch telemetry ingestion |
| Endpoint | Methods | Description |
|---|---|---|
/conjunctions |
GET, POST | Conjunction events |
/conjunctions/alerts |
GET | Active high-risk alerts |
/conjunctions/{id} |
GET, PATCH | Single event |
/maneuvers |
GET, POST, PATCH | Orbital maneuver logs |
/breakup-events |
GET, POST, PATCH | In-orbit breakup events |
/reentry-events |
GET, POST, PATCH | Atmospheric reentry events |
/space-weather |
GET, POST | Space weather data |
/space-weather/latest |
GET | Most recent observation |
| Endpoint | Methods | Description |
|---|---|---|
/anomaly-alerts |
GET, POST, PATCH | ML-detected anomaly alerts |
/anomaly-alerts/unacknowledged |
GET | Unacknowledged alerts |
/debris-classifications |
GET, POST, PATCH | ML debris type predictions |
/congestion-reports |
GET, POST | Orbital congestion analysis |
| Endpoint | Methods | Description |
|---|---|---|
/atsad/datasets |
GET, POST | ATSADBench dataset registry |
/atsad/models |
GET, POST, PATCH | Anomaly detection model registry |
/atsad/runs |
GET, POST, PATCH | Benchmark evaluation runs |
/atsad/runs/{id}/results |
GET | Results for a specific run |
/atsad/runs/{id}/detections |
GET | Detection events (for visualization) |
/atsad/evaluate |
POST | Auto-compute all ATSADBench metrics |
/atsad/results |
POST | Submit pre-computed results |
/atsad/detections/batch |
POST | Batch detection event ingestion |
/atsad/leaderboard |
GET | Benchmark leaderboard with dynamic sort |
| Endpoint | Methods | Description |
|---|---|---|
/stats/overview |
GET | Dashboard statistics |
ORBITA-ATSAD implements the complete ATSADBench evaluation framework:
| Metric | Description | Range |
|---|---|---|
| Alarm Accuracy | Fraction of predicted alarms overlapping with true anomalies | 0โ1 (higher = better) |
| Alarm Latency | Average delay from anomaly onset to first detection | 0+ time steps (lower = better) |
| Alarm Contiguity | Whether detections are fragmented within anomaly segments | 0โ1 (higher = better) |
| Composite Score | Weighted combination of all ATSADBench metrics | 0โ1 (higher = better) |
- Precision, Recall, F1 Score, Accuracy, AUC-ROC, AUC-PR
- Point-Adjust Precision, Recall, and F1
- Operational: inference time, token usage (LLM cost tracking)
- catalog โ Space object master data, operators, launches, missions
- tracking โ Orbit states, ground stations, observations, propagation results
- telemetry โ Satellite health data (TimescaleDB hypertable)
- analytics โ Conjunction events, space weather, maneuver logs, breakup/reentry events
- ml โ Anomaly alerts, debris classification, congestion reports, ATSAD benchmark
- Temporal data via TimescaleDB hypertables for orbit states, telemetry, and space weather
- Spatial indexing via PostGIS for 3D position queries (ECEF coordinates, SRID 4978)
- Auto-computed fields: periapsis/apoapsis from Keplerian elements, PostGIS geometry from Cartesian coordinates
- Uncertainty tracking: 6x6 covariance matrices stored as JSONB
- Risk classification: Automated collision probability to risk-level mapping
- ATSADBench evaluation engine: Alarm Accuracy, Latency, Contiguity metrics computed server-side
ORBITA/
โโโ backend/
โ โโโ app/
โ โ โโโ api/routes/ # FastAPI route handlers (25 modules)
โ โ โ โโโ space_objects # Core catalog CRUD
โ โ โ โโโ operators # Space agency management
โ โ โ โโโ launch_vehicles # Rocket catalog
โ โ โ โโโ launches # Launch events
โ โ โ โโโ missions # Mission management
โ โ โ โโโ orbits # Orbit state tracking
โ โ โ โโโ observations # Radar/optical tracking
โ โ โ โโโ propagations # Orbit propagation results
โ โ โ โโโ ground_stations # Ground station catalog
โ โ โ โโโ telemetry # Satellite health data
โ โ โ โโโ conjunctions # Collision risk assessment
โ โ โ โโโ maneuvers # Orbital maneuvers
โ โ โ โโโ breakup_events # In-orbit breakup events
โ โ โ โโโ reentry_events # Atmospheric reentry events
โ โ โ โโโ space_weather # Space weather data
โ โ โ โโโ anomaly_alerts # ML anomaly detection
โ โ โ โโโ debris_classifications # ML debris typing
โ โ โ โโโ congestion_reports # Orbital congestion
โ โ โ โโโ benchmark # ATSAD Benchmark
โ โ โ โโโ stats # Dashboard statistics
โ โ โ โโโ physics # ๐ HiFi propagation & collision endpoints
โ โ โ โโโ websockets # ๐ก Real-time WebSocket streaming
โ โ โ โโโ agents # ๐ค Autonomous AI investigation
โ โ โ โโโ kessler # ๐ฅ Kessler Syndrome Simulator
โ โ โโโ physics/ # ๐ High-Fidelity Physics Engine
โ โ โ โโโ frames # TEME โ GCRS โ ITRS transforms
โ โ โ โโโ perturbations # J2, drag, SRP force models
โ โ โ โโโ propagator # DOP853 numerical integrator
โ โ โ โโโ covariance # STM covariance propagation
โ โ โ โโโ breakup_model # NASA Standard Breakup Model
โ โ โ โโโ orbit_determination # Batch least-squares OD
โ โ โ โโโ collision/
โ โ โ โโโ screening # KD-Tree O(N log N) screening
โ โ โ โโโ probability # Alfano/Foster Pc calculation
โ โ โ โโโ cam_optimizer # CAM delta-v optimizer
โ โ โโโ agents/ # ๐ค Autonomous AI Agents
โ โ โ โโโ agent # ReAct agent orchestrator
โ โ โ โโโ config # LLM provider config
โ โ โ โโโ prompts # System prompts
โ โ โ โโโ tools/ # LangChain tools
โ โ โ โโโ db_query # Telemetry & weather queries
โ โ โ โโโ propagation # Orbit simulation tool
โ โ โ โโโ weather_correlator # Event correlation
โ โ โ โโโ report_writer # Incident report generation
โ โ โโโ workers/ # ๐ก Celery Background Tasks
โ โ โ โโโ celery_app # Celery configuration
โ โ โ โโโ scheduler # Beat schedule
โ โ โ โโโ tasks/
โ โ โ โโโ tle_updater # Auto TLE fetch (30 min)
โ โ โ โโโ space_weather # NOAA data fetch (15 min)
โ โ โ โโโ conjunction_scan # Full catalog screen (1 hr)
โ โ โ โโโ telemetry_ingest # Streaming telemetry processor
โ โ โ โโโ kessler_sim # ๐ฅ Kessler simulation pipeline
โ โ โโโ websocket/ # WebSocket real-time layer
โ โ โ โโโ manager # Connection manager
โ โ โ โโโ events # Event type constants
โ โ โโโ auth/ # ๐ Multi-Tenant RBAC
โ โ โ โโโ jwt_handler # Token issue/verify
โ โ โ โโโ rbac # Role hierarchy & permissions
โ โ โ โโโ dependencies # FastAPI auth dependencies
โ โ โ โโโ api_key # API key auth for machines
โ โ โโโ core/ # Config, database setup
โ โ โโโ models/ # SQLAlchemy ORM models (23 models)
โ โ โโโ schemas/ # Pydantic request/response schemas
โ โ โโโ services/ # Business logic
โ โ โโโ main.py # App entry point
โ โโโ tests/
โ โโโ Dockerfile
โ โโโ requirements.txt
โโโ frontend/
โ โโโ src/
โ โโโ components/
โ โ โโโ GlobeView # Original Cesium globe
โ โ โโโ GlobeViewOptimized # ๐ฎ Instanced rendering (10K+ sats)
โ โ โโโ TimelineSlider # ๐ฎ Time scrubbing controls
โ โ โโโ TrajectoryRenderer # ๐ฎ Orbit path polylines
โ โ โโโ DebrisField # ๐ฅ Kessler debris particles
โ โ โโโ Header
โ โ โโโ Sidebar
โ โโโ hooks/
โ โ โโโ useWebSocket # ๐ก Real-time event stream
โ โ โโโ useTimeController # ๐ฎ Playback state
โ โ โโโ useSatelliteStore # ๐ฎ 10K+ object state manager
โ โโโ workers/
โ โ โโโ propagation.worker # ๐ฎ Web Worker SGP4
โ โโโ pages/
โโโ infra/ # ๐ ๏ธ Cloud-Native Infrastructure
โ โโโ k8s/
โ โโโ namespace.yaml
โ โโโ postgres/statefulset.yaml
โ โโโ redis/deployment.yaml
โ โโโ api/deployment.yaml # + HPA autoscaling
โ โโโ worker/deployment.yaml
โ โโโ frontend/deployment.yaml
โ โโโ ingress.yaml
โโโ .github/workflows/
โ โโโ ci.yaml # ๐ ๏ธ CI/CD pipeline
โโโ backend/
โ โโโ db-sql/ # Original schema + seeds
โ โ โโโ 01โ09 ...
โ โ โโโ 10-physics-engine.sql
โ โ โโโ 11-rbac.sql
โโโ docker-compose.yml # DB + Redis + RabbitMQ + API + Worker + Beat + Frontend
โโโ docs/
โโโ README.md
1. Register Dataset POST /api/v1/atsad/datasets
2. Register Model POST /api/v1/atsad/models
3. Create Run POST /api/v1/atsad/runs
4. Run Your Model (external โ your anomaly detection code)
5. Submit Predictions POST /api/v1/atsad/evaluate โ auto-computes all metrics
6. View Leaderboard GET /api/v1/atsad/leaderboard
7. Visualise Results GET /api/v1/atsad/runs/{id}/detections
MIT