GitHub: NOAA-OWP/SLoTH
SLoTH offers the simplest possible behavior for a model: each input will be returned directly as an output. While largely useless on its own, it offers necessary utilities for supporting complex formulations of multiple BMI modules. For example, it can be used to feed constant forcing values into a model or echo output values between timesteps.
Library file path: /dmod/shared_libs/libslothmodel.so.1.0.0
GitHub: NOAA-OWP/CFE
This simplified conceptual model by Fred Ogden is designed to be functionally equivalent to earlier versions of the National Water Model. It offers a streamlined solution to modeling runoff generation, vadose zone dynamics, and groundwater behavior.
Library file path: /dmod/shared_libs/libcfebmi.so.1.0.0
GitHub: NOAA-OWP/evapotranspiration
This module bundles several functions for estimating potential evapotranspiration, or the upper bound for the amount of water that will be passively evaporated from soil given sufficient supply.
Library file path: /dmod/shared_libs/libpetbmi.so.1.0.0
GitHub: NOAA-OWP/NOAH-OWP-Modular
NOAH-OWP-Modular is a generalized refactoring of Noah-MP, a land surface model.
Library file path: /dmod/shared_libs/libsurfacebmi.so
GitHub: NOAA-OWP/TOPMODEL
TOPMODEL is a watershed model focused on interactions between groundwater and surface water.
Library file path: /dmod/shared_libs/libtopmodelbmi.so.1.0.0
GitHub: CIROH-UA/lstm Fork developed by Jonathan Frame
LSTM networks are a type of recurrent neural network used in deep learning. This LSTM module is specifically tailored for generalized streamflow prediction within CONUS.
Python class: lstm.bmi_lstm.bmi_LSTM
GitHub: CIROH-UA/rust-lstm Developed / maintained by Josh Cunningham
A Rust implementation of the python lstm BMI (Basic Model Interface) adapter. Provides a drop-in replacement for the implementations found in CIROH-UA/lstm, NOAA-OWP/lstm, and jmframe/lstm.
GitHub: mhpi/dhbv2
δHBV 2.0 is a differentiable Hydrologiska Byråns Vattenbalansavdelning (HBV) model, using an LSTM and multilayer perceptron (MLP) to learn parameters. Both the daily and hourly variants are included.
Python class (daily): dhbv2.bmi.DeltaModelBmi
Python class (hourly): dhbv2.mts_bmi.MtsDeltaModelBmi
GitHub: CH-Earth/summa
SUMMA is a hydrologic modeling framework that can configure a wide range of hydrologic model parameterizations and configurations.
Library file path: /dmod/shared_libs/libsummabmi.so
GitHub: NOAA-OWP/SoilMoistureProfiles
This module packages several schemes to model soil moisture, including ones specifically tailored to CFE and TOPMODEL.
Temporarily unavailable due to an upstream issue.
GitHub: NOAA-OWP/SoilFreezeThaw
This model simulates heat transfer in soil, enabling modeling of freeze/thaw cycles in water. Its underlying methodology is comparable to NOAH-MP (see NOAH-OWP-Modular above).
Temporarily unavailable due to an upstream issue.
GitHub: CIROH-UA/t-route Fork maintained by Josh Cunningham
T-Route is a routing model used for solving streamflow networks.
Compared to the other models packaged with NGIAB, T-Route is uniquely central because it sits at the core of all NextGen model runs.
As such, instead of invoking it via a formulation, it should be configured in troute.yaml.
NGIAB includes a customized fork of T-Route maintained by CIROH. It retains all functionality from the canonical version of T-Route while enhancing it with major performance optimizations.
Unfortunately, NGIAB does not currently offer native support for adding additional models. Investigation on how best to provide this functionality is underway.
In the meantime, you will need to build a new version of the NGIAB-CloudInfra container that incorporates your desired model. For more information, please see "Building the NGIAB Docker container".