Files
boc/life-weather/README.md
T
Bernt aee0f09db8 landvex: Fixar och tester klara för alla komponenter
- Datafabrik: Dockerfile fix, agentorkestrering fungerar
- Vision: Identify-modell, FAISS, OCR alla testade
- API: Alla 7 integrationstester passerade
- Upplösare: Entitetsupplösning verifierad
2026-07-05 06:41:32 +00:00

90 lines
2.4 KiB
Markdown

# 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
```bash
# Kör pipelinen
python3 pipeline.py
# Kör tester
python3 tests/test_pipeline.py
```
## Dataflöde
1. Hämta väderdata från SMHI
2. Spara rådata oförändrad
3. Skapa normaliserade observationer
4. Koppla till väg i databas
5. Beräkna risk baserat på regler
6. 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