-
Notifications
You must be signed in to change notification settings - Fork 0
Using the GIS Routing Model
The model itself is relatively simple and faster to run than the original Lohman routing model. This is because most of the computational power is diverted to the initial GIS processing of the input files. Note that the GIS routing model input files are specific to the topography and land use used to create them. Additionally, the unit hydrograph files built on GIS input files are specific to the time step used to generate them. The GIS routing model is capable of routing hourly to daily output from the VIC model, but changing the time step being processed requires rebuilding the routing model input files.
There are three stages of pre-processing required to employ the GIS based routing model:
- First delineate the watershed, which identifies the watershed boundaries and the channel network. This can be completed with most GIS packages, though the second step assumes that you used the ArcHydro toolset with ArcGIS.
- Second determine the travel time from each pixel within the watershed to the outlet point of the watershed established in step 1. This will make use of a set of specialized Python scripts that require the ESRI ArcPy module.
- Third compute unit hydrographs using the output files generated from the first two stages. The unit hydrograph is unique for each model grid cell in each watershed and for the time step of the surface runoff and baseflow being routed. The file quantifies the delay and dispersion applied to outflow from a grid cell for each time step so that the routing model knows when that outflow should be added to the watershed outlet to produce the routed streamflow hydrograph.
The first two stages work best with a DEM of higher resolution that the model being routed, and require that the DEM be projected so that the area and dimensions of each grid cell are known in meters (preferred) or feet. The third stage is conducted at the native resolution of the model and at the time scale of the model output (hourly, 3-hourly, daily, etc.).
Before working on the GIS routing model input files, you must delineate the watershed. It is suggested that you make use of The ESRI ArcHydro toolset, as the GIS routing model toolset is setup to use the output layer names and attributes from ArcHydro by default. If you use another method to delineate the watershed (such as the ArcGIS Hydrology tools with installing ArcHydro), then you will need to change the defaults in each GIS routing tool to complete processing, and add a column named HydroID to the final table of watershed outlets.
Notes on process:
- Delineation MUST be completed with a projected DEM. If horizontal units are not in meters (preferred) or feet then the routing model will not be able to compute discharge in correct units.
- Unless you are running on a system with ArcGIS installed locally and with significant local hard drive and RAM storage, it is suggested that you use a moderate resolution DEM. DEM resolution should be finer that the VIC model simulation resolution to capture within cell flow paths, but using too high a resolution DEM can result in long processing times and failures due to memory or network problems. For example, if running the VIC model at 1/16th degree (~6 km) resolution, a 30 meter DEM may prove too difficult to process, while a 300 meter DEM will provide suitable results and resolution with substantially fewer processing issues.
- Consider the resolution of your land use data when picking the DEM resolution. The GIS routing model uses land use data in determining the roughness (Manning N) of overland flow. If the DEM is finer resolution than the land use data, then the resulting routing model gains additional granularity due only to flow path length and not due to additional information on land use effects on surface roughness.
Once the watershed (or watersheds) that are to be routed have been successfully delineated in Stage 1, this toolbox helps walk you through the steps required to develop the input files required to actually apply the GIS routing model. This toolset will determine the travel time from each pixel in the source DEM to the outlet of the watershed. Travel time is affected by land use that affect overland flow velocities, the channel network that controls how long water travels as overland flow, and channel properties that affect velocities in the channel network. The toolset finishes by aggregating the travel times for each high-resolution DEM pixel to a representative value for each grid cell at the hydrology model resolution. Thus the final routing model captures the effects of high-resolution features while being applied to the coarser resolution model results.
In order to complete this processing, you will need to have the following layers in an ArcMap Project file.
- High-Resolution, Projected Data Layers
- Layers must be projected to the same datum and projection with horizontal units of meters (preferred) or feet
- Raster layers must be finer resolution than VIC simulation cells, and all raster layers must have the same cell size
- ArcHydro / Watershed delineation output
- Flow Direction (fdr)
- Flow Accumulation (fac)
- Stream network raster (str)
- Watershed polygons (Watersheds)
- Land use / land cover map
- Feature (polygon) file of VIC simulation cells, where one attribute is unique for each simulation cell (typically created by converting VIC cell number raster into a feature class, and then projecting to match this project.
- VIC Model Resolution Data Layers
- Layer projection must match the desired VIC model simulation (unprojected/geographic, or projected) as they will be used as a template for creating the GIS model input files for the specific simulation.
- For output of grided routing model input files
- Raster cell number layer
- For output of non-gridded routing model input files
- NOTE: This method is not currently supported
- Feature (polygon) layer of cell numbers
For specifics on how to apply the toolbox to a dataset, please refer to the Purdue VIC Model Users Group wiki page tutorial.
Once the watershed has been delineated (Stage 1) and its characteristics have been quantified (Stage 2), the final preprocessing step builds unit hydrographs for each model grid cell that control the delay between outflow from the grid cell and when it reaches the watershed outlet as well as the dispersion of the arrival time. For example, the unit hydrograph for a grid cell near the watershed outlet might indicate that a delay of only a few hours and that all flow arrives within one day, while outflow from a cell in the headwaters might take a week and arrive over 2-3 days.
The time step used for the model output file is critical for this step, it must reflect the time step of the data fed to the GIS routing model and not that used internally within the hydrology model. For example, if the VIC model was run using an internal hourly time step, but the output files were saved on a daily basis, the unit hydrographs must be setup using the daily time step. The routing model can work with standard VIC model time steps (1, 2, 3 and 24 hours), but it cannot recover finer scale model output. If you want to route hourly streamflow, then you need to save the hourly runoff and baseflow output.
Currently, generating the unit hydrographs requires two steps.
Convert the ASCII raster file containing the contributing fraction for each grid cell into a list as required by the original Fortran model. Note that the first two columns are not used by the original model. Third columns is the name of the flux file for each VIC simulation cell, and the fourth column is the fractional area of the simulation cell (in square kilometers) that contributes to discharge for the current watershed.
# Sample File Contents
1 1 fluxes_47.1875_-95.5625 38.870000
2 2 fluxes_47.1875_-95.4375 43.110000
3 3 fluxes_47.0625_-95.6875 30.680000
4 4 fluxes_47.0625_-95.5625 119.400000
5 5 fluxes_47.0625_-95.4375 48.210000
6 6 fluxes_46.9375_-95.9375 5.590000
7 7 fluxes_46.9375_-95.8125 62.430000
8 8 fluxes_46.9375_-95.6875 53.170000
9 9 fluxes_46.9375_-95.5625 118.560000
10 10 fluxes_46.9375_-95.4375 25.600000
11 11 fluxes_46.8125_-96.9375 11.860000
12 12 fluxes_46.8125_-96.8125 103.270000
...
The ArcGIS toolbox currently develops an ASII raster file, so a simple script such as the one provided here can be used to convert that file into the format required by the routing model.
Here is a sample script for converting the ASCII raster file to the required list file:
arcgrid_to_xyz.script <watershed>_fract.txt | awk '{ printf( "%i\t%i\tfluxes_%.4f_%.4f\t%f\n", NR, NR, $2, $1, $3 ) }' > fract_area_<watershed>.list
The program MakeUnitHydrographFiles is applied to the GIS routing model input files for the current watershed and builds a unit hydrograph file specific to the setup and the selected routing time step. Time step used in generating the unit hydrograph file should match that of the VIC model output files, specifically the files containing OUT_RUNOFF and OUT_BASEFLOW.
Command line requirements for the MakeUnitHydrographFiles program:
Usage: MakeUnitHydrographFiles <mask grid> <mean time grid> <std time grid> <out file> <routing time step (hrs)>
This will generate the unit hydrograph file required by the GIS
routing model. Routing model parameter files must be created using
ArcGIS toolbox before the unit hydrograph can be created, and the
unit hydrograph must match the time step of the
VIC model flux files.
<mask grid> is the ArcGIS ASCII gridfile mask of the watershed being
routed;
<mean time grid> is the ArcGIS ASCII gridfile of mean travel times
from each grid cell to the outlet;
<std time grid> is the ArcGIS ASCII gridfile of travel times standard
deviation from each grid cell to the outlet;
<out file> is the name of the unit hydrograph file to be created;
<routing time step (hrs)> is the time step in hours of the data to
be routed - MUST match the time step of the VIC model
output file.
The program iuhcell is still available for backwards compatibility. This is the original Fortran code for building unit hydrograph files. If starting new, please use MakeUnitHydrographFiles instead. They will produce roughly the same output files, however, iuhcell hydrographs for each grid cell did not always sum to one after removal of very small contributions. That has been corrected in the newer code.
The program iuhcell is applied to the GIS routing model input files for the current watershed and builds a unit hydrograph file specific to the setup and the selected routing time step. Time step should match the VIC model output files.
Command line requirements for the iuhcell program:
iuhcell <mask grid> <mean time grid> <std time grid> <out file> <routing time step (hrs)>
The original two versions of the GIS routing model, conv3h and convdaily, have been replaced. All users should make use of the new C based code, GisStreamflowRouting.c, which is compiled to GisStreamflowRouting.
The routing model GisStreamflowRouting can be used with any acceptable VIC model time step (typically 24, 3, 2, or 1 hours) but the routing model MUST be run at the same time step as the model output is stored in the flux files. If OUT_RUNOFF and OUT_BASEFLOW are stored on a daily basis, the routing model must also be run on a daily basis. If they are stored hourly, then the routing model must be run using the same hourly time step. The new model will also use the header in the VIC model output files to identify the columns where OUT_RUNOFF and OUT_BASEFLOW are stored. The time step and column definitions were hard-wired in the original Fortran based GIS routing model code, so changes required that the model be recompiled or that multiple version be kept on hand.
Here is the usage message from the GisStreamflowRouting model:
Usage: GisStreamflowRouting <flux path> <discharge time step> <mask grid> <unit hydrograph file> <fract file> <out file>
GIS routing model will generate streamflow discharge for the
selected watershed using output from the current VIC model
simulation. Routing model parameter files must be created using
ArcGIS toolbox before the model is run, and must match the time
step of the VIC model flux files.
<flux path> is the path where the flux files to be routed are stored;
<discharge time step> is the time step of the VIC model output files
(should match that used to create unit hydrograph file);
<mask grid> is the ArcGid ASCII Raster file with watershed mask;
<unit hydrograph file> is the unit hydrograph for the watershed;
<fract file> is a list of VIC model output files with the contributing
area (sq km) from each grid cell in the watershed; and
<out file> is the output discharge file with two columns:
[1] datetime (MM-DD-YYYY or MM-DD-YYYYTHH,
MM = Month, DD = Day, YYYY = year, HH = hour),
[2] discharge (cubic meters per second).
The routing model can be run any number of times for the same watershed, using any number of VIC model output file sets - as long as the output file time step does not change. To change the time step of routing, you must rerun the step to build the unit hydrograph, since the unit hydrograph files are constructed specifically for the time step used by the VIC model output. To change the effects of land use or channel you must redo the ArcGIS pre-processing steps as they affect the travel time of water through the watershed.