Skip to content

Commit

Permalink
Update readme.md
Browse files Browse the repository at this point in the history
change t-route to T-Route
  • Loading branch information
kumdonoaa authored Sep 23, 2024
1 parent eed1f8a commit d0982a5
Showing 1 changed file with 25 additions and 25 deletions.
50 changes: 25 additions & 25 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# t-route - Tree-Based Channel Routing
# T-Route - Tree-Based Channel Routing

**Fast, flexible, modular channel routing for the National water model and beyond**:

t-route, a dynamic channel routing model, offers a comprehensive solution for river network routing problems. It is designed to handle 1-D channel routing challenges in vector-based river network data, such as the USGS's NHDPlus High Resolution dataset, and OGC WaterML 2.0 Surface Hydrology Features (HY_Features) data model used in NextGen framework.
T-Route, a dynamic channel routing model, offers a comprehensive solution for river network routing problems. It is designed to handle 1-D channel routing challenges in vector-based river network data, such as the USGS's NHDPlus High Resolution dataset, and OGC WaterML 2.0 Surface Hydrology Features (HY_Features) data model used in NextGen framework.

Provided a series lateral inflows for each node in a channel network, t-route computes the resulting streamflows. t-route requires that all routing computations srictly obey an upstream-to-downstream ordering. Such ordering facilitates the heterogenous application of routing models in a single river network. For example, hydrologic models - such as Muskingum Cunge - may be more appropriate for low-order headwater streams where backwater conditions have minimal impact on flooding. In contrast, t-route empowers users to apply computationally intensive hydraulic models, such as the diffusive wave approximation of St. Venant equations, for high-order streams and rivers, where backwater flooding is a significant concern. This flexibility enables users to allocate computational resources precisely where they are needed most, optimizing efficiency.
Provided a series lateral inflows for each node in a channel network, T-Route computes the resulting streamflows. T-Route requires that all routing computations srictly obey an upstream-to-downstream ordering. Such ordering facilitates the heterogenous application of routing models in a single river network. For example, hydrologic models - such as Muskingum Cunge - may be more appropriate for low-order headwater streams where backwater conditions have minimal impact on flooding. In contrast, T-Route empowers users to apply computationally intensive hydraulic models, such as the diffusive wave approximation of St. Venant equations, for high-order streams and rivers, where backwater flooding is a significant concern. This flexibility enables users to allocate computational resources precisely where they are needed most, optimizing efficiency.

Expanding its capabilities, t-route now supports the OGC WaterML 2.0 Surface Hydrology Features (HY_Features) data model, facilitating the management of complex acyclic network connectivity. HY_Features data model provides users with a choice of routing solutions, including Muskingum-Cunge, Diffusive Wave, or Dynamic Wave.
Expanding its capabilities, T-Route now supports the OGC WaterML 2.0 Surface Hydrology Features (HY_Features) data model, facilitating the management of complex acyclic network connectivity. HY_Features data model provides users with a choice of routing solutions, including Muskingum-Cunge, Diffusive Wave, or Dynamic Wave.

**Key Features of t-route:**
**Key Features of T-Route:**
- Adaptable to multiple network formulations.
- Supports a range of routing solutions.
- Redesigned core operations accessible via standard BMI functions.
Expand All @@ -24,29 +24,29 @@ Expanding its capabilities, t-route now supports the OGC WaterML 2.0 Surface Hyd
| Routing Direction | Upstream to downstream | Both directions |
| Numerical Scheme | [One-dimensional explicit scheme](https://ral.ucar.edu/sites/default/files/public/WRF-HydroV5TechnicalDescription.pdf) | [Implicit Crank-Nicolson scheme](https://onlinelibrary.wiley.com/doi/10.1111/1752-1688.13080) |

t-route's flexible design is ideal for NOAA's National Water Model (NWM) 3.0, but its utility extends to various research and practical applications. While the code is currently bespoke for NWM, efforts are ongoing to generalize the core utilities, making t-route compatible with any standardized network and forcing data.
T-Route's flexible design is ideal for NOAA's National Water Model (NWM) 3.0, but its utility extends to various research and practical applications. While the code is currently bespoke for NWM, efforts are ongoing to generalize the core utilities, making T-Route compatible with any standardized network and forcing data.

## General Sheme:
The figure below illustrates the workflow for executing t-route via two interfaces: the Command Line Interface (CLI) and the Basic Model Interface (BMI). When using the CLI, the user can select from two river network representations: NHDNetwork or HYFeatures. In contrast, the BMI exclusively supports HYFeatures. For the routing method, users have the option to apply either the Muskingum-Cunge method or the Diffusive Wave method.
<img src=https://raw.githubusercontent.com/NOAA-OWP/t-route/master/doc/images/scheme.png height=400>
The figure below illustrates the workflow for executing T-Route via two interfaces: the Command Line Interface (CLI) and the Basic Model Interface (BMI). When using the CLI, the user can select from two river network representations: NHDNetwork or HYFeatures. In contrast, the BMI exclusively supports HYFeatures. For the routing method, users have the option to apply either the Muskingum-Cunge method or the Diffusive Wave method.
<img src=https://raw.githubusercontent.com/NOAA-OWP/T-Route/master/doc/images/scheme.png height=400>

## Project Overview:
- **Technology Stack**: Combines Python with Fortran for core routing model engines. The river network pre-processor, river network traversal framework, and time series data model are all written in python. The routing model engines (e.g. Muskingum-Cunge and diffusive wave) are primarily written in fortran, though we can imagine future additions to the engine suite being writted in any number of laguages that can be packaged as python extensions.
- **Current Status**: Focused on integration with NWM 3.0.
- **Demonstrations**: The `/test` directory includes a t-route demonstration on the Lower Colorado River, TX, showcasing capabilities like streamflow data assimilation and diffusive wave routing.
- **Demonstrations**: The `/test` directory includes a T-Route demonstration on the Lower Colorado River, TX, showcasing capabilities like streamflow data assimilation and diffusive wave routing.

## Mission Alignment
t-route development is rigorously aligned with and guided by the NOAA Office of Water Prediction mission: *Collaboratively research, develop and deliver timely and consistent, state-of-the-science national hydrologic analyses, forecast information, data, guidance and equitable decision-support services to inform essential emergency management and water resources decisions across all time scales.*
T-Route development is rigorously aligned with and guided by the NOAA Office of Water Prediction mission: *Collaboratively research, develop and deliver timely and consistent, state-of-the-science national hydrologic analyses, forecast information, data, guidance and equitable decision-support services to inform essential emergency management and water resources decisions across all time scales.*

## Structure of Folders:
- `src/kernel/`: Fortran modules.
- `src/troute-config/`: Configuration parser for t-route specific file.
- `src/troute-config/`: Configuration parser for T-Route specific file.
- `src/troute-network/`: Manages network, data assimilation, and routing types.
- `src/troute-nwm/`: Coordinates t-route’s modules.
- `src/troute-nwm/`: Coordinates T-Route’s modules.
- `src/troute-routing/`: Handles flow segment and reservoir routing modules.

## Summary:
t-route represents streamflow channel routing and reservoir routing, assimilating data on vector-based channel networks. It fits into a broader framework where it interacts with land surface models, Forcing Engines, and coastal models, each playing a pivotal role in hydrologic forecasting and analysis.
T-Route represents streamflow channel routing and reservoir routing, assimilating data on vector-based channel networks. It fits into a broader framework where it interacts with land surface models, Forcing Engines, and coastal models, each playing a pivotal role in hydrologic forecasting and analysis.

## Configuration and Dependencies

Expand Down Expand Up @@ -87,7 +87,7 @@ To get a sense of the operation of the routing scheme, follow this sequence of c
pip3 install numpy pandas xarray netcdf4 joblib toolz pyyaml Cython>3,!=3.0.4 geopandas pyarrow deprecated wheel

# clone t-toute
git clone --progress --single-branch --branch master http://github.com/NOAA-OWP/t-route.git
git clone --progress --single-branch --branch master http://github.com/NOAA-OWP/T-Route.git

# compile and install
./compiler.sh
Expand Down Expand Up @@ -133,7 +133,7 @@ python3 -m nwm_routing -f -V4 test_AnA_V4_HYFeature.yaml
```shell
sudo apt install python3.10-venv
```
- Create a virtual environment for T-route (named here 'troute-env1'):
- Create a virtual environment for T-Route (named here 'troute-env1'):
```shell
python3 -m venv troute_env1
```
Expand All @@ -143,15 +143,15 @@ python3 -m nwm_routing -f -V4 test_AnA_V4_HYFeature.yaml
```
- Now, the command prompts in the Shell window should start with (troute-env1)

3. **Clone T-route:**
- Go to a folder of your choice (here, your home folder) and create a T-route directory
3. **Clone T-Route:**
- Go to a folder of your choice (here, your home folder) and create a T-Route directory
```shell
mkdir troute1
cd troute1
```
- Clone a T-route repository (the current main branch is used as an example):
- Clone a T-Route repository (the current main branch is used as an example):
```shell
git clone --progress --single-branch --branch master http://github.com/NOAA-OWP/t-route.git
git clone --progress --single-branch --branch master http://github.com/NOAA-OWP/T-Route.git
cd troute1
```
- Install python packages per requirements file
Expand Down Expand Up @@ -198,12 +198,12 @@ python3 -m nwm_routing -f -V4 test_AnA_V4_HYFeature.yaml
- Output should be something like:
![image](https://github.com/user-attachments/assets/57e48501-18f4-4004-9b10-5a9245186e38)

5. **Build and test T-route:**
- Go to your T-route folder:
5. **Build and test T-Route:**
- Go to your T-Route folder:
```shell
cd ~/troute1
```
- Compile T-route (may take a few minutes, depending on the machine):
- Compile T-Route (may take a few minutes, depending on the machine):
```shell
./compiler.sh
```
Expand Down Expand Up @@ -231,13 +231,13 @@ python3 -m nwm_routing -f -V4 test_AnA_V4_HYFeature.yaml
- Activate the new environment created in the previous step.

3. **Install T-Route:**
- Follow the instructions in the T-Route repository (https://github.com/NOAA-OWP/t-route/tree/master) for installation.
- Follow the instructions in the T-Route repository (https://github.com/NOAA-OWP/T-Route/tree/master) for installation.
- Ensure gcc, gfortran, and all required Python libraries are installed.

4. **NetCDF Issues:**
- Resolve errors with NetCDF libraries (e.g., "netcdf.mod" not found) by running: `apt-get install *netcdf*`.
- Locate the installed netcdf.mod (e.g., `find /usr/ -name *mod`).
- Define the NETCDF path in the compiler.sh file in t-route (before the ‘if [-z “NETCDF …” ]’ statement): `export NETCDF="PATH_TO_NETCDF.MOD"`.
- Define the NETCDF path in the compiler.sh file in T-Route (before the ‘if [-z “NETCDF …” ]’ statement): `export NETCDF="PATH_TO_NETCDF.MOD"`.

5. **Python Version:**
- Define `alias python=python3` in the .bashrc file if `python` is not defined.
Expand All @@ -256,7 +256,7 @@ We are constantly looking to improve. Please see the Git Issues for additional i

## Getting help

t-route team and the technical maintainers of the repository for more questions are:
T-Route team and the technical maintainers of the repository for more questions are:
[email protected]
[email protected]
[email protected]
Expand Down

0 comments on commit d0982a5

Please sign in to comment.