Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1pt] PR: Rating curves adjustments with ml-bathymetry data and optimized mannN #1340

Open
wants to merge 19 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
All notable changes to this project will be documented in this file.
We follow the [Semantic Versioning 2.0.0](http://semver.org/) format.

## vx.x.x.x - 2024-11-08 - [PR#1340](https://github.com/NOAA-OWP/inundation-mapping/pull/1340)

This branch focuses on adjusting rating curves by using bathymetric data and optimized channel roughness values. The bathymetry data includes eHydro surveys and AI-based datasets created for all NWM streams. New manning roughness values were developed for each feature-id using a differential evolution objective function (OF). The OF minimizes the number of the false_positives and false_negatives cells in our flood inundation maps where we have test cases across the CONUS.

### Changes
- `src/bathymetric-adjustment.py`: `correct_rating_for_ai_based_bathymetry` function was added to the script. This function processes AI-based bathymetry data and adjusts rating curves using this data. Also `apply_src_adjustment_for_bathymetry` function was added to prioritize USACE eHydro over AI-based bathymetry dataset. The multi-processing function `multi_process_hucs` was updated based on the latest code.

- `src/bash_variables.env`: New variables and their paths were added. Also, a new input file with the nwm feature_ids and optimized channel roughness and overbank roughness attributes was created and stored here:
`/fim-data/inputs/rating_curve/variable_roughness/mannings_optz_fe_clusters_so3.csv`
The location of this file was also added to the `bash_variables.env`.

- `fim_post_processing.sh`: New arguments were added.

### Testing
This PR has been tested over multiple HUC8s around the Illinois River, Kanawha River, and Ohio River.

<br/><br/>


## v4.5.13.1 - 2024-12-13 - [PR#1361](https://github.com/NOAA-OWP/inundation-mapping/pull/1361)

This PR was triggered by two dep-bot PR's. One for Tornado, one for aiohttp. Upon further research, these two exist only as dependencies for Jupyter and Jupyterlab which were very out of date. Upgrading Jupyter/JupyterLab took care of the other two.
Expand Down
7 changes: 4 additions & 3 deletions fim_post_processing.sh
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,13 @@ Tcount

## RUN BATHYMETRY ADJUSTMENT ROUTINE ##
if [ "$bathymetry_adjust" = "True" ]; then
l_echo $startDiv"Performing Bathymetry Adjustment routine"
Tstart
echo -e $startDiv"Performing Bathymetry Adjustment routine"
# Run bathymetry adjustment routine
Tstart
python3 $srcDir/bathymetric_adjustment.py \
-fim_dir $outputDestDir \
-bathy $bathymetry_file \
-bathy_ehydro $bathy_file_ehydro \
-bathy_aibased $bathy_file_aibased \
-buffer $wbd_buffer \
-wbd $inputsDir/wbd/WBD_National_EPSG_5070_WBDHU8_clip_dem_domain.gpkg \
-j $jobLimit
Expand Down
6 changes: 4 additions & 2 deletions src/bash_variables.env
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,16 @@ export input_nwm_lakes_Alaska=${inputsDir}/nwm_hydrofabric/nwm_
export input_WBD_gdb=${inputsDir}/wbd/WBD_National_EPSG_5070_WBDHU8_clip_dem_domain.gpkg
export input_WBD_gdb_Alaska=${inputsDir}/wbd/WBD_National_South_Alaska.gpkg
export input_calib_points_dir=${inputsDir}/rating_curve/water_edge_database/calibration_points/
export bathymetry_file=${inputsDir}/bathymetry/bathymetric_adjustment_data.gpkg
export bathy_file_ehydro=${inputsDir}/bathymetry/final_bathymetry_ehydro.gpkg
export bathy_file_aibased=${inputsDir}/bathymetry/ml_outputs_v1.01.parquet
export mannN_file_aibased=${inputsDir}/bathymetry/ml_outputs_v1.01.parquet
export osm_bridges=${inputsDir}/osm/bridges/241002/osm_all_bridges.gpkg

# input file location with nwm feature_id and recurrence flow values
export bankfull_flows_file=${inputsDir}/rating_curve/bankfull_flows/nwm3_high_water_threshold_cms.csv

# input file location with nwm feature_id and channel roughness and overbank roughness attributes
export vmann_input_file=${inputsDir}/rating_curve/variable_roughness/mannings_global_nwm3.csv
export vmann_input_file=${inputsDir}/rating_curve/variable_roughness/mannings_optz_fe_clusters_so3.csv

# input file location with nwm feature_id and recurrence flow values
export nwm_recur_file=${inputsDir}/rating_curve/nwm_recur_flows/nwm3_17C_recurrence_flows_cfs.csv
Expand Down
Loading
Loading