Overview
The Orbital Surveillance layer tracks ~80–120 intelligence-relevant satellites in real time. Satellites are rendered at their actual orbital altitude on the globe with country-coded colors, orbit trails, and ground footprint projections. Globe-only — orbital mechanics don’t translate meaningfully to a flat map projection.What It Shows
Architecture
Data Flow
Cost Model
Key insight: TLE data changes slowly (every 2h), but satellite positions change every second. By shipping TLEs to the browser and doing SGP4 propagation client-side, we get real-time movement with zero ongoing server cost.
Satellite Selection
Two CelesTrak groups are fetched:military (~21 sats) and resource (~164 sats). After deduplication and name-pattern filtering, ~80–120 intelligence-relevant satellites remain.
Filter Patterns
Country Classification
Satellites are classified by operator country: CN, RU, US, EU, IN, KR, JP, IL, or OTHER. Classification is name-based (e.g., YAOGAN → CN, COSMOS → RU, WORLDVIEW → US).Note: US KH-11 spy satellites (USA-224/245/290/314/338) are classified — no public TLEs exist. The tracked satellites are those with publicly available orbital elements.
Technical Details
SGP4 Propagation
The browser usessatellite.js (v6) for SGP4/SDP4 orbital propagation:
initSatRecs()— Parse TLEs intoSatRecobjects once (expensive, cached until TLEs refresh)propagatePositions()— For each satellite:propagate()→eciToGeodetic()→ lat/lng/alt. Also computes 15-point trail (1 per minute, looking back 15 minutes)startPropagationLoop()— Runs every 3 seconds viasetInterval. LEO satellites move ~23km in 3 seconds, producing visible motion on the globe
Globe Rendering
Lifecycle
Circuit Breaker
Client-side fetch uses a circuit breaker: 3 consecutive failures trigger a 10-minute cooldown. Cached data continues to be used during cooldown.Redis Keys
Health Monitoring
api/health.jschecksintelligence:satellites:tle:v1as a standalone key- Seed metadata checked with
maxStaleMin: 180(3h — survives 1 missed cycle)
Backed by endpoints
Files
Tier Availability
Roadmap (Phase 2)
Overhead Pass Prediction
Compute next pass times over user-selected locations (hotspots, conflict zones, bases). Example: “GAOFEN-12 will be overhead Tartus in 14 min.”Revisit Time Analysis
Calculate how often a location is observed by hostile or friendly satellites. Useful for operational security and intelligence gap analysis.Imaging Window Alerts
Push notifications when SAR or optical satellites are overhead a user’s watched regions. Integrates with Pro delivery channels (Slack, Telegram, WhatsApp, Email).Sensor Swath Visualization
Replace nadir-point footprints with actual field-of-view cones based on satellite sensor specs and orbital altitude.Cross-Layer Correlation
Detect intelligence-relevant patterns by combining satellite positions with other layers:- Satellite + GPS jamming zone → electronic warfare context
- Satellite + conflict zone → battlefield ISR detection
- Satellite + AIS gap → maritime reconnaissance indicator
