Run the NextGen National Water Resources Modeling Framework locally with ease.
NGIAB provides a containerized and user-friendly solution for running the NextGen framework, allowing you to control inputs, configurations, and execution on your local machine.
- Run NextGen Locally: Experiment with the framework on your machine
- Control Over Inputs: Choose specific regions/basins and modify input data
- Simplified Setup: Easy deployment using Docker containers
- Open Research: Promote transparency through open-source tools
- Visualization: Built-in support for output visualization
- Evaluation Tools: Integrated TEEHR evaluation capabilities
-
Install WSL
wsl --install # If the above doesn't work, try: sudo apt install wsl
-
Install Docker Desktop
- Download from Docker's official website
- Launch Docker Desktop
- Open WSL as Administrator
- Verify installation:
docker ps -a
- Install Docker Desktop
- Download from Docker's Mac installer page
- Launch Docker Desktop
- Verify installation:
docker ps -a
- Install Docker
- Follow Linux installation guide
- Start Docker service
- Verify installation:
docker ps -a
mkdir -p NextGen/ngen-data
cd NextGen/ngen-data
wget https://ciroh-ua-ngen-data.s3.us-east-2.amazonaws.com/AWI-007/AWI_16_2863657_007.tar.gz
tar -xf AWI_16_2863657_007.tar.gz
wget --no-parent https://ciroh-ua-ngen-data.s3.us-east-2.amazonaws.com/AWI-008/AWI_16_2863806_008.tar.gz
tar -xf AWI_16_2863806_008.tar.gz
cd NextGen
git clone https://github.com/CIROH-UA/NGIAB-CloudInfra.git
cd NGIAB-CloudInfra
./guide.sh
Running NextGen requires building a standard run directory complete with only the necessary files. Below is an explanation of the standard. Reference for discussion of the standard here.
A NextGen run directory ngen-run
is composed of three necessary subfolders config, forcings, outputs
and an optional fourth subfolder metadata
.
ngen-run/
│
├── config/
│
├── forcings/
│
├── lakeout/
|
├── metadata/
│
├── outputs/
│
├── restart/
The ngen-run
directory contains the following subfolders:
config
: model configuration files and hydrofabric configuration files. A deeper explanation hereforcings
: catchment-level forcing timeseries files. These can be generated with the forcingprocessor. Forcing files contain variables like wind speed, temperature, precipitation, and solar radiation.lakeout
: for t-routemetadata
is an optional subfolder. This is programmatically generated and it used within to ngen. Do not edit this folder.outputs
: This is where ngen will place the output files.restart
: For restart files
This folder contains the NextGen realization file, which serves as the primary model configuration for the ngen framework. This file specifies which models to run and with which parameters, run parameters like date and time, and hydrofabric specifications.
Based on the models defined in the realization file, BMI configuration files may be required. For those models that require per-catchment configuration files, a folder will hold these files for each model in ngen-run/config/cat-config
. See here for which models ngen-datastream supports automated BMI configuration file generation. See the directory structure convention below.
ngen-run/
|
├── config/
| │
| ├── nextgen_09.gpkg
| |
| ├── realization.json
| |
| ├── ngen.yaml
| |
| ├── cat-config/
| │ |
| | ├──PET/
| │ |
| | ├──CFE/
| │ |
| | ├──NOAH-OWP-M/
...
Hydrofabric Example files: conus_nextgen.gpkg
NextGen requires a single geopackage file. This file is the hydrofabric (spatial data). An example geopackage can be found on Lynker-Spatial here. Tools to subset a geopackage into a smaller domain can be found at Lynker's hfsubset.
This repository includes a complete case study of the Provo River Basin, demonstrating NGIAB's capabilities in a real-world scenario.
NGIAB provides comprehensive visualization options through the Tethys Platform:
./viewOnTethys.sh
cd docker
docker build -f Dockerfile -t awiciroh/ciroh-ngen-image:latest . --no-cache
Note: For ARM64 architecture, use latest
tag; for X86 architecture, use latest-x86
tag.