# Load HYPEtools Package
library(HYPEtools)
# Get Path to HYPEtools Model Example Files
model_path <- system.file("demo_model", package = "HYPEtools")
# List HYPE Model Example Files
list.files(model_path)
#> [1] "AquiferData_Example.txt" "ClassData.txt"
#> [3] "FloodData_Example.txt" "ForcKey.txt"
#> [5] "GeoClass.txt" "GeoData.txt"
#> [7] "LakeData.txt" "Pobs.txt"
#> [9] "PointSourceData.txt" "Qobs.txt"
#> [11] "Tobs.txt" "Xobs.txt"
#> [13] "description.txt" "filedir.txt"
#> [15] "gis" "info.txt"
#> [17] "optpar.txt" "par.txt"
#> [19] "pmsf.txt" "results"More information on the different types of HYPE model files can be found on the HYPE Wiki: http://hype.smhi.net/wiki/doku.php?id=start:hype_file_reference
# Import Files
gd <- ReadGeoData(file.path(model_path, "GeoData.txt"))
gc <- ReadGeoClass(file.path(model_path, "GeoClass.txt"))
#> 14 data columns in imported file.
# Some Import Checks
summary(gd)
#>
#> Columns, except 'SLC_n', 'SCR_n', and 'DHSLC_n':
#>
#> column name class | column name class | column
#> 1 SUBID integer | 5 PARREG integer | 15
#> 2 MAINDOWN integer | 6 RIVLEN numeric | 16
#> 3 LAKEDATAID integer | 13 SLOPE_MEAN numeric | 17
#> 4 AREA numeric | 14 ICATCH numeric |
#> name class
#> LAKE_DEPTH numeric
#> POURX numeric
#> POURY numeric
#>
#>
#> mean median minimum maximum
#> Sub-basin area (km2): 13.8 11.1 0.0721 62.6
#> Unit river length (km/km2): 0.518 0.246 0.000807 3.63
#> ilake drainage area fraction (-): 0.301 0.3 0.3 0.319
#>
#> Number of sub-basins: 25
#> ID(s) of outlets in 'maindown': 3606
#> Number of SLC classes: 6
#> Number of SCR classes: 0
#> Number of DHSLC classes: 0
#> SLC columns: c(7:12)
str(gc)
#> 'data.frame': 6 obs. of 14 variables:
#> $ slc : int 1 2 3 4 5 6
#> $ landuse : int 1 1 3 2 2 3
#> $ soil : int 1 1 1 1 2 2
#> $ cropid1 : int 0 0 0 0 0 0
#> $ cropid2 : int 0 0 0 0 0 0
#> $ rotation : int 0 0 0 0 0 0
#> $ vegtype : int 1 1 1 1 1 1
#> $ special : int 1 2 0 0 0 0
#> $ tiledepth : int 0 0 0 0 0 0
#> $ streamdepth: num 0 0 0.6 1 1 0.75
#> $ nsoils : int 1 1 3 3 3 3
#> $ depth1 : num 10 10 0.25 0.25 0.25 0.25
#> $ depth2 : num NA NA 0.5 0.75 0.75 0.5
#> $ depth3 : num NA NA 0.75 1.5 1.5 1
#> - attr(*, "comment")= chr [1:3] "!Landuses: 1=Water; 2=Coniferous forest; 3=Agricultural land\t\t\t\t\t\t\t\t\t\t\t\t\t" "!Soils: 1=Fine soil; 2=Coarse soil\t\t\t\t\t\t\t\t\t\t\t\t\t" "!Combination\tLanduse\tSoil\tCropid-main\tCropid-2nd\tRotation\tVegetationstyp\tSpecial-class\tTile-depth\tDrai"| __truncated__
class(gd)
#> [1] "HypeGeoData" "data.frame"# Import Discharge Observations
qobs <- ReadObs(file.path(model_path, "Qobs.txt"))
str(qobs)
#> 'data.frame': 365 obs. of 2 variables:
#> $ DATE : POSIXct, format: "2001-01-01" "2001-01-02" ...
#> $ X3587: num 5.09 5 5 5 5.01 ...
#> - attr(*, "obsid")= int 3587
#> - attr(*, "timestep")= chr "day"
#> - attr(*, "variable")= chr "rout"
# Get SUBIDs with observations from attribute
obsid(qobs)
#> [1] 3587# Import Parameter File
par <- ReadPar(file.path(model_path, "par.txt"))
str(par)
#> List of 111
#> $ !! : chr "======================================================================================================="
#> $ !! : chr "GENERAL PARAMETERS"
#> $ !! : chr "__________"
#> $ cevpam : num 0.25
#> $ cevpph : num 67.5
#> $ damp : num 0.5
#> $ deepmem : num 1000
#> $ epotdist : num 3
#> $ gldepi : num 3.6
#> $ grata : num 0.6
#> $ gratk : num 0.283
#> $ gratp : num 2
#> $ lp : num 0.95
#> $ qmean : num 200
#> $ rcgrw : num 0
#> $ rivvel : num 1
#> $ rrcs3 : num 2e-04
#> $ sdnsnew : num 0.09
#> $ sdnsmax : num 0.5
#> $ sdnsrate : num 0.015
#> $ sdnsradd : num 0.026
#> $ tcalt : num 0.6
#> $ ttpi : num 3
#> $ pcelevth : num 500
#> $ pcelevadd : num 0.04
#> $ pcelevmax : num 0.04
#> $ !! : chr "======================================================================================================="
#> $ !! : chr "LANDUSE"
#> $ !! : chr "__________"
#> $ !! : chr "Landuse Classes: 1=Water 2=Coniferous forest 3=Agricultural land"
#> $ cevp : num [1:3] 0.175 0.22 0.215
#> $ cmlt : num [1:3] 2.8 1.9 3.5
#> $ frost : num [1:3] 2 2 2
#> $ srrcs : num [1:3] 0.4 0.2 0.3
#> $ surfmem : num [1:3] 17.8 5.15 5.15
#> $ ttmp : num [1:3] 0.2 0.3 0.2
#> $ !! : chr "======================================================================================================="
#> $ !! : chr "SOILS"
#> $ !! : chr "__________"
#> $ !! : chr "Soil Classes: 1=Fine soil 2=Coarse soil"
#> $ mperc1 : num [1:2] 20 25
#> $ mperc2 : num [1:2] 20 25
#> $ rrcs1 : num [1:2] 0.6 0.1
#> $ rrcs2 : num [1:2] 0.04 0.03
#> $ sfrost : num [1:2] 1 1
#> $ srrate : num [1:2] 0.05 0.025
#> $ trrcs : num [1:2] 0.3 0.15
#> $ wcep : num [1:2] 0.01 0.07
#> $ wcfc : num [1:2] 0.15 0.15
#> $ wcwp : num [1:2] 0.15 0.05
#> $ !! : chr "======================================================================================================="
#> $ !! : chr "WATER TEMPERATURE"
#> $ !! : chr "__________"
#> $ upper2deep: num 2.5
#> $ tcfriver : num 30
#> $ scfriver : num 0.3
#> $ ccfriver : num -0.3
#> $ lcfriver : num -0.1
#> $ tcflake : num 40
#> $ scflake : num 0.7
#> $ ccflake : num 0
#> $ lcflake : num 0
#> $ stbcorr1 : num 0.4
#> $ stbcorr2 : num 0.25
#> $ stbcorr3 : num 0
#> $ !! : chr "======================================================================================================="
#> $ !! : chr "LAKE AND RIVER ICE"
#> $ !! : chr "__________"
#> $ licewme : num 0.1
#> $ licetf : num 0
#> $ licesndens: num 0.0024
#> $ licekika : num 10
#> $ licekexp : num 1.88
#> $ licetmelt : num 1.25
#> $ licewcorr : num 0.5
#> $ !! : chr "__________"
#> $ ricewme : num 0.2
#> $ ricetf : num 0
#> $ ricesndens: num 0.0024
#> $ ricekika : num 10
#> $ ricekexp : num 1.88
#> $ ricetmelt : num 1.25
#> $ !! : chr "======================================================================================================="
#> $ !! : chr "TRACERS:"
#> $ !! : chr "____________________________________"
#> $ !! : chr "GENERAL PARAMETERS"
#> $ !! : num(0)
#> $ !! : chr "Initial concentrations in soil and water"
#> $ init1 : num 0
#> $ init1sw : num 0
#> $ !! : chr "Evaporation, proportion of the tracer that follows evaporating water"
#> $ t1evap : num 0
#> $ !! : chr "____________________________________"
#> $ !! : chr "Exponential decay, half life of the tracer in days"
#> $ t1expdec : num 0
#> $ !! : chr "____________________________________"
#> $ !! : chr "Adsorption/desorption to/from soil; equilibrium concentration coefficients"
#> $ !! : chr "(\"unit\" adsorbed to 1 kg of soil in one liter of soil water, U/kg soil)"
#> $ t1freuc : num 0
#> [list output truncated]