Mapping the Edenville Dam Break: How Open Source tools combined with Open Data can be used for Flood Hazard analysis in near-real time

Seth Lawler
Resilience Solutions Tech Blog
8 min readMay 29, 2020

The unfortunate events in Michigan last week — the failure of the Edenville Dam, the subsequent collapse of the Sanford Dam, the evacuation of approximately 10,000 people, and the destruction of homes and infrastructure in multiple communities — serve as yet another reminder of the need for timely, accurate flood prediction. One of the great challenges for predicting flood events in time and space, is that storm systems that generate runoff must first be forecast. Another challenge in predicting floods is knowing how saturated the ground is at the time of an event: How much rainfall will pass through the soil to water our gardens, and how much will run across the lawn, down the street, and make its way to a stream, river, or reservoir?

Historically, the National Weather Service (NWS) has offered flood prediction at a limited number of locations across the country (~3,500) through the Advanced Hydrologic Prediction Service (AHPS). Over the past several years, NOAA’s Office of Weather Prediction (OWP) has been in the process of developing a modeling framework capable of providing streamflow predictions at ~2.7 million locations. The modeling framework, known as The National Water Model (NWM) is a monumental achievement: continuously running on a super computer, the NWM ingests (among other things) multiple meteorological forecasts and United States Geological Survey (USGS) gage data to produce forecasts of streamflow, soil moisture, and snow pack at all 2.7 million locations every hour. Armed with streamflow predictions (given in cubic meters per second), is it possible to create flood maps in anticipation of an event that can inform decisions on the ground with limited time: where to put sandbags, what neighborhoods to evacuate, what roads to close?

Satelite imagery showing the before and after images of the flooding from the Edenville and Sanford Dams.

The current version of the NWM does not include the necessary information to model all of the reservoirs in the United States (Yet! The National Water Center is working on it), which led us to ask the question: Could it have been useful for the response to the flooding that occurred along the Tittabawassee River and its tributaries downstream of the Edenville and Sanford Dams last week?

To answer this question, we used the predictions from the NWM to create flood maps on the fly and compared them with images from the media as they were coming in. This is the story of how we did that, and what we found.

Part 1. Develop inputs for a hydraulic model.

The NWM provides forecasts at streamline segments in the National Hydrography Dataset (NHD), so the first step is to identify which segments (of the 2.7 million) we want to select. Using a RESTful API we wrote in Go to query the NHD, we identified the areas downstream of the Edenville Dam. Connecting the segments provided the first critical input to our flood model: the stream centerline.

This map shows the stream segments from the NHD in the Midland area. The highlighted blue line shows the components selected for modeling the dam break events.

Next, we used code written in python to automate the creation of cross-sections along the stream for modeling the geometric properties of the river and its overbanks.

Cross-sections created along the stream centerline. An automated process creates these at a given distance along the entire reach of the centerline.

The last step in preparing the model inputs was to attribute the cross-sections with station-elevation information and apply friction parameters. For station-elevation, we used what we call the “Best Available Topo” or “BAT” for short. The BAT is a mosaiced dataset composed of the highest resolution topographic data available from the USGS National Elevation Dataset, and from state and local LiDAR, which is made accessible through a web coverage service and the awesome power of the GeoTrellis processing engine.

GeoTrellis BAT layer: at 3-meter resolution, this dataset is served via a web coverage service, providing access to high-resolution topo data anywhere in the CONUS in seconds.

Similarly, we can rapidly assign friction to each cross-section using data from the National Land Cover Database (NLCD), which we also host using GeoTrellis. With the cross-section data attributed, we can move on to the next step: Forcing the model.

Part 2. Retrieve the NWM streamflow predictions

With the geometric components for the hydraulic model in place, we can now retrieve streamflow predictions from the NWM to use as inputs for our hydraulic model. This process, which involves downloading several hundred netCDF files is made easy using the fcast library, which Dewberry open-sourced as part of a project with the National Cooperative Highway Research Program. Using Jupyter Notebooks, we pass the stream segments from the NHD for the area of interest to a routine in fcast, which returns a time series table for each segment.

As mentioned above, the NWM does not compute predictions for most reservoirs, and certainly not for dam failures. The NWM does however, have a data assimilation routine, which adjusts forecasted flows at gage locations based on recorded data. As you can see in the (lower pane) of the plot below, the adjustment to flow based on the gage records is reflected in each forecast product (issued every six hours) for the stream segment with the gage. The problem with using the flow as forecast is that there is no mechanism in the NWM model to compute flow from a dam break so it significantly underpredicts the magnitude of the floodwave. Furthuremore, the data assimiliation routine does not attempt to adjust the flow for stream segments upstream of the gage (upper pane). What can be done here?

The eight medium range NWM forecasts plotted here show the forecasted flow for the stream segment upstream of and at Midland, MI along with USGS Gage record at Midland. Note the difference in the forecasted flow upstream (with no “nudging”) and the forecast flow at the gage (with “nudging” from the data assimilation scheme).

One idea we had for this event was to calculate the ratio between the gage record and the NWM forecast at Midland. This ratio represents the error between the observed and forecasted flow. For our model, we assume steady-state flow, which means we only need to know the peak discharge for any time series we would like to model. Maybe we can approximate the discharge in the upstream segements by scaling the forecasted values by the ratio calculated at Midland as shown below?

NWM forecasts scaled (heavy green) at the stream segment upstream of and at Midland, MI using the ratio between the gage record and the forecast (light green) at Midland.

As you can see, by scaling the forecast in the upstream segements using information from the downstream gage adjusted prediction, we are able to adjust the NWM forecasts to approximante the influence of the dam failure. In a scenario like this, if no data exists that could be used during an emergency, this approach would provide a baseline that could be useful for identifying areas of higher risk when time is essential.

Part 3. Simulate the event using the newly-created model and the streamflow predictions.

Most riverine flood studies in the US have been developed using the HEC-RAS software, which is created, maintained, and provided free of charge by the United States Army Corps of Engineers Hydrologic Engineering Center. For 1-Dimensional steady-state simulations, HEC-RAS uses the Standard Step Method to compute water surface elevation along a stream reach at a given discharge, or streamflow value. For rapid analyses such as the case with the flooding caused by the Edenville Dam failure, there may not be time to develop a full-blown HEC-RAS model.

To overcome this barrier, we developed a python engine to preprocess geometric data (stream centerline and cross-sections shown above), and a python model to solve for the water surface elevation using the Standard Step Method. With these python tools, we can then use automation routines to create and simulate events where no models exists — in minutes. The plot below shows a profile, familiar to anyone who has used HEC-RAS, of the river profile at peak discharge for the Tittabawassee River using NWM forecast data.

A RAS-styled plot of the water surface elevation profile output from the python hydraulic model.

The computation of the water surface profile is nearly instantaneous using the 1D steady-state python model. More advanced 2D models could be used to potentially produce a superior prediction, however, solving the 2D equations over large areas is computationally more demanding, resulting in much longer simulation time and delayed results.

Part 4. Map the results

Now we have the two components needed to create a flood map:

1. Water surface elevations at each cross-section computed using the hydraulic model.

2. Topographic data from the GeoTrellis layer to use for mapping.

Creating the maps is also done using a python routine, where a 2D surface is interpolated between cross-sections. The areas that will be flooded can then be identified through a (relatively) simple difference calculation between the water surface elevation surface and the ground elevations of the modeled area.

Mapped flood inundation areas for the May 20, 2020 using NWM forecast. Extents shown were mapped from modeled outputs using the medium-term forecast that was adjusted using realtime information from the USGS Gage.

As shown in the figure above, mapping flood inundation areas can be used before, during, and after events. Ahead of and during events, approximations like the map shown above are useful for making decisions where time is critical. Following events, models can be re-run using observed data for more accurate results and damage calculations.

Conclusion

Following the event, we were able to validate some of the modeling results computed on the fly. In most areas, the results aligned very well with satellite imagery.

1. Comparison of observed (left) vs modeled (right) flood extents.
2. Comparison of observed (left) vs modeled (right) flood extents

Could the NWM have been used in realtime to inform emergency actions taken by officials on the ground, preparing for evacuations and planning for flood defense? Probably not, principally because dam failures are not part of the modeling framework. Could the NWM combined with a hydraulic model and automated mapping tools such as those shown here, be used, leading up to and during flood events not involving dam failures? We think so.

Examples of areas identified as at-risk using our flood model, and verified after the event in media accounts.

With the availability of open data sources provided through government agencies such as those described in this article, and the resources available through modern computing and open source technology, the future of flood prediction and the ability for emergency responders to consume and act on forecast data is bright.

--

--