RunModel.R 1.72 KiB
#' RunModel function for *BasinsObs* object
#'
#' This function simplifies the run of an airGRiwrm model by chaining all the steps ([airGRiwrm::CreateInputsModel.GRiwrm], [airGRiwrm::CreateRunOptions.GRiwrmInputsModel] and [airGRiwrm::RunModel.GRiwrmInputsModel]) into one single step.
#'
#' @param BasinsObs an object of class *BasinsObs*, see [loadBasinsObs] and [createBasinsObs]
#' @param paramFile [character] the path of the file containing the model parameters (use to call [loadCalibrationParams])
#' @param InputsModel an object of class *GRiwrmInputsModel*, see [CreateInputsModel.BasinsObs]
#' @param IndPeriod_WarmUp (optional) [numeric] index of period to be used for the model warm-up [-]. See [airGR::CreateRunOptions] for details
#' @param IndPeriod_Run (optional) [numeric] index of period to be used for the model run [-]. See [airGR::CreateRunOptions] for details
#' @param ... not used (compatibility with others S3 methods)
#' @template param_cfg
#' @return An object of class *GriwrmOutputsModel* produced by [airGRiwrm::RunModel.GRiwrmInputsModel]
#' @export
RunModel.BasinsObs <- function(BasinsObs,
                     paramFile,
                     InputsModel = suppressMessages(CreateInputsModel(BasinsObs)),
                     IndPeriod_WarmUp = seq(1, 365),
                     IndPeriod_Run = seq(366, length(BasinsObs$DatesR)),
                     cfg = loadConfig(),
                     ...) {
    RunOptions <- suppressWarnings(
        airGRiwrm::CreateRunOptions(
            InputsModel,
            IndPeriod_WarmUp = IndPeriod_WarmUp,
            IndPeriod_Run = IndPeriod_Run
    Param <- loadCalibrationParams(paramFile)
    suppressMessages(RunModel(InputsModel, RunOptions, Param))