You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In February 2025, a storm turned Kefalonia's dry valleys into rivers. Roads washed out. Homes flooded. A speedboat was deployed to rescue residents in Peratata, the worst flooding there in 60 years.
Afterward, I ran the drainage model against the storm reports to see whether it would have pointed at the right places. It did.
The problem
Kefalonia has no public ground-truth flow gauges. When the February 2025 storm hit, the civil protection alert arrived after the water, not before. Roads became rivers. Ravines became death traps. And the only way to know which road was gone was to drive there and check.
I started with a question: can I rank where the water goes before the rain starts?
The model
Three inputs, blended into one drainage risk score:
Drainage convergence (45%): D8 flow accumulation over the 30 m DEM. Every cell drains to its lowest neighbour. Convergence is scored log-scale from 900 m² to 10 km². Where flow concentrates, risk follows.
Receiving slope (30%): how steep the ground is where the water arrives.
Upstream burn fraction (25%): burned slopes shed water instead of absorbing it.
No rainfall data, by design. The model runs on rainless January imagery, so burn scars are visible and clouds are not. A screening layer answers "where is the island exposed?" not "when will it flood."
The validation
The pipeline: Copernicus DEM GLO-30 (2 tiles, N37/N38 x E020), fill pits, D8 flow direction, flow accumulation, log-scale convergence, weighted blend, overlay against 12,217 road segments and 22,013 building footprints in PostGIS.
Then the test, against the February 2025 storm reports:
Table
Ravine
Model Score
News Report
Verdict
Τραπεζάκι
97.5
"The beach no longer exists." Homes and businesses flooded.
Hit
Πόρος
96.9
The coastal road became a torrent.
Hit
Περατάτα
94.6
Speedboat deployed to rescue residents. Worst flooding in 60 years.
Hit
Βλαχάτα
69.2
Flooding reported mid-slope; the model pointed at the ravines below the village.
Partial
The model ranked reality correctly. Not because it is magic. Water follows gravity, and gravity is easier to model than politics. And the Βλαχάta row matters: a mid-score partial hit proves the table is not cherry-picked.
The honest part
The model does not know about culverts. It does not know about drainage ditches maintained by the municipality. It does not know about the concrete channel someone poured behind their house in 2019.
It also has two structural blind spots, and they have names:
Katavothres. The sinkholes near Argostoli score as top flood risk. They are not. The water drains into the island and comes out at sea level on the other side. Karst laughs at D8.
Livadi. The storm's worst flooding was rain pooling on a flat valley floor. A flow-accumulation model structurally cannot see standing water that has nowhere to flow. Local knowledge caught it. v1.1 will add a pluvial term.
So the drainage layer is a screening baseline, not a hydrodynamic simulation. It tells you where to look, not what will happen. Directionally validated, not calibrated.
What is next
Build Log #5: The Road That Shouldn't Exist. A Fiskardo routing forensic.
If you know Greek hydrology data, municipal drainage records, or post-February 2025 storm damage assessments, I need you.
Built in Kefalonia. Watching over the places we call home.
In February 2025, a storm turned Kefalonia's dry valleys into rivers. Roads washed out. Homes flooded. A speedboat was deployed to rescue residents in Peratata, the worst flooding there in 60 years.
Afterward, I ran the drainage model against the storm reports to see whether it would have pointed at the right places. It did.
The problem
Kefalonia has no public ground-truth flow gauges. When the February 2025 storm hit, the civil protection alert arrived after the water, not before. Roads became rivers. Ravines became death traps. And the only way to know which road was gone was to drive there and check.
I started with a question: can I rank where the water goes before the rain starts?
The model
Three inputs, blended into one drainage risk score:
Drainage convergence (45%): D8 flow accumulation over the 30 m DEM. Every cell drains to its lowest neighbour. Convergence is scored log-scale from 900 m² to 10 km². Where flow concentrates, risk follows.
Receiving slope (30%): how steep the ground is where the water arrives.
Upstream burn fraction (25%): burned slopes shed water instead of absorbing it.
No rainfall data, by design. The model runs on rainless January imagery, so burn scars are visible and clouds are not. A screening layer answers "where is the island exposed?" not "when will it flood."
The validation
The pipeline: Copernicus DEM GLO-30 (2 tiles, N37/N38 x E020), fill pits, D8 flow direction, flow accumulation, log-scale convergence, weighted blend, overlay against 12,217 road segments and 22,013 building footprints in PostGIS.
Then the test, against the February 2025 storm reports:
Table
Ravine
Model Score
News Report
Verdict
Τραπεζάκι
97.5
"The beach no longer exists." Homes and businesses flooded.
Hit
Πόρος
96.9
The coastal road became a torrent.
Hit
Περατάτα
94.6
Speedboat deployed to rescue residents. Worst flooding in 60 years.
Hit
Βλαχάτα
69.2
Flooding reported mid-slope; the model pointed at the ravines below the village.
Partial
The model ranked reality correctly. Not because it is magic. Water follows gravity, and gravity is easier to model than politics. And the Βλαχάta row matters: a mid-score partial hit proves the table is not cherry-picked.
The honest part
The model does not know about culverts. It does not know about drainage ditches maintained by the municipality. It does not know about the concrete channel someone poured behind their house in 2019.
It also has two structural blind spots, and they have names:
Katavothres. The sinkholes near Argostoli score as top flood risk. They are not. The water drains into the island and comes out at sea level on the other side. Karst laughs at D8.
Livadi. The storm's worst flooding was rain pooling on a flat valley floor. A flow-accumulation model structurally cannot see standing water that has nowhere to flow. Local knowledge caught it. v1.1 will add a pluvial term.
So the drainage layer is a screening baseline, not a hydrodynamic simulation. It tells you where to look, not what will happen. Directionally validated, not calibrated.
What is next
Build Log #5: The Road That Shouldn't Exist. A Fiskardo routing forensic.
If you know Greek hydrology data, municipal drainage records, or post-February 2025 storm damage assessments, I need you.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
In February 2025, a storm turned Kefalonia's dry valleys into rivers. Roads washed out. Homes flooded. A speedboat was deployed to rescue residents in Peratata, the worst flooding there in 60 years.
Afterward, I ran the drainage model against the storm reports to see whether it would have pointed at the right places. It did.
The problem
Kefalonia has no public ground-truth flow gauges. When the February 2025 storm hit, the civil protection alert arrived after the water, not before. Roads became rivers. Ravines became death traps. And the only way to know which road was gone was to drive there and check.
I started with a question: can I rank where the water goes before the rain starts?
The model
Three inputs, blended into one drainage risk score:
No rainfall data, by design. The model runs on rainless January imagery, so burn scars are visible and clouds are not. A screening layer answers "where is the island exposed?" not "when will it flood."
The validation
The pipeline: Copernicus DEM GLO-30 (2 tiles, N37/N38 x E020), fill pits, D8 flow direction, flow accumulation, log-scale convergence, weighted blend, overlay against 12,217 road segments and 22,013 building footprints in PostGIS.
Then the test, against the February 2025 storm reports:
Table
The model ranked reality correctly. Not because it is magic. Water follows gravity, and gravity is easier to model than politics. And the Βλαχάta row matters: a mid-score partial hit proves the table is not cherry-picked.
The honest part
The model does not know about culverts. It does not know about drainage ditches maintained by the municipality. It does not know about the concrete channel someone poured behind their house in 2019.
It also has two structural blind spots, and they have names:
So the drainage layer is a screening baseline, not a hydrodynamic simulation. It tells you where to look, not what will happen. Directionally validated, not calibrated.
What is next
Build Log #5: The Road That Shouldn't Exist. A Fiskardo routing forensic.
If you know Greek hydrology data, municipal drainage records, or post-February 2025 storm damage assessments, I need you.
Links:
Built in Kefalonia. Watching over the places we call home.
In February 2025, a storm turned Kefalonia's dry valleys into rivers. Roads washed out. Homes flooded. A speedboat was deployed to rescue residents in Peratata, the worst flooding there in 60 years.Afterward, I ran the drainage model against the storm reports to see whether it would have pointed at the right places. It did.
The problem
Kefalonia has no public ground-truth flow gauges. When the February 2025 storm hit, the civil protection alert arrived after the water, not before. Roads became rivers. Ravines became death traps. And the only way to know which road was gone was to drive there and check.
I started with a question: can I rank where the water goes before the rain starts?
The model
Three inputs, blended into one drainage risk score:
Drainage convergence (45%): D8 flow accumulation over the 30 m DEM. Every cell drains to its lowest neighbour. Convergence is scored log-scale from 900 m² to 10 km². Where flow concentrates, risk follows.
Receiving slope (30%): how steep the ground is where the water arrives.
Upstream burn fraction (25%): burned slopes shed water instead of absorbing it.
No rainfall data, by design. The model runs on rainless January imagery, so burn scars are visible and clouds are not. A screening layer answers "where is the island exposed?" not "when will it flood."
The validation
The pipeline: Copernicus DEM GLO-30 (2 tiles, N37/N38 x E020), fill pits, D8 flow direction, flow accumulation, log-scale convergence, weighted blend, overlay against 12,217 road segments and 22,013 building footprints in PostGIS.
Then the test, against the February 2025 storm reports:
Table
The model ranked reality correctly. Not because it is magic. Water follows gravity, and gravity is easier to model than politics. And the Βλαχάta row matters: a mid-score partial hit proves the table is not cherry-picked.
The honest part
The model does not know about culverts. It does not know about drainage ditches maintained by the municipality. It does not know about the concrete channel someone poured behind their house in 2019.
It also has two structural blind spots, and they have names:
Katavothres. The sinkholes near Argostoli score as top flood risk. They are not. The water drains into the island and comes out at sea level on the other side. Karst laughs at D8.
Livadi. The storm's worst flooding was rain pooling on a flat valley floor. A flow-accumulation model structurally cannot see standing water that has nowhere to flow. Local knowledge caught it. v1.1 will add a pluvial term.
So the drainage layer is a screening baseline, not a hydrodynamic simulation. It tells you where to look, not what will happen. Directionally validated, not calibrated.
What is next
Build Log #5: The Road That Shouldn't Exist. A Fiskardo routing forensic.
If you know Greek hydrology data, municipal drainage records, or post-February 2025 storm damage assessments, I need you.
Links:
https://argos-geo.org/map
https://github.com/argos-geo/kefalonia-digital-twin
[Previous Build Log: Why the model thinks Greek firs burn like pine](Build Log #3: Why the model thinks Greek firs burn like pine #3)
Built in Kefalonia. Watching over the places we call home.
All reactions