generated from NOAA-OWP/owp-open-source-project-template
-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
change t-route to T-Route
- Loading branch information
Showing
1 changed file
with
25 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
@@ -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 | ||
|
||
|
@@ -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 | ||
|
@@ -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 | ||
``` | ||
|
@@ -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 | ||
|
@@ -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 | ||
``` | ||
|
@@ -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. | ||
|
@@ -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] | ||
|