Uncertainties surrounding flood hazard estimates is the primary driver of riverine flood risk projections
Iman Hosseini-Shakib1*, Sanjib Sharma1, Benjamin Seiyon Lee2, Vivek Anand Srikrishnan3, Robert Nicholas1,4, and Klaus Keller1,5
1 Earth and Environmental Systems Institute, The Pennsylvania State University, University Park, PA, USA
2 Department of Statistics, George Mason University, Fairfax, VA, USA
3 Department of Biological & Environmental Engineering, Cornell University, Ithaca, NY, USA
4 Department of Meteorology and Atmospheric Science, The Pennsylvania State University, University Park, PA, USA
5 Thayer School of Engineering, Dartmouth College, Hanover, NH, USA
* corresponding author: ishakib@gmail.com
Flooding drives considerable risks. Designing strategies to manage these risks is complicated by the often large uncertainty surrounding flood-risk projections. Uncertainty surrounding flood risks can stem, for example, from choices regarding boundary conditions, model structures, and parameters. Dynamic interactions among hazard, exposure, and vulnerability can modulate the uncertainty surrounding flood risks. A quantitative understanding of which factors drive uncertainties surrounding flood hazards and risks can inform the design of mission-oriented research. Here characterize key uncertainties impacting flood-risk projections and perform a global sensitivity analysis to characterize the most important drivers of the uncertainties surrounding flood hazards and risks. We find that the flood risk model is sensitive to upstream discharge, river bed elevation, channel roughness and digital elevation model resolution.
Hosseini-Shakib, I., Sharma, S., Lee, B.S., Srikrishnan, V.A., Nicholas, R., & Keller, K. (2022). Uncertainties surrounding flood hazard estimates is the primary driver of riverine flood risk projections. preprint
The 1/3 arcsec digital elevation model (DEM) tile for Selinsgrove,PA is downloaded from the USGS website at API: https://prd-tnm.s3.amazonaws.com/StagedProducts/Elevation/13/TIFF/historical/n41w077/USGS_13_n41w077_20220429.tif
The small size input data are stored in the "Inputs" folder and are as follows:
- "Isle of Que": shapefile of the Isle of Que in Selinsgrove
- "NLCD": Land use land cover 30m gridded data from the USGS National Land Cover Database (2016) clipped for Selinsgrove, PA
- "Rivers": shapefile of the Susquehanna River from Pennsylvania Spatial Data Access (https://www.pasda.psu.edu) clipped for the region
- "Roads": shapefile of the Roads from Pennsylvania Spatial Data Access (https://www.pasda.psu.edu) clipped for the region
- "Susquehanna_west_bank": shapefile of the west bank of Sussquehanna from Pennsylvania Spatial Data Access (https://www.pasda.psu.edu) clipped for the region
- "clip_area": a rectangular shapefile that covers Selinsgrove, PA used to clip DEMs
- "houses_for_sale": shapefile of the houses for sale in Selinsgrove obtained from zillow.com accessed in February 2020
- "Selinsgrove_shapefile": shapefile of Selinsgrove, PA from Pennsylvania Spatial Data Access (https://www.pasda.psu.edu)
Model | Version | Platform |
---|---|---|
R | 3.6.0 | x86_64-redhat-linux-gnu (64-bit) |
LISFLOOD-FP | 6.0.4 | x86_64-redhat-linux-gnu (64-bit) |
R packages used in this study are as follows in alphabetical order: "adaptMCMC", "data.table", "dataRetrieval", "DEoptim", "doParallel", "evd", "evir", "extRemes", "foreach", "geosphere", "GGally", "ggplot2", "graphics", "parallel", "plotrix", "raster", "RColorBrewer", "rgdal", "sensobol", "TruncatedDistributions".
These scripts perform a coupled analysis to estimate the expected annual flood damages of 2,000 hypothetical houses in Selinsgrove, PA. The analysis is organized in four parts: (1) initialization of the study region and hypothetical houses; (2) a statistical analysis to sample the discharge uncertainty; (3) a hydraulic model (LISFLOOD-FP) to estimate the flood hazard; (4) an exposure-vulnerability model to estimate the flood risk.
We estimate the run time for this repository using 400 CPUs from the Pennsylvania State Unversity high-performance computation facilities to be approximately 3 weeks. If you do not have access to high-performance computation facilities and wish to reproduce our results and plots, you can use the files in the pregenerated_run_results
to avoid running the precalibration (10,000 model runs), the Sobol global sensitivity analysis (76,000 model runs) and the Morris one-step-at-a-time sensitivity analysis (73 model runs).
Users need to clone the Inputs
, LISFLOOD
,figures
, and workflow
folders, then run the main_script.R
code that sources the codes in the workflow
and figures
folders by the order. The exact roles of each piece of code and input files are described in detail as follows:
Workflow:
Script Name | Description |
---|---|
code_w00-packages.R |
Script to install the required R packages |
code_w01-DEMs_and_land_cover.R |
Script to create land use map and DEMs at different resolutins for Selinsgrove, PA |
code_w02-hypothetical_houses.R |
Script to create 2,000 hypothetical houses in Selinsgrove, PA |
code_w03-hypothetical_house_prices.R |
Script to estimate hypothetical house prices based on the exposure module |
code_w04-discharge_GEV_MLE.R |
Script to use frequentist maximum likelihood method to estimate GEV parameters for the annual maxima of discharge |
code_w05-MCMC_and_MLE_Bayes_Comparison.R |
Script to use the Metropolis-Hastings Markov Chain Monte Carlo method to quantify the uncertainty sorrounding the annual maxima of discharge |
code_w06-initial_ensemble_for_precalib.R |
Script to an initial ensemble of 10,000 rows for precalibration |
code_w07-initial_model_run.R |
Script to run the flood hazard model for 10,000 runs for precalibration |
code_w08-precalibration.R |
Script to perform precalibration |
code_w09-Sobol_GSA_ensemble.R |
Script to set up the 76,000 row ensemble used for global sensitivity analysis |
code_w10-Sobol_GSA_model_run.R |
Script to run flood risk model for the 76,000 row parameter set |
code_w11-Sobol_GSA_risk_hazard_indices.R |
Script to calculate Sobol sensitivity indices for hazard and risk parameters |
code_w12-radial_plot_tables_risk.R |
Script to set up the tables required for plotting the flood risk sensitivity results |
code_w13-radial_plot_tables_hazard.R |
Script to set up the tables required for plotting the flood hazard sensitivity results |
code_w14-OAT_ensemble.R |
Script to set up the ensemble of 73 rows for the Morris one-step-at-a-time sensitivity analysis |
code_w15-OAT_model_run.R |
Script to run the flood risk model for the Morris one-step-at-a-time sensitivity analysis |
The following scripts are the functions used by the codes in the workflow
directory and are stored in workflow/functions/
Functions:
Script Name | Description |
---|---|
OAT_haz_risk_function.R |
Function to estimate average flood depth in m and total damage in USD for the Morris one-step-at-a-time analysis |
batchmeans.R |
Functions to calculate consistent batch means and imse estimators of Monte Carlo standard errors |
flood_extent_function.R |
Function to estimate flood extent and grid cell flood depth in m in Selinsgrove, PA used for precalibration |
haz_risk_function.R |
Function to estimate average flood depth in m and total damage in USD for the Sobol global sensitivity analysis method |
sobol_functions.R |
Functions used in plotting Sobol sensitivity results for hazard and risk |
Use the scripts found in the figures
directory to reproduce the figures used in this publication.
Figures:
Script Name | Description |
---|---|
code_f01-discharge_annual_maxima.R |
Script to plot the annual maxima of discharge for the USGS gauge of Susquehanna River at Sunbury |
code_f02-discharge_90percent_uncert_plot.R |
Script to plot the results of MCMC for upstream discharge |
code_f03-return_periods_90CI.R |
Script to plot uncertainty bounds of upstream discharge for different return periods |
code_f04-MCMC_pairs_plot.R |
Script to plot MCMC GEV parameters pairs |
code_f05-initial_parameters_pdf_plots.R |
Script to plot the pdfs of the initial parameter sets used for precalibration |
code_f06-initial_parameter_pairs_plot.R |
Script to plot initial parameters pairs used for precalibration |
code_f07-precalibrated_parameters_pdf_plots.R |
Script to plot pdfs of parameters used in the Sobol global sensitivity analysis |
code_f08-precalibrated_parameter_pairs_plot.R |
Script to plot the parameter sets pairs used in the Sobol global sensitivity analysis |
code_f09-model_response_plots.R |
Script to plot flood hazard and risk results used in the Sobol global sensitivity analysis |
code_f10-radial_plots.R |
Script to plot the results of flood hazard and risk global sensitivity analysis |
code_f11-OAT_sensitivity_plot.R |
Script to plot the results of the Morris one-step-at-a-time sensitivity analysis |