IJssel Waterlab  ·  experimentele onderzoeksomgeving  ·  NVIDIA Jetson AGX Orin

1 · Wat is deze proef?

Dit dashboard toont resultaten van het Wflow SBM hydrologisch model, gedraaid op een NVIDIA Jetson AGX Orin — een compact ARM-gebaseerd edge-apparaat, normaal gebruikt voor AI-inferentie aan de rand van het netwerk. Het doel was te testen of een volledige hydrologische modelleeropzet (invoerdata, simulatie, export, webdashboard) volledig autonoom op zo'n apparaat kan draaien, zonder cloud en zonder x86-werkstation.

Wflow SBM is een fysisch-gebaseerd neerslagregelmodel ontwikkeld door Deltares en beschikbaar als open-source Julia-pakket. Het modelleert bodemwater, grondwater, laterale afvoer en rivierrouting op een rastergrid — in dit geval het IJssel-stroomgebied op ~800 m resolutie.

Hardware
Jetson AGX Orin
aarch64 ARM · 64 GB · 12-core
Model
Wflow SBM 1.0.2
Julia 1.12 · 3-laags bodem · kinematische golf
Domein
300 × 240 cellen
~800 m · 19 490 actieve cellen
Forcing
ERA5-Land
neerslag · temp · ET · dagelijks
Simulatie jan 1995
62 tijdstappen
runtime ~31 s (na JIT)
Simulatie jul 2021
123 tijdstappen
runtime ~2 min (JIT warm)

Netwerktoegang vanuit de iPad gaat via Tailscale — een overlay-VPN dat directe communicatie mogelijk maakt ondanks WiFi AP-isolatie op het lokale netwerk. Het dashboard wordt geserveerd door FastAPI/uvicorn en toont rivierdebieten via deck.gl 3D-kolommen.

2 · Lessons learned (samenvatting)

De volledige rapportage is beschikbaar in LESSONS_LEARNED.md. Hieronder de meest impactvolle bevindingen voor Deltares en toekomstige gebruikers.

#ProbleemOorzaakFixImpact
1 JIT-compilatie 2–3 uur op ARM CFTime.jl type-instabiliteit → LLVM-cascade op aarch64 Type-stabiele Period-constructor; @nospecialize in Wflow Blokkerend
2 c_layer heeft 3 lagen, model verwacht 4 Wflow voegt intern een NaN-schildwacht laag toe: maxlayers = n+1 NetCDF hergebouwd met 4 lagen Blokkerend
3 Beginstaat mist time-dimensie set_states! eist 3D/4D met time=1 NetCDF herbouwd met singleton tijdsdimensie Blokkerend
4 3 cellen buiten ERA5-dekking Bounding box te krap; uitlaat IJsselmeer net buiten grid Nearest-neighbour invulling Blokkerend
5 Kampen-meetpunt niet op riviernetwerk 800 m resolutie: geografische stad ≠ model-riviercel Coördinaten gesnapped naar uitlaatcel (5.496, 53.221) Blokkerend
6 iPad kon dashboard niet bereiken WiFi AP-clientisolatie blokkeert peer-to-peer op poort 8000 Tailscale overlay-netwerk Blokkerend
7 Python cdsapi crasht op ARM attrs-namespace ontbreekt in Python 3.10 systeem-installatie Installatiedependencies in apart --target-pad Oplosbaar
8 Browser laadt oude JavaScript Safari op iPad cached app.js agressief ?v=N cache-busting + Cache-Control: no-store Oplosbaar

Tijdsinvestering: ~12 uur voor de 1995-opzet (waarvan ~7 uur aan ARM-specifieke technische problemen), ~3 uur voor 2021 + dashboard-uitbreiding. Met deze kennis vooraf ingepast: ~2–3 uur totaal.

3 · Analyse resultaten Juli 2021

De juli 2021 Rijn-vloed was de zwaarste in Duitsland en Nederland in decennia. Bij Lobith (meetpunt Pannerdense Kop) bereikte de Rijn een piek van 6 687 m³/s op 18 juli 2021 (bron: RWS Waterinfo, station lobith.bovenrijn.tolkamer). De simulatie is twee keer uitgevoerd: eerst met een synthetische inflow-schatting, daarna met de werkelijk gemeten debietreeks.

⚠ Bronnen van de synthetische inflow — en waarom ze faalkten

Bij de eerste opzet was de RWS Waterinfo REST API niet beschikbaar (het oude eindpunt gaf "Exceeded 30 redirects" doordat het in april 2026 was vervangen). De inflow bij Westervoort werd daarom synthetisch opgebouwd uit twee aannames:

AannameBronGebruikte waardeWerkelijk (RWS)Fout
Lobith piekdebiet RWS waterstandsberichten jul 2021
(persbericht, niet gevalideerde meting)
~8 900 m³/s op 15 jul 6 687 m³/s op 18 jul +33%
IJssel-aandeel bij hoog water Vuistregel voor gemiddelde Rijnverdeling
(langjarig gemiddelde ~18–25%)
25% 13,4% (899 / 6 687) +87%
Resulterende inflow Westervoort 8 900 × 25% = 2 225 m³/s 2 200 m³/s 899 m³/s ×2,45

Waarom week het IJssel-aandeel zo sterk af? Bij extreme afvoer op de Rijn reguleert Rijkswaterstaat actief de verdeling bij de Pannerdense Kop. Bij de jul-2021 golf werd meer water naar de Waal geleid om benedenrivierafvoer te spreiden. Het langjarig gemiddelde van ~25% is dus géén betrouwbare schatting tijdens hoogwater — juist het moment dat het er toe doet.

Simulatievergelijking: synthetisch vs. gemeten inflow

Piek Kampen — synthetische inflow
3 090 m³/s
16 jul 2021
Piek Kampen — gemeten inflow (RWS)
1 767 m³/s
17 jul 2021
Dagen boven 1 500 m³/s — synthetisch
14
drempel overschreden
Dagen boven 1 500 m³/s — gemeten inflow
2
drempel overschreden
Piek inflow Westervoort (model-randconditie)
Synthetisch: 2 200 m³/s  (8 900 × 25% — vuistregel + persbericht)
Gemeten RWS: 899 m³/s  (station westervoort.ijsselkop)
Gesimuleerd piekdebiet Kampen (model-uitvoer)
Synthetische run: 3 090 m³/s
Gemeten-inflow run: 1 767 m³/s

Leerpunten

Gemeten referentiedata (RWS Waterinfo)

Lobith piek (Rijn totaal)
6 687 m³/s
18 jul 2021 · station lobith.bovenrijn.tolkamer
Westervoort piek (IJssel)
899 m³/s
18 jul 2021 · station westervoort.ijsselkop
IJssel-aandeel werkelijk
13,4%
899 / 6 687 · vs. aangenomen 25%
API-bron
rws-waterinfo 1.0.1
ddapi20-waterwebservices.rijkswaterstaat.nl
Huidig debiet Kampen
m³/s · RWS + routing
Verwacht max 14 dagen
m³/s
Neerslag komende 14 d
mm totaal · Open-Meteo
Waakzaamheidsniveau
drempel: 1500 m³/s
Indicatieve verwachting — geen gekalibreerd model. Gebaseerd op statistisch recessiemodel toegepast op RWS Waterinfo debietsmeting (Westervoort) + neerslagimpulsrespons (Open-Meteo ERA5/IFS, 14 dagen). Marge neemt toe tot ±70% op dag 14. Gebruik RWS waterstandsberichten voor operationele beslissingen. Bron: RWS Waterinfo (meting) · Open-Meteo (neerslag) · cache 15 min.
🌊 Voor iedereen Geen technische kennis vereist

1 · Hoe werkt het Rijn–IJssel systeem?

De IJssel is geen zelfstandige rivier maar een zijtak van de Rijn. Al het water in de IJssel komt via de Rijn uit de Alpen en het Middenrijngebied. Bij Lobith (bij Zevenaar) passeert de Rijn de grens. Verderop, bij de Pannerdense Kop, splitst de stroom zich op in drie richtingen.

Rijn
Lobith
100% · grens NL/DE
Splitsing
Pannerdense Kop
actief geregeld door RWS
~13% IJssel → Westervoort → Deventer → Kampen → IJsselmeer dit model
~22% Neder-Rijn → Lek → Rotterdam
~67% Waal → Nijmegen → Rotterdam

Als de Rijn hoog staat door smeltwater of extreme regenval in Duitsland stijgt ook de IJssel. Bij Kampen mondt de IJssel uit in het IJsselmeer. Als het water te hoog stijgt, moeten dijken het tegenhouden — of ze houden het niet meer.

2 · Wat zie je op de kaart?

De kaart toont het IJssel-stroomgebied van Westervoort (bij Arnhem) tot Kampen. Elke 3D-staaf is één rastercel van ~800 × 800 meter.

Blauw — normaal
< 40% van de piek
Reguliere waterafvoer
Oranje — verhoogd
40–70% van de piek
Boven-gemiddelde afvoer
Rood/Paars — extreem
> 70% van de piek
Hoogwater

3 · Twee hoogwatergolven: 1995 en 2021

Januari 1995
🌧 Oorzaak: langdurige regen over heel West-Europa
📍 Rijn piek Lobith: ~12.600 m³/s op 31 jan
📊 IJssel piek Kampen: ~3.340 m³/s (gesimuleerd)
🚨 250.000 mensen preventief geëvacueerd
🛡 Dijken hielden ternauwernood stand
🌡 Neerslag +182% boven klimaatnorm (KNMI)
⏱ 16 dagen boven hoogwater-drempel (1.500 m³/s)
Juli 2021
Oorzaak: extreme buien boven Eifel en Ardennen
📍 Rijn piek Lobith: 6.687 m³/s op 18 jul (RWS)
📊 IJssel piek Kampen: 1.767 m³/s (sim. gemeten inflow)
🇩🇪 Ahr-vallei: meer dan 180 doden, duizenden huizen verwoest
🇳🇱 Nederland: verhoogde waakzaamheid, geen evacuaties
🌡 Neerslag +120% boven zomernorm (ERA5)
⏱ 2 dagen boven hoogwater-drempel (1.500 m³/s)

Het debiet bij Kampen in 1995 (~3.340 m³/s) was bijna twee keer zo hoog als in 2021 (1.767 m³/s). In 1995 bleef de IJssel wekenlang boven de hoogwater-drempel; in 2021 slechts twee dagen. Toch veroorzaakte 2021 meer maatschappelijke schade — doordat het water bovenstrooms in Duitsland veel sneller steeg dan verwacht.

4 · Wat doet een simulatie?

Een hydrologisch model berekent hoe neerslag door een stroomgebied beweegt — dag voor dag, cel voor cel. Vergelijk het met een weersverwachting: maar dan voor water.

🌧
Neerslag
ERA5 historische weerdata van ECMWF
🌱
Bodem
Infiltratie, grondwater, verdamping
💧
Afstroming
Via beken naar de rivier
📊
Debiet
m³/s per cel en bij Kampen

De ERA5-weerdata is historische, gereconstrueerde atmosfeerdata van het Europees Centrum voor Weersverwachtingen (ECMWF) — nauwkeurig gereconstrueerd aan de hand van satellieten en grondwaarnemingen, terug tot 1950. Geen voorspelling, maar een zo goed mogelijk beeld van wat er werkelijk gevallen is.

Bovenop de lokale neerslag voeren we het dagelijkse debiet van de Rijn in bij Westervoort (het punt waar de IJssel begint). Voor 2021 is dit de werkelijk gemeten reeks van Rijkswaterstaat. Het model combineert beide tot een dagelijkse schatting van de waterafvoer langs de volledige IJssel.

Techniek & Hydrologie Voor de geïnteresseerde

5 · Wflow SBM modelarchitectuur

Wflow SBM (Simple Bucket Model) is een gedistribueerd hydrologisch rastermodel van Deltares, gebouwd in Julia en open-source beschikbaar. Per rastercel wordt een meerlaagsbodemmodel doorgerekend:

Rastergrootte
~800 m
300 × 240 cellen · 19.490 actief
Tijdstap
1 dag
dagelijkse forcingdata
Bodemmodel
3 lagen SBM
+ kinematische golf routing
Runtime na JIT
~31 s / ~2 min
1995 (62 t) / 2021 (123 t) · Jetson Orin

De kinematische golfvergelijking is een vereenvoudiging van de volledige Saint-Venant vergelijkingen die de versnellingstermen verwaarloost. Dit werkt goed voor sub-kritieke stroming in rivierbeddingen maar mist retentie-effecten in uiterwaarden en is niet geschikt voor inundatiemodellering.

6 · Invoerdata en randcondities

Het model heeft drie soorten invoer:

TypeBronResolutieVerwerking
Statische kaarten MERIT Hydro DEM · SOILGRIDS · Copernicus Land Cover ~90 m → 800 m HydroMT model builder (eenmalig)
Forcingdata ERA5-Land via Copernicus Climate Data Store ~9 km → 800 m Bilineaire interpolatie · P, T, PET dagelijks
Randconditie (inflow) RWS Waterinfo · station westervoort.ijsselkop Daggemiddeld Q (m³/s) Puntbron in forcing NetCDF op IJssel-begincel

De randconditie bij Westervoort is de dominante stuurvariabele: hier "begint" het model. Fouten in deze waarde propageren direct door het hele stroomgebied — zoals gedemonstreerd door de vergelijking van de synthetische (×2,45 te hoog) en de gemeten run van 2021. Zie de Info & Analyse-tab voor de kwantitatieve analyse.

Cold start: de begintoestand van bodemvochtigheid en grondwater is niet geïnitialiseerd vanuit een voorgaande simulatieperiode. Operationele modellen draaien typisch 1–3 jaar spin-up vooraf om stabiele initiële condities te bereiken.

7 · De Pannerdense Kop: geen vaste verdeling

De verdeling van het Rijnwater is wettelijk vastgelegd in het Tractaat van 1709, maar in de praktijk stuurt Rijkswaterstaat actief bij via stuwen bij de Pannerdense Kop en Driel:

TakTractaat 1709Praktijk gemiddeldJuli 2021 gemeten
Waal 6/9 ≈ 66,7% ~65% ~86,6%
Neder-Rijn / Lek 2/9 ≈ 22,2% ~18–22%
IJssel 1/9 ≈ 11,1% ~13–18% 13,4% (899 / 6.687 m³/s)

Bij de synthetische run werd 25% aangenomen — een fout gebaseerd op een langjarig gemiddelde dat bij extreme afvoer niet geldt. Bij hoogwater stuurt RWS actief meer water naar de Waal om IJssel en Lek te ontlasten. De IJssel-inflow was daardoor een factor 2,45 overschat, wat doorwerkte in een gesimuleerde piek van 3.090 m³/s in plaats van 1.767 m³/s.

Leerpunt: gebruik altijd gemeten debieten van RWS Waterinfo als randconditie — met name bij hoog water, wanneer de verdeling het meest afwijkt van gemiddelden.

8 · Beperkingen en validiteit

🤖
Ensemble nog niet uitgevoerd
Voer de ensemble simulatie uit om resultaten te zien:

python run_ensemble.py

De vijf scenario's (neerslag ×0.70 t/m ×1.30) worden sequentieel gesimuleerd en de resultaten worden hier automatisch zichtbaar.
⚗ Experimentele omgeving

IJssel Waterlab

Dit is een experimentele onderzoeksomgeving op een NVIDIA Jetson AGX Orin (ARM64 edge computer), volledig offline draaiend zonder cloud of externe API's. Hier worden drie typen proeven gecombineerd: historische simulaties (1995, 2018, 2021), een live verwachting gebaseerd op open data, en een AI-gestuurde multimodel pipeline waarbij Ribasim, wflow SBM en een lokale LLM samenwerken. De resultaten zijn indicatief en geschikt voor demonstratie en onderzoek — niet voor operationeel waterbeheer.

wflow SBMRibasimJuliaERA5-Land Qwen2.5-32BFastAPIMapLibre GLARM64 Jetson
6.687 m³/s
Proef 1 · Historische simulatie
Hoogwater — januari 1995
De zwaarste Rijnvloed in decennia. Lobith bereikte 6.687 m³/s; 250.000 mensen werden geëvacueerd. wflow SBM simuleert 90 dagen op ERA5-Land forcing met kinematische golfrouting.
~600 m³/s · normaal 2.000
Proef 2 · Droogte simulatie
Droogte — zomer 2018
Ernstigste droogte in Nederland in decennia. Lobith zakte naar ~600 m³/s — 70% onder normaal. ERA5-Land forcing mei–aug 2018; wflow op echte droogte-condities.
Piek Maas · Limburg · Luik
Proef 3 · Historische simulatie
Hoogwater — juli 2021
Extreme neerslag in 48 uur boven Ardennen en Eifel veroorzaakte catastrofale overstromingen langs Maas en Roer. Vergelijking met ERA5 forcing en RWS meetreeksen.
nu Open-Meteo + RWS Waterinfo
Proef 4 · Live verwachting
14-daagse verwachting
Actuele debietsverwachting bij Kampen op basis van Open-Meteo weersvoorspelling en RWS Waterinfo meetdata. Automatisch ververst; onzekerheidsband zichtbaar.
×1.30 ×1.15 ×1.00 ×0.85 ×0.70 AI
Proef 5 · Ensemble + AI interpretatie
Ensemble AI — neerslag scenario's
Vijf neerslag-scenario's (×0.70–×1.30 multiplier) draaien parallel in wflow SBM. Qwen2.5-32B (lokale LLM) interpreteert de spread en geeft een hydrologisch advies.
Ribasim netwerk LLM orchestrator wflow ×5 scenario wflow ERA5 2018 wflow analyse
Proef 6 · AI-gestuurde multimodel pipeline
Multimodel — Ribasim + LLM + wflow
Ribasim (Julia-solver) simuleert het Rijn/IJssel-netwerk. Een LLM identificeert de kritieke knoop en stuurt automatisch vijf wflow-droogte-scenario's aan. Volledig on-device op ARM64.