Assignment: a more intense future flood#
Having calculated the cost of Hurricane Katrina in 2015, lets consider the impacts of the same flood event, but in one of the SSP projected future scenarios. In the data folder you downloaded, you’ll find two additional SFINCS simulations of the flood event. These use the same meterological forcing as the historic simulation, but they have had sea level uplifted to that indicated by the AR6 sea level projections. It’s a crude approximation, but allows to answer the question: “what would be the impact of Hurricane Katrina with higher sea levels?”
#Import packages - these are not new
import os
import xarray as xr
import geopandas as gpd
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# These are new
import rioxarray as rioxr # Open geotiffs with xarray
from rasterio.features import rasterize # Convert vector data to raster (optional)
Data#
Let’s read the additional dataset (here SSP585) together with the historical one:
ds_hist = xr.open_dataset('../data/flood/sfincs_simulations/hindcast_sfincs_map.nc')
ds_ssp585 = xr.open_dataset('../data/flood/sfincs_simulations/2080_ssp585_sfincs_map.nc')
Let’s retrieve historical max flood depth like we did in the lesson:
# Historical
max_flood_depth_hist = ds_hist['zsmax'].max(dim='timemax')
The projection data has the same format as the historical file, but this time I removed the time component to reduce data size. We can therefore extract the max flood extent and depth directly out of the dataset without the use of .max()
:
# Projection
max_flood_depth_ssp585 = ds_ssp585['zsmax']
Plot the historical flood depth map. And for the projection scenario. Compare the two maps. (Hint: you can also plot the difference between the two)
# Your answer here
Calculate future population risk#
Compute the flood extent for each scenario (historical and future). Compute the flooded area in both cases, assuming that a grid point has an approximate area of 0.036 km\(^2\). Did the flood area change much? How about the average flood depth?
# Your answer here
“Static” computation of the affected population#
Now use the WorldPop data from the lesson to compute the total population affected by the flood in each scenario:
# Your answer here
These numbers show that if the flood is larger, the affected population is larger as well. But this does not take into account possible future changes in population!
“Projected” computation of the affected population#
We will now attempt to combine the ICLUS population projections with WorldPop to get an estimate of future population exposure. Read in the data first:
pop_proj = xr.open_dataset("../data/flood/population/cropped_ICLUS_v2_1_1_population_stripped.nc")
As an approximation, create a wordpop_future
variable which is the historical population scaled by the ssp585_scaler
in the projection estimates.
# Your answer here
Now use this new future population estimate to compute the total number of affected people in the future scenario. Interpret the result.
# Your answer here
Optional: run the analysis for various flood depths, and examine wether affected population also changes by flood depth category.
# Your answer here
Future economic damage#
Now repeat the damage analysis done in the lesson, with the historical and future scenario.
Similar to population example above, consider how you might scale future economic data (hint - link economic value to population). Use this scaled value to calculate future damages by extent of the flood.
Optional: Construct a simple depth-damage realationship to calculate damages by depth. Now assume that some adaptation has taken place (i.e.: damage scales slower with flood depth in the future).
# Your answer here.
Assumptions#
What assumptions have made regarding population?
What assumptions have we made regarding economics?
What assumptions have we made regarding landuse?
What assumptions have we made regarding flood defences?
What might we do to combat these assumptions? How important is it that we highlight these to readers or policymakers?
# Your answer here (no code required)