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)modela dynamic TOPMODEL list object
mapfile name of the map layers for the model
use_stateslogical if states should be imported
deltaerror term in checking redistribution sums
drop_maplogical 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_defna description of the output series
keep_statesa vector of POSIXct objects (e.g. from xts) giving the time stamp at which the states should be kept
sub_stepsimulation timestep in seconds, default value of NULL results in data time step
vtoltolerance on width of bounds in the numeric search for surface and saturated zone solutions (as volume)
ftol- not currently used
max_itmaximum 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