R6 Class for Dynamic TOPMODEL
R6 Class for Dynamic TOPMODEL
new()
Creates a dynatop class object from the a list based model description as generated by dynatopGIS.
dynatop$new(model, map = NULL, use_states = FALSE, delta = 1e-13)
model
a dynamic TOPMODEL list object
map
file name of the map layers for the model
use_states
logical if states should be imported
delta
error term in checking redistribution sums
drop_map
logical if the map should be dropped
This function makes some basic consistency checks on a list representing a dynamic TOPMODEL model. The checks performed and basic 'sanity' checks. They do not check for the logic of the parameter values nor the consistency of states and parameters. Sums of the redistribution matrices are checked to be in the range 1 +/- delta.
add_data()
Adds observed data to a dynatop object
initialise()
Initialises a dynatop object in the simplest way possible.
sim()
Simulate the hillslope and channel components of a dynatop object
dynatop$sim(
output_defn,
keep_states = NULL,
sub_step = NULL,
vtol = 0.001,
ftol = sqrt(.Machine$double.eps),
max_it = 1000
)
output_defn
a description of the output series
keep_states
a vector of POSIXct objects (e.g. from xts) giving the time stamp at which the states should be kept
sub_step
simulation timestep in seconds, default value of NULL results in data time step
vtol
tolerance on width of bounds in the numeric search for surface and saturated zone solutions (as volume)
ftol
- not currently used
max_it
maximum number of iterations to use in the solution of the saturated zone
get_output()
Return channel inflow as an xts series or list of xts series
dynatop$get_output(name = colnames(private$time_series$output))
plot_output()
Plot the channel inflow
dynatop$plot_output(name = colnames(private$time_series$output))
plot_state()
Plot a current state of the system
dynatop$plot_state(state = c("s_sf", "s_rz", "s_uz", "s_sz"))
## the vignettes contains further details of the method calls.
data("Swindale") ## example data
mdl <- Swindale$model
mdl$map <- system.file("extdata","Swindale.tif",package="dynatop",mustWork=TRUE)
ctch_mdl <- dynatop$new(mdl$hru,map=mdl$map) ## create with model
ctch_mdl$add_data(Swindale$obs) ## add observations
ctch_mdl$initialise() ## initialise model
ctch_mdl$sim(Swindale$model$output_flux) ## simulate model
#> Warning: Output definition does not have scale - adding a vector of 1's