NOAA-Office of Water Predictions (OWP) use HAND FIM model for operational flood forecasting across CONUS (https://github.com/NOAA-OWP/inundation-mapping). It is a terrain based model that uses the Discharge and reach avergaed synthetic rating curves (SRCs) to generate the inundation and depth rasters at HUC-8 scale (Hydrologic Unit Code-8). The model can produce flood maps for all order streams within the watershed at a very low computational cost . The HUC-8 watersheds have catchment area more than 1000 sqkm , that makes this framework scalable and computationaly efficient. It is a fluvial flood model and doesnot have urban flood compponant.The last released version of the model is 4.5and has gone through significant improvements.The present notebook is user freindly and able to run the HAND FIM model from cloud and capable of running mutiple HUC-8s simulteniously.This model can run using any temporal resolution of streamflow (hourly, daily, monthly etc).It uses the NHDPlus unique river identifiers and assign the streamflow for each of the segment.
This version () of code is available on PyPI.
fimserve/
├── docs/(contain the code usage))
├── GeoGLOWS/(contain the streamflow download using GeoGLOWS hydrofabrics))
├── src/fimserve/
│ ├── streamflowdata/
├── nwmretrospectivedata.py
└── forecasteddata.py
│ ├── plots/ (Contains different plotting functionality)
├── FIMsubset/
├── xycoord.py
└── shpsubset.py
├── statistics/
├── calculatestatistics.py (calculates statistics between NWM and USGS gauge data)
├── datadownload.py (Includes all HUC8 raster things)
├── runFIM.py (OWPHAND model)
├── vizualization.py (In the Local jupyter notebook, it can be used to vizualize the user defined any inundation file interactively.)
└── tests/(includes test cases for each functionality)
Following is the whole structure of the framework consisting its applications and connection between different functionalities. The right one one i.e, b) is the directory structure once you use this package (for eg. after using this code by following docs/code_usage.ipynb) to download and process one or multiple hucs.
Figure: Flow chart of the framework a) complete workflow demonstrating how framework is designed b) the directory structure on user end when user run code.
Although it is not mandatory but We strongly recommend users to create a virtual environment and install this package on that virtual environment to avoid the conflict between system dependencies and package dependencies.
#creating a virtual environment using conda
conda create --name fimserve python==3.10
#Activate environment
conda activate fimserve
OR user can directly install it without virtual environment
#Using pip
pip install fimserve
#OR add using poetry to your framework deployment
poetry add fimserve
Once it installed, import it like
import fimserve as fm
#to download HUC8
fm.DownloadHUC8(HUC) #Like this it contains multiples functionality.
Then there are a lot of different modules, call it to work. For reference to run, Here (docs/code_usage.ipynb) is the sample usuage of this code and different functionality.
For quick usage: Use google colab. Here is fimserve in google colab:
Different HUC8 IDs, USGS gauge stations and flowline informations that might be require to further understand/running this framework can be found in this ArcGIS Instant App.
Funding for this project was provided by the National Oceanic & Atmospheric Administration (NOAA), awarded to the Cooperative Institute for Research to Operations in Hydrology (CIROH) through the NOAA Cooperative Agreement with The University of Alabama (#Funding ID). | |
We would like to acknowledge the TEEHR script developed by RTI International (https://github.com/RTIInternational/teehr). We use this script to get NWM discharge quickly. |
Dr. Sagy Cohen ([email protected]), Dr Anupal Baruah,([email protected]), Supath Dhital ([email protected])