Skip to content

fema-ffrd/gpras

Repository files navigation

Surrogate Modeling of HEC-RAS using Gaussian Process Regression

Build License Release Issues Code Style: Black Linter: Ruff

gpras Logo

Overview

HEC-RAS is a widely used tool for modeling river hydraulics and flood events; however, its detailed computational simulations can be time-consuming and resource-intensive, especially when performing stochastic simulation with many thousands of storm events. This software provides research- and production-level tooling to emulates HEC-RAS outputs with significantly reduced computation time via Gaussian Process Regression (GPR). The GPR surrogate models may be used to predict flood depths from a variety of input configurations, including

  1. Lower-fidelity HEC-RAS models (models with coarse grid resolution),
  2. HEC-HMS reach-level stage or discharge hydrographs, and
  3. Reach inflow hydrograph features.

The surrogate models are trained to reproduce the outputs of a high-resolution "benchmark" model that must be developed by the user beforehand. Parameters of the GPR surrogate are optimized to predict the benchmark flooding given a set of input features relating to either the benchmark model forcing or outputs from a lower-fidelity HEC-RAS model. Graphical summaries of the training and predicting process is shown in the images below.

Installation

Note

The most current code is on the 'dev' branch

To use this software, please use either the devcontainer or clone this repo and install with pip.

git clone https://github.com/fema-ffrd/gpras.git
pip install .

Overview of gpras Formulations

Upskill Low-Fidelity HEC-RAS

training_testing
training_testing
training_testing

Upskill HEC-HMS Indirect

training_testing

Upskill HEC-HMS Direct

training_testing

Overview of Production Workflows

Pipeline

training_testing

Pre-processing

training_testing

About

Gaussian process emulation of HEC-RAS

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •  

Languages