Lohmann_UH: Simulate the streamflow discharge of the VIC model outputs by...

Description Usage Arguments Details Value References Examples

View source: R/routing.R

Description

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 Lohmann_UH); and secondly, generate the streamflow using the UH inputed by the VIC model runoff and baseflow outputs of each gridcell (use 'Lohmann_conv()').

Usage

1
2
3
4
Lohmann_UH(dir_file, soil_params, stn_x, stn_y, fract = NULL, veloc = 1.5,
  diffu = 800, uh_box = NULL, arcinfo = TRUE)

Lohmann_conv(runoff_table, uh, out_monthly = TRUE)

Arguments

dir_file

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_params

Soil parameter of the VIC model (a input of vic).

stn_x

X coordinate of the site to generate streamflow that Usually are the basin outlet or hydrologial stations.

stn_y

Y coordinate of the site to generate streamflow.

fract

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 corresponding to dir_file. If not provided, those fractions would be set to 1 (presume that all the gridcells of the routing model are entirely located in the basin.

veloc

velocity kinematic wave [m/s] of the river channel. Must be the file path of a ArcGIS style ASCII raster file that entirely corresponding to dir_file, or a single value for all gridcells. Default 1.5.

diffu

Diffusion parameter [m^2/s] of the river channel. Must be the file path of a ArcGIS style ASCII raster file that entirely corresponding to dir_file, or a single value for all gridcells. Default 800.

uh_box

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.

arcinfo

If the flow direction file using the direction code of ArcGIS or not (See details). Default TRUE.

runoff_table

Output table of the VIC model that containing variables: 'OUT_RUNOFF' and 'OUT_BASEFLOW' in daily scale.

uh

Output of the function Lohmann_UH that containing the unit hydrograph informations of the basin.

out_monthly

If is TRUE, it would also output the streamflow series at monthly scale, else only outputs at daily scale.

Details

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 direc_file), coordinates of the gridcells of the VIC model (soil_param), location of the pour point (parameter stn_x and 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 Lohmann_UH():

1
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 the function Lohmann_conv():

1
rf <- Lohmann_conv(runoff_table, uh)

Where 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:

32 64 128
16 0 1
8 4 2

Direction codes of not ArcGIS:

8 1 2
7 0 3
6 5 4

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 file.

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 vic that containing two variables: OUT_RUNOFF and OUT_BASEFLOW. Thus the parameter output_info of vic can be set as:

1
2
3
4
5
6
7
8
9
out_info <- list(
  runoff_table = list(
            timescale = 'day', aggpar = 1,
            outvars = c('OUT_RUNOFF', 'OUT_BASEFLOW'),
            aggtypes = c('sum', 'sum')
            )
)

res <- vic(forcing, soil, veg, output_info = out_info)

And then run the streamflow routing as:

1
sf <- Lohmann_conv(res$runoff_table, uh)

Value

The daiy routing results (Streamflow series) of the VIC model.

References

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.

Examples

 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')

VICmodel documentation built on May 1, 2019, 9:09 p.m.