Event-driven geospatial pipeline
Pulls aircraft, satellite and world-event feeds into one live map and answers which events are related in space and time, with an analyst confirming what matters.
- Python
- FastAPI
- Redis Streams
- PostGIS
- TimescaleDB
- React
How it works
- Public feedsaircraft, orbits, news
- Ingestionretries, dead-letter queue
- Fusionnear in space and time
- Alert scoringrules, plain explanations
- Orbital timing2 s budget, backup math
- Analyst reviewconfirm, dismiss, escalate
Decisions that matter
One slow feed cannot stall the rest
Events move through Redis streams with consumer groups, retries and a dead-letter path. A feed that stalls or sends bad data is set aside while the others keep flowing.
Related means near in space and time
Fusion joins events that fall within a set distance and time window using PostGIS, and saves the links as a graph, so an analyst can see why two events were grouped.
A slow dependency costs accuracy, not the answer
Orbital timing asks an outside model with a 1.75-second timeout, inside the gateway's 2-second budget. When that model is slow or offline, a standard satellite-orbit calculation (SGP4) answers instead.
A person decides
Alerts land in an analyst queue where they can be confirmed, dismissed or escalated, and each decision is kept as a label for later model training.
Limits
A working build on public data. The learned anomaly models are placeholders: alerts are scored by hand-written rules, with plain-language explanations from templates.
