|
| 1 | +# Aegis — Event-Driven Disaster Intelligence Pipeline |
| 2 | + |
| 3 | +[](https://github.com/VenkateswarluNagineni/aegis-disaster-intel/actions/workflows/ci.yml) |
| 4 | +[](https://www.python.org/downloads/) |
| 5 | +[](LICENSE) |
| 6 | + |
| 7 | +Ingests **live public hazard feeds** (wildfires, earthquakes, severe weather), enriches |
| 8 | +each event with an **agentic LLM workflow**, scores **geospatial risk**, and serves a |
| 9 | +**RAG query layer** so an analyst can ask "what's escalating near these assets right now?" |
| 10 | + |
| 11 | +Ingestion is **event-driven** — feeds fire updates that trigger processing — not naive |
| 12 | +polling, with **change-detection and dedup** so the same event isn't reprocessed or |
| 13 | +double-counted. |
| 14 | + |
| 15 | +> Why it exists: disaster response needs *fresh, deduplicated, enriched, location-aware* |
| 16 | +> signal. This pipeline mirrors that end to end on real open data. |
| 17 | +
|
| 18 | +## Architecture |
| 19 | + |
| 20 | +```mermaid |
| 21 | +flowchart LR |
| 22 | + subgraph Sources |
| 23 | + F[NASA FIRMS<br/>active fires] |
| 24 | + Q[USGS<br/>earthquakes] |
| 25 | + W[NOAA / NWS<br/>alerts] |
| 26 | + end |
| 27 | + F & Q & W --> ING[Event-driven ingestors<br/>change-detection + dedup] |
| 28 | + ING --> N[Normalize to<br/>HazardEvent schema] |
| 29 | + N --> EN[Agentic enrichment<br/>LangChain: geocode, classify,<br/>summarize, severity] |
| 30 | + EN --> GEO[Geospatial risk scoring<br/>haversine / H3, asset proximity] |
| 31 | + GEO --> ST[(Store: events +<br/>FAISS vector index)] |
| 32 | + ST --> RAG[RAG query API<br/>'what's escalating near X?'] |
| 33 | + AF[Airflow] -. schedules backfills & sweeps .-> ING |
| 34 | +``` |
| 35 | + |
| 36 | +## What makes it different |
| 37 | + |
| 38 | +- **Event-driven, not polling** — change-detection on feed state; only new/changed events flow. |
| 39 | +- **Agentic enrichment** — an LLM workflow geocodes, classifies hazard type, estimates |
| 40 | + severity, and writes an analyst-ready summary, with validation guards. |
| 41 | +- **Geospatial-first** — proximity-to-asset risk scoring, not just a table of rows. |
| 42 | +- **RAG over live events** — natural-language situational queries with citations. |
| 43 | + |
| 44 | +## Tech stack |
| 45 | + |
| 46 | +`Python 3.11` · `LangChain` (agentic enrichment) · `FAISS` · `GeoPandas / H3` · |
| 47 | +`Airflow` · real APIs: `NASA FIRMS`, `USGS`, `NOAA/NWS` · `Docker` |
| 48 | + |
| 49 | +## Status |
| 50 | + |
| 51 | +🚧 Built in public, in phases — see **[ROADMAP.md](ROADMAP.md)**. Each phase ships tested |
| 52 | +code + a design note in [`docs/`](docs/). |
| 53 | + |
| 54 | +## Quickstart |
| 55 | + |
| 56 | +```bash |
| 57 | +pip install -e ".[dev]" |
| 58 | +pytest |
| 59 | +``` |
| 60 | + |
| 61 | +## License |
| 62 | + |
| 63 | +MIT © Venkateswarlu Nagineni |
0 commit comments