DOI: 10.5281/zenodo.17526999
title: Data and analysis scripts underpinning "The first comprehensive estimate of global flood risk"

description: Introduction

This repository contains the data and code underpinning the under-review paper, The first comprehensive estimate of global flood risk by Wing et al.

The README files within each data and scripts archive describes each file in detail, and are also reproduced below. The data analyses, visualisation, and likely any subsequent research using this repository can be executed on a typical desktop machine (with typical runtimes being seconds, up to an hour for the most intensive scripts).

Reproducing the main figures

Fig. 1

Calculate a global exeedance-probability loss curve for flooding, including a breakdown by peril and occupancy. Run global_epc.m with global_losses.mat (global event loss data) and iso3_tiv.csv (exposure value per country).

Fig. 2

Visualise the 250-year flood loss per country and calculate continental exceedance-probability loss curves. Use national_summaries.csv (loss metrics per country) to visualise the data in QGIS, and run regional_epc.m with global_region_losses.mat (global event loss data per region), iso3_tiv.csv (exposure value per country), and iso3_country_regions.csv (link between country, region, and continent).

Fig. 3

Visualise each region's 250-year flood event in QGIS using /PML_event_continental_gpkg_/PML_event__.gpkg (flood return period per peril per catchment).

Fig. 4

Analyse the natural variability in average annual losses for short model samples at various geographic and temporal scales. Run aal_sample_error.m with global_losses.mat (global event loss data), global_region_losses.mat (regional event loss data), DEU_losses.mat (Germany event loss data), bavaria_losses.mat (Bavaria event loss data).

Fig. S2

Quantify observational data uncertainty for SE Asia's loss history and compare the spread to modelled outcomes. Run obs_v_mod_loss_sea.m with emdat-flood-actual.csv (annual actual EM-DAT flood losses), emdat-flood-normalised.csv (annual normalised EM-DAT flood losses), emdat-flood-frequency.csv (annual EM-DAT flood loss event frequency), emdat-all-actual.csv (annual actual EM-DAT flood + TC losses), emdat-all-normalised.csv (annual normalised EM-DAT flood + TC losses), emdat-all-frequency.csv (annual EM-DAT flood + TC loss event frequency), event_losses.mat (event losses per region), and occurrence.csv (link between synthetic events and years).

Fig. S3

Quantify observational data uncertainty for each continent's loss history and compare the spread to modelled outcomes. Run obs_v_mod_loss_all.m with emdat-flood-actual.csv (annual actual EM-DAT flood losses), emdat-flood-normalised.csv (annual normalised EM-DAT flood losses), emdat-flood-frequency.csv (annual EM-DAT flood loss event frequency), emdat-all-actual.csv (annual actual EM-DAT flood + TC losses), emdat-all-normalised.csv (annual normalised EM-DAT flood + TC losses), emdat-all-frequency.csv (annual EM-DAT flood + TC loss event frequency), event_losses.mat (event losses per region), and occurrence.csv (link between synthetic events and years).

README (data)

READMEData to reproduce findings of "The first comprehensive estimate of global flood risk"2025-10-10

These datasets can be analysed and visualised using MATLAB scripts stored in Zenodo repository https://doi.org/10.5281/zenodo.17527000They may also be used in isolation for other research purposesA typical desktop machine should be adequate for analysing these data

# /PML_event_continental_gpkg_*/PML_event__^.gpkgVector gpkg data containing the flood return period per peril (*) per catchment for large synthetic flood events across the world.These events represent a 250-year loss scenario within each region.These data underpin Fig. 2.For interpreting the event IDs (^), see Table S2.

# bavaria_losses.matPeriod-sample losses for the German state of Bavaria.Contains the MATLAB numeric array 'losses'.Each row (10000) represents a model year.Each column (100) represents a model sample.

# DEU_losses.matPeriod-sample-peril-occupancy-coverage-region losses for Germany.Contains the MATLAB numeric array 'losses'.Each row (10000) represents a model year.Each column (100) represents a model sample.Each 3D slice (3) represents a flood peril (fluvial, pluvial, coastal).Each 4D slice (3) represents an occupancy type (residential, commercial, industrial).Each 5D slice (3) represents a coverage type (buildings, contents, BI).Each 6D slice (14) represents a region ('Oceania','Central Asia','Eastern Asia','Eastern Europe','Latin America and the Caribbean','Northern Africa','Northern America','Northern Europe','Southeastern Asia','Southern Asia','Southern Europe','Sub-Saharan Africa','Western Asia','Western Europe')

# emdat-all-actual.csvA table representing inflation-adjusted actual EM-DAT flood and tropical cyclone losses per continental region 2000-2024 in thousands of USD.

# emdat-all-frequency.csvA table representing the count of EM-DAT flood and tropical cyclone loss events per continental region 2000-2024.

# emdat-all-normalised.csvA table representing inflation-adjusted GDP-normalised EM-DAT flood and tropical cyclone losses per continental region 2000-2024 in thousands of USD.

# emdat-flood-actual.csvA table representing inflation-adjusted actual EM-DAT flood losses per continental region 2000-2024 in thousands of USD.

# emdat-flood-frequency.csvA table representing the count of EM-DAT flood loss events per continental region 2000-2024.

# emdat-flood-normalised.csvA table representing inflation-adjusted GDP-normalised EM-DAT flood losses per continental region 2000-2024 in thousands of USD.

# event_losses.matEvent-region losses across the world.Contains the MATLAB numeric array 'losses'.Each row (32068353) contains an event loss.Each column (14) represents a region ('Oceania','Central Asia','Eastern Asia','Eastern Europe','Latin America and the Caribbean','Northern Africa','Northern America','Northern Europe','Southeastern Asia','Southern Asia','Southern Europe','Sub-Saharan Africa','Western Asia','Western Europe')

# global_losses.matPeriod-sample-peril-occupancy-coverage losses for the world.Contains the MATLAB numeric array 'losses'.Each row (10000) represents a model year.Each column (10) represents a model sample.Each 3D slice (3) represents a flood peril (fluvial, pluvial, coastal).Each 4D slice (3) represents an occupancy type (residential, commercial, industrial).Each 5D slice (3) represents a coverage type (buildings, contents, BI).

# global_losses.matPeriod-sample-peril-occupancy-coverage losses for the world.Contains the MATLAB numeric array 'losses'.Each row (10000) represents a model year.Each column (10) represents a model sample.Each 3D slice (3) represents a flood peril (fluvial, pluvial, coastal).Each 4D slice (3) represents an occupancy type (residential, commercial, industrial).Each 5D slice (3) represents a coverage type (buildings, contents, BI).

# global_region_losses.matPeriod-sample-peril-occupancy-coverage-region losses for the world.Contains the MATLAB numeric array 'losses'.Each row (10000) represents a model year.Each column (10) represents a model sample.Each 3D slice (3) represents a flood peril (fluvial, pluvial, coastal).Each 4D slice (3) represents an occupancy type (residential, commercial, industrial).Each 5D slice (3) represents a coverage type (buildings, contents, BI).Each 6D slice (14) represents a region ('Oceania','Central Asia','Eastern Asia','Eastern Europe','Latin America and the Caribbean','Northern Africa','Northern America','Northern Europe','Southeastern Asia','Southern Asia','Southern Europe','Sub-Saharan Africa','Western Asia','Western Europe')

# iso3_country_regions.csvTable linking each country in the world to a region and continent.

# iso3_tiv.csvTable summarising the total capital stock (or exposure value) for each country in the world.

# national_summaries.csvTable describing the average annual loss (AAL) and 250-year loss (PML) for each country in the world, in currency terms (abs) and relative to capital stock (perc).

# occurrence.csvStandard OasisLMF input file: a table linking each synthetic event ID to a synthetic model year.

README (scripts)

READMEScripts to reproduce findings of "The first comprehensive estimate of global flood risk"2025-10-10

All these scripts must be run in MATLAB R2025a or laterThey run using data stored in Zenodo repository https://doi.org/10.5281/zenodo.17527000A typical desktop machine should be adequate for running these scripts

# aal_sample_error.m## Description:Analyses the natural variability in average annual losses from short model samples at various geographic and temporal scales.Produces Fig. 4.## Data:global_losses.matglobal_region_losses.matDEU_losses.matbavaria_losses.mat

# global_epc.m## Description:Calculates a global exeedance-probability loss curve for flooding, including a breakdown by peril and occupancy.Produces Fig. 1.## Data:global_losses.matiso3_tiv.csv

# obs_v_mod_loss_all.m## Description:Quantifies observational data uncertainty for each continent's loss history and compares the spread to modelled outcomes.Produces Fig. S3.## Data:emdat-flood-actual.csvemdat-flood-normalised.csvemdat-flood-frequency.csvemdat-all-actual.csvemdat-all-normalised.csvemdat-all-frequency.csvevent_losses.matoccurrence.csv

# obs_v_mod_loss_sea.m## Description:Quantifies observational data uncertainty for SE Asia's loss history and compares the spread to modelled outcomes.Produces Fig. S2.## Data:emdat-flood-actual.csvemdat-flood-normalised.csvemdat-flood-frequency.csvemdat-all-actual.csvemdat-all-normalised.csvemdat-all-frequency.csvevent_losses.matoccurrence.csv

# regional_epc.m## Description:Calculates an absolute and relative exceedance-probability loss curve for flooding on each continent.Produces Fig. 2## Data:global_region_losses.matiso3_tiv.csviso3_country_regions.csv