This document provides a walk-thru on running a basic Automated Rating Curve (ARC) model for a select domain.
The Automated Rating Curve (ARC) is a python-based model that generates rating-curve information (depth, velocity, top-width) along streams. ARC is typically used for large-scale applications (e.g., the Yellowstone BAsin), but can also be applied to smaller domains. Inputs to ARC are peak- and base-flow data for each stream reach (often from continental-scale flow models) and geospatial data (land cover, DEM, stream shapefile). ARC uses a simple approach to simulate a bathymetry profile within the DEM (https://doi.org/10.1016/j.jhydrol.2023.129769). Using a volume-fill approach of Manning's Equation, mulitple flow rates are simulated. Parameters (a and b) for a power-function are then generated where depth, velocity, and top-width are calculated as a function of flow (Q). For example, Depth = a *Q^b.
The ARC-generated rating curves can then be used to create flood maps. Here, we use ERDC's FloodSpreader model to show how flood maps can be generated when given a flow rate.
DEM, land cover, streamlines, and flow rates are all needed to run an ARC simulation.
(Download all files into a directory)
DEM from the 1/3 Arc Second National Elevation Dataset (https://apps.nationalmap.gov/downloader/)
Land Cover is from the National Land Cover Database 2011 (https://www.mrlc.gov/data/nlcd-2011-land-cover-conus)
Streamlines were obtained from GeoGLoWS (http://geoglows-v2.s3-website-us-west-2.amazonaws.com/#streams/)
Flow rates were obtained from return period from GeoGLoWS (http://geoglows-v2-retrospective.s3-website-us-west-2.amazonaws.com/#return-periods/)
GeoGLoWS Data in General: https://data.geoglows.org/available-data
Downloaded Data
DEM - houses all the DEM files that are to be analyzed
LandCover - houses the NLCD 2011 dataset.
StrmShp - Streamlines obtained from GeoGLoWS
FlowData - Recurrence interval flow data from GeoGLoWS
Formatted Data (these will be created using provided scripts)
LAND - This will be the land cover that ARC uses.
STRM - Rasterized version of the streamline.
FLOW - Contains file(s) with all GeoGLoWS flow data formatted for use in ARC.
ARC Output (these will be created using provided scripts)
VDT_Database - Stores the Velocity-Depth-TopWidth dataset produced by ARC. These are similar to those generated by AutoRoute.
CurveFile - This is a CSV file that contains the parameters for the power-functions (velocity, depth, top-width) for each stream cell.
Datasets for use with FloodSpreader (for testing purposes only)
FlowFile - Folder that contains file(s) with flow data to be simulated within FloodSpreader.
FloodMap - FloodSpreader output flood inundation map in raster format.
These steps will use the Anaconda (https://www.anaconda.com/download)
Open Anaconda Command Prompt and Change Directory to where your model resides.
cd AutomatedRatingCurve_TestCase/
Create the ARC environment
conda env create -f environment_ARC.yml
Activate the ARC environment
conda activate ARC
This script will help build an ARC model for you.
On Line 23 there is a variable called "Main_Directory". If you leave this blank the model will run in your local directory. Alternatively, you can change the folder path to where you want the model to run on your computer.
Note that Lines 30, 44, and 45 are not used by ARC, but are there to help simulate a flood inundation map in Step 4.
Simulate the script from Anaconda Prompt:
python ARC_SetupProcess_using_Geospatial_Datasets.py
The script builds the required folders for ARC (STRM, LAND, FLOW, VDT, Bathymetry, ARC_Input_Files, etc.).
The "FlowFile" and "FloodMap" folders are generated for the FloodSpreader simulation.
The script formats the landcover to the same spatial resolution as the DEM.
The script converts the streamlines to a raster format.
The script formats flow data from GeoGLoWS into a format that ARC and FloodSpreader can use.
The ARC code is written in Python and can be called from the Anaconda Prompt.
Within the Anaconda Command Prompt, type the following:
python Automated_Rating_Curve_Generator.py ARC_InputFiles/ARC_Input_File.txt
The main outputs from the ARC code are both located in the VDT folder:
VDT_Database file (Gardiner_VDT_Database.txt)
RatingCurve file (Gardiner_CurveFile.csv)
This is a VERY basic code that uses the rating curve data from ARC to create a flood map using a given flow rate.
The inputs to ARC_FloodMapper.py are already set for this example. For future applications change inputs on Lines 548 - 565.
The main output from the ARC_FloodMapper.py code is a flood inundation map (Gardiner_ARC_Flood.tif) which is saved in the "FloodMap" folder.
Within the Anaconda Command Prompt, type the following:
python ARC_FloodMapper.py
Flow data is provided in the "FlowFile" folder. However, this data needs to be paired with Rating Curves from ARC in order to create a VDT file that FloodSpreader can use.
The Curve_to_VDT_for_FloodSpreader.py script pairs the flow data with the rating curves file to create a VDT file that FloodSpreader can use.
Output is the Gardiner_VDT_FS.csv file in the VDT folder.
Within the Anaconda Command Prompt, type the following:
python Curve_to_VDT_for_FloodSpreader.py
The FloodSpreader code is also written in C and is provided as an executable.
The main output from the Floodsperader code is a flood inundation map (Gardiner_ARC_Flood.tif) which is saved in the "FloodMap" folder.
Within the Anaconda Command Prompt, type the following:
floodspreader.exe ARC_InputFiles/ARC_Input_File.txt
Gather your own geospatial datasets (see links below). You can save these in the existing directory, or create your own.
Update to the set-up script (ARC_SetupProcess_using_Geospatial_Datasets.py) for your location, specifically lines 23-46.
Run the ARC and FloodSpreader codes to see what results you get.
There are several sources of Digital Elevation Model (DEM) data. In the U.S., the National Elevation Dataset (NED) is an often-used source for DEM data (https://apps.nationalmap.gov/downloader/).
ARC and FloodSpreader have been simulated using spatial resolutions from sub-meter to approximately 90-m. In general, it is best to have spatial resolutions less than 30-m.
ARC and FloodSpreader can operate in both geographic and projected coordinate systems. Typically, geographic coordinate systems are used.
The National Land Cover Database (NLCD) (https://www.mrlc.gov/data/nlcd-2011-land-cover-conus) is a rasterized land cover map.
The NLCD data may need to be converted to the projection of the DEM data.
You may also want to clip the data to the area of interest.
GeoGLoWS has streams in Geopackages (http://geoglows-v2.s3-website-us-west-2.amazonaws.com/#streams/).
Convert the GeoGLoWS streams to a shapefile format with the same projection as the DEM data.
You may also want to clip the streams to just the area of interest.
GeoGLoWS also provides recurrence-interval flow data (http://geoglows-v2-retrospective.s3-website-us-west-2.amazonaws.com/#return-periods/).
Download the file that corresponds to your streams.
Helpful hint - Always set-up your model to use the same projection as your DEM. When using National Elevation Datasets it is typically EPSG:4269 - NAD83.