Skip to content

Latest commit

ย 

History

271 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ORBITA

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.


The Problem

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

Recent Development

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

Preliminary Findings

Scenario LLM Performance
Univariate tasks โœ… Strong performance
Multivariate telemetry โŒ Approaches random guessing
RAG augmentation โš ๏ธ No significant improvement
Few-shot learning โš ๏ธ Modest gains only

The Gap

The benchmark exists, but nobody has built an integrated platform that allows systematic testing, visualization, and operational deployment of these models.

Our Novel Contribution

ORBITA-ATSAD bridges the gap between benchmark evaluation and operational deployment:

  1. ORBITA as the data backend โ€” Full spacecraft catalog, orbit tracking, and telemetry management
  2. ATSADBench evaluation framework as a service โ€” Register models, submit predictions, auto-compute all metrics
  3. Visualization dashboards โ€” Time-series anomaly detection results, leaderboards, per-channel analysis
  4. Extensible model registry โ€” Test your own novel detection methods alongside baselines
  5. Operational pipeline โ€” From benchmark validation to real-time anomaly monitoring

Architecture

[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]

Tech Stack

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

Quick Start

Prerequisites

  • Docker & Docker Compose
  • Git

1. Clone & Start

git clone <repo-url> orbita-platform
cd orbita-platform

# Start all services (database + API + pgAdmin + Redis)
docker compose up -d

2. Verify

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

2.1 Database Migrations (Alembic)

cd backend
alembic upgrade head

Alembic 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_seeds creates 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

3. API Endpoints

All routes are prefixed with /api/v1.

Core Catalog

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

Tracking & Orbits

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

Telemetry

Endpoint Methods Description
/telemetry/{object_id} GET, POST Satellite telemetry
/telemetry/batch POST Batch telemetry ingestion

Analytics & Events

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

ML & Anomaly Detection

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

๐Ÿ†• ATSAD Benchmark

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

Dashboard

Endpoint Methods Description
/stats/overview GET Dashboard statistics

ATSADBench Metrics

ORBITA-ATSAD implements the complete ATSADBench evaluation framework:

User-Oriented Metrics (Novel)

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)

Standard Metrics

  • Precision, Recall, F1 Score, Accuracy, AUC-ROC, AUC-PR
  • Point-Adjust Precision, Recall, and F1
  • Operational: inference time, token usage (LLM cost tracking)

Database Schema

Schemas

  • 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

Key Features

  • 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

Project Structure

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

Benchmark Workflow

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

License

MIT

About

Integrated platform bridging ATSADBench evaluation and operational deployment of LLM-based anomaly detection on spacecraft telemetry. Features real-time telemetry management, model registry, automated metric computation (Alarm Accuracy/Latency/Contiguity), and visualization dashboards built on orbital mechanics infrastructure.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages