Generate the daily streamflow output at the basin outlet using
the VIC model runoff outputs by the routing model developed by Lohman et al
(1996, 1998). The model is usually used in two steps: firstly, generate the
unit hydrographs (UH) of each gridcell for the outlet of the basin or the
situation of a hydrological station (for comparing the simulations with
observations) of the VIC model (use
and secondly, generate the streamflow using the UH inputed
by the VIC model runoff and baseflow outputs of each gridcell (use
1 2 3 4
Flow direction raster file of the basin (should be in ArcGIS style ASCII format). This describes the flow direction from a gridcell to its downstream neighboring gridcells. Details see the works of Wu et al. (2012).
Soil parameter of the VIC model (a input of
X coordinate of the site to generate streamflow that Usually are the basin outlet or hydrologial stations.
Y coordinate of the site to generate streamflow.
Path of fraction file, determining the fraction of the area
of the gridcells that actually in the basin. Must be a ArcGIS style ASCII
raster file that entirely
velocity kinematic wave [m/s] of the river channel. Must be
the file path of a ArcGIS style ASCII raster file that entirely
Diffusion parameter [m^2/s] of the river channel. Must be the
file path of a ArcGIS style ASCII raster file that entirely corresponding
Unit hydrograph describe the runoff from generated in the gridcell to the river channel pass throught the gridcell. If not assigned, a default unit hydrograph would be used.
If the flow direction file using the direction code of ArcGIS or not (See details). Default TRUE.
Output table of the VIC model that containing variables: 'OUT_RUNOFF' and 'OUT_BASEFLOW' in daily scale.
Output of the function
If is TRUE, it would also output the streamflow series at monthly scale, else only outputs at daily scale.
The streamflow routing of VIC model usually need two steps:
Step I build the unit hydrograph data of the basin, which needs information
of river channel networks of the basin (parameter
coordinates of the gridcells of the VIC model (
of the pour point (parameter
stn_y, usually is the
location of hydrological station providing streamflow observations for
comparing), and some other information (wave velocity, diffusion, and the
unit hydrograph of runoff from land to river channel of each gridcell, i.e.
uh_box). This uses the function
uh <- Lohmann_UH(direc_file, soil_params, stn_x, stn_y)
Step II generate the streamflow by using the unit hydrograph data of step I
and the runoff data output by the VIC model, using
rf are the routed streamflow series.
The finer raster of routing model than VIC gridcells is supported. For example, the routing model can be run at 0.125 degree spatial scale when the VIC model is run at 0.25 degree scale.
The flow direction raster file should be a ASCII file in ArcGIS style like that:
1 2 3 4 5 6 7 8 9 10
ncols 5 nrows 4 xllcorner -121.125 yllcorner 48.125 cellsize 0.125 NODATA_value -1 -1 2 4 4 -1 1 1 2 16 8 1 128 1 0 16 -1 64 128 64 -1
The raster values are the direction codes. The fraction file, wave velocity file and diffusion file should also in this form and the rasters should be entirely corresponding to direc file (number of rows and columns, size of gridcell, coordinates should be the same).
Direction code determines that the river channel would flow from a gridcell to which one of the 8 gridcells surround the center gridcell. Direction codes of ArcGis style:
Direction codes of not ArcGIS:
The fraction file (
fract) determines the fraction of the gridcells
that located in the realistic basin. The inner gridcells that entirely located in
the basin should be with the value 1, while for the outer gridcells, with
the boundary pass through, would have a part of runoff that flow into the
neighbouring basin and therefore those part of the runoff would not be
calculated in the streamflow routing. For the cases with large number of
gridcells, those effects could be ignore and could not provide the fraction
An example of the fraction file:
1 2 3 4 5 6 7 8 9 10
ncols 5 nrows 4 xllcorner -121.125 yllcorner 48.125 cellsize 0.125 NODATA_value -1 0.000 0.147 0.231 0.173 0.000 0.320 1.000 1.000 0.916 0.053 0.213 0.978 1.000 0.738 0.169 0.000 0.213 0.084 0.049 0.000
runoff_table should be a output table of function
that containing two variables:
Thus the parameter
vic can be set as:
1 2 3 4 5 6 7 8 9
And then run the streamflow routing as:
sf <- Lohmann_conv(res$runoff_table, uh)
The daiy routing results (Streamflow series) of the VIC model.
Lohmann D, Nolte-Holube R, Raschke E, 1996. A large-scale horizontal routing model to be coupled to land surface parametrization schemes. Tellus A, 48(5): 708-721.
Lohmann D, Raschke E, Nijssen B, et al., 1998. Regional scale hydrology: I. Formulation of the VIC-2L model coupled to a routing model. Hydrological Sciences Journal, 43(1): 131-141.
Wu H, Kimball JS, Li H, Huang M, Leung LR, and Adler RF, 2012. A new global river network database for macroscale hydrologic modeling.Water Resources Research, 48, W09701.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# Paths of the samples of the flow direction file and fraction file direc_file <- system.file("extdata", "direc_STEHE.asc", package = "VICmodel") fract_file <- system.file("extdata", "fract_STEHE.asc", package = "VICmodel") # Generate the unit hydrograph data of each gridcells. uh <- Lohmann_UH(direc_file, STEHE$soil, stn_x = -120.7, stn_y = 48.31, fract = fract_file) # Streamflow routing using the VIC output sf <- Lohmann_conv(STEHE$runoff_table_daily, uh) # Draw the output hydrograph plot(sf$daily, type = 'l') obs <- STEHE$streamflow_obs plot(obs, type = 'l') lines(sf$monthly, col = 'blue')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.