aee0f09db8
- Datafabrik: Dockerfile fix, agentorkestrering fungerar - Vision: Identify-modell, FAISS, OCR alla testade - API: Alla 7 integrationstester passerade - Upplösare: Entitetsupplösning verifierad
2.4 KiB
2.4 KiB
Weather Intelligence Pipeline
Produktionsklar pipeline för väderintelligens för vägar.
Arkitektur
┌─────────────────┐
│ WeatherProvider│ ← Hämtar från SMHI
│ (SMHI API) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Rådata │ ← Spara oförändrad
│ (JSON) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ ObservationStore│ ← Idempotent sparande
│ (SQLite) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ RiskEngine │ ← Regelbaserad analys
│ (Risk Score) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Resultat │ ← Varningar + Risker
│ (JSON) │
└─────────────────┘
Komponenter
| Komponent | Fil | Beskrivning |
|---|---|---|
| Provider | providers/weather_provider.py |
Hämtar väderdata från SMHI |
| Storage | storage/observation_store.py |
Sparar observationer idempotent |
| Engine | engine/risk_engine.py |
Regelbaserad riskanalys |
| Pipeline | pipeline.py |
Huvudflöde |
Regler
| Risk | Villkor | Allvarlighet |
|---|---|---|
| Is | Temp < -5°C | Critical |
| Svartis | Temp < 0°C + Nederbörd | Critical |
| Översvämning | Nederbörd > 20mm | Critical |
| Blöt väg | Nederbörd > 5mm | Medium |
| Stark vind | Vind > 15 m/s | Medium |
| Fallande föremål | Vind > 20 m/s | High |
Körning
# Kör pipelinen
python3 pipeline.py
# Kör tester
python3 tests/test_pipeline.py
Dataflöde
- Hämta väderdata från SMHI
- Spara rådata oförändrad
- Skapa normaliserade observationer
- Koppla till väg i databas
- Beräkna risk baserat på regler
- Returnera resultat
Spårbarhet
- All rådata sparas i
raw/ - Alla observationer har timestamp
- Alla observationer har source="smhi"
- Idempotent sparande (dubbletter ignoreras)
Tester
- ✅ Väderdata kan hämtas
- ✅ Observationer sparas idempotent
- ✅ Risker beräknas korrekt
- ✅ Hela pipelinen fungerar