Distributed Hydrology Soil Vegetation Model



As a research model, documentation for DHSVM is limited and subject to change. However, the goal is to make the documentation complete enough to enable users to implement their model without direct assistance from us. If you find any mismatch between the document and what the model actually does, if certain features are undocumented, or if you would like to add documentation based on your own experience, we would like to hear from you, and please feel free to contact us.

DHSVM Overview

A brief summary of the main features of DHSVM is presented in this document DHSVM Overview.

For a detailed introduction to principle concepts and components that lie under the framework of DHSVM, please refer to the document 'The distributed hydrology soil vegetation model' (download) This document can also be viewed through this Google Book page. Note that this document applies to DHSVM version 2.0 and was last updated in 2002.

Published works related to DHSVM-based applications and case studies can be found in the publications section.


Tutorials for different DHSVM versions are now available.  The links below contain all input files required to run DHSVM, as well as detailed, step-by-step instructions.  Because our goal is to make implementation of the model possible for users on their own, we welcome comments on this tutorial.  If you have specific suggestions on how to improve the model instructions, feel free to contact the administrator. Unfortunately, we are not able to provide any further instructions on running the model.

DHSVM 3.1 for urban hydrologic processes is developed based on DHSVM 3.0. The adaptions to DHSVM 3.0 expand the model capabilities to applications in urbanized or partially urbanized areas.

The main changes in the configuation file:

 For each defined land cover category (or VEGETAION type):

How to run DHSVM 3.1:

Issues regarding DEM SINK REMOVAL:

ArcGIS tools calculate flow direction and distribute flow using an eight direction< approach (often referred to as D8) while DHSVM uses four flow directions (D4). Accordingly, in small-scale model applications, you may find surface water in some cells do not drain properly to the downstream cells.
In this 3.1 version, the elevation of identified sink cells is internally increased to the elevation of the lowest neighboring cell in order to form a downslope path.

In order to run the mass wasting option in the sediment model, the first step is to run the hydrological model with SEDIMENT option set FALSE. The hydrological run will output the file "saturation_extent.txt" (saturation extention) which is needed to run the sediment model and to define the specific events to be specified in the sediment control file. Then run DHSVM with SEDIMENT TRUE and Overland Routing KINEMATIC ( instead of CONVENTIONAL) over the specified time periods. If you do not need the mass wasting option, you do not need to run DHSVM in 2 steps, just set SEDIMENT to TRUE from the start in the main control file.

Please check the input file processing section below for now.

1) The GIS file processing (.bin files) is identical to 2.0.1 (same aml scripts, .c, etc).

2) Use DHSVM 3.0 templates for the files that you had to edit manually before ( stream.class.dat, road.class.dat, configuration files). Those are available in the input files processing section below.

3) If you use the sediment option, you might need an additionnal DEM ( higher resolution DEM). Just process it the same way you did for the other one. Rainy Creek 10 meter DEM to be used by the sediment option is available here.

As a test, you can find all the input files and output files as run in our lab: download from here.

Tutorial for DHSVM 2.0


Download the tutorial  (3.1 mb)

Access the processed input files here for checking your input files processing.

Model Operation

Describes how to compile the source code, input requirements, and miscellaneous issues related to running the model

Model Input

The following input files are part of a DHSVM application. Note that many input files are created using GIS and advanced skills are required. Some files are always required, but additional files may be needed depending on the options specified in the configuration file. This is specified in the description below:

To initialize the model, a number of model state files are required as well:

Input Files Processing

Get started and do the input file processing in a few steps:

Model Output

There are a number of different types of output that the model can produce. In short, the following possibilities are available:

DHSVM hydrologic output

Unless you change the code, in very brief the ASCII output files will contain ( Check the above link for more details about the variables) :

Aggregated.Values (default output file)
Date HasSnow OverSnow LastSnow Swq Melt PackWater TPack SurfWater TSurf
ColdContent EvapTot EPot0 EPot1 EPot2 EAct0 EAct1 EAct2 EInt0 EInt1
ESoil00 ESoil01 ESoil02 ESoil10 ESoil11 ESoil12 ESoil Precip IntRain0 IntRain1
IntSnow0 IntSnow1 RadBeam RadDiff SoilMoist0 SoilMoist1 SoilMoist2 Perc0 Perc1
Perc2 TableDepth SatFlow Runoff SoilTemp Qnet Qs Qe Qg Qst Ra IExcess (InfiltAcc)

Mass.Balance (default output file)
Date IExcess CanopyWater SoilWater Snow.Swq Soil.SatFlow ChannelInt RoadInt
CulvertReturnFlow Evap.ETot Precip Snow.VaporMassFlux Snow.CanopyVaporMassFlux
OldWaterStorage CulvertToChannel RunoffToChannel MassError

Stream.Flow ( network output file )
Date Discharge_for_station1 Discharge_for_station2 etc (each columns corresponds to the "SAVE" markers in the streams.network.dat.

Road.Flow ( network output file )
Date Discharge_for_segment1 etc ( each columns is the discharge at the culvert with a "SAVE" marker in the road.network.dat file.)

Streamflow.Only and Road.Only ( network output file )
the first column is the date, and then each columns is the discharge at all the station or road segment where you wrote "SAVE" in the stream.network.dat row

AggregatedSediment.Values ( mass wasting model output file )
Date SatThick DeltaDepth Probability TotMassWasting TotMassDeposition TotSedToChannel Erosion
SedFluxOut OverlandInflow RdErosion RdSedToHill OverroadInflow

MassSediment.Balance ( mass wasting model output file )
Date MassWasting SedimentToChannel MassDeposition MWMMassError Sediment.Erosion
Road.Erosion RoadSed DebrisInflow SedimentOverlandInflow SedimentOverroadInflow
SedimentOutflow CulvertReturnSedFlow CulvertSedToChannel LastChannelSedimentStorage

failure_summary.txt ( mass wasting model output file )
Date avgnumfailures avgpixperfailure numlikelyfailedpixels which correspond to
"For each date that the mwm algorithm is run" "ave. no. of failures" "ave. no. of pixels per failure"
"total number of failed pixels with probability of failure greater than failure_threshold"

Sed.Stream.Flow and Sed.Road.Flow ( mass wasting model output file )
Date ChannelID TotalMass TotalOutflowConcentration SegmentID

Sed.Streamflow.Only and Sed.Roadflow.Only ( mass wasting model output file )
Date TotalOutflowConcentration_for_each_segment_with_a_marker_"SAVE"

saturation_extent.txt ( DHSVM output file )
Date Sat
The file is intended to screen for Mass Wasting dates to insert in the MWM configuration file
Saturation extent is the percentage of the number of pixels with a water table that is at least MTHRESH of soil depth

Model Output Processing

Last Changed: N. Sun, Jan, 2014