From b1755bf19eea7923e98af91c0221fdff565378f6 Mon Sep 17 00:00:00 2001 From: David <david.dorchies@inrae.fr> Date: Sun, 1 Dec 2024 20:08:21 +0100 Subject: [PATCH] feat(RunModel.GRiwrmOutputsModel): handle Supervisor as InputsModel WIP: RunModel.Supervisor is still not able to handle it Refs #174 --- R/RunModel.GRiwrmOutputsModel.R | 18 +++++++++++++++++- man/RunModel.GRiwrmOutputsModel.Rd | 3 ++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/R/RunModel.GRiwrmOutputsModel.R b/R/RunModel.GRiwrmOutputsModel.R index 382d66c..cf8d00d 100644 --- a/R/RunModel.GRiwrmOutputsModel.R +++ b/R/RunModel.GRiwrmOutputsModel.R @@ -17,6 +17,8 @@ #' @inheritParams getNextTimeSteps #' @inheritParams RunModel.GRiwrmInputsModel #' @inheritParams airGR::CreateRunOptions +#' @param InputsModel \[`GRiwrmInputsModel` object\] (see +#' [CreateInputsModel.GRiwrm]) or \[`Supervisor` object\] (See [CreateSupervisor]) #' @param DatesR (optional) [POSIXt] vector of dates of period to be used for #' the model run. See details #' @param Qinf (optional) [matrix] or [data.frame] of [numeric] containing @@ -49,8 +51,17 @@ RunModel.GRiwrmOutputsModel <- function(x, merge_outputs = TRUE, ...) { stopifnot(inherits(x, "GRiwrmOutputsModel"), - inherits(InputsModel, "GRiwrmInputsModel"), + inherits(InputsModel, "GRiwrmInputsModel") || is.Supervisor(InputsModel), inherits(RunOptions, "GRiwrmRunOptions")) + + if (is.Supervisor(InputsModel)) { + use_supervisor <- TRUE + sv <- InputsModel + InputsModel <- sv$InputsModel + } else { + use_supervisor <- FALSE + } + # Check Run Period next_time_step <- getNextTimeSteps(x) next_index <- which(InputsModel[[1]]$DatesR == next_time_step) @@ -114,6 +125,11 @@ RunModel.GRiwrmOutputsModel <- function(x, } } + if (use_supervisor) { + sv$InputsModel <- InputsModel + InputsModel <- sv + } + # Run the model OM <- suppressMessages( RunModel( diff --git a/man/RunModel.GRiwrmOutputsModel.Rd b/man/RunModel.GRiwrmOutputsModel.Rd index 5dd8032..25833d8 100644 --- a/man/RunModel.GRiwrmOutputsModel.Rd +++ b/man/RunModel.GRiwrmOutputsModel.Rd @@ -21,7 +21,8 @@ \item{x}{Object returned by \link{RunModel.GRiwrmInputsModel}, \link{RunModel.Supervisor}, or \link{RunModel.GRiwrmOutputsModel}} -\item{InputsModel}{[object of class \emph{InputsModel}] see \code{\link[airGR]{CreateInputsModel}} for details} +\item{InputsModel}{[\code{GRiwrmInputsModel} object] (see +\link{CreateInputsModel.GRiwrm}) or [\code{Supervisor} object] (See \link{CreateSupervisor})} \item{RunOptions}{[object of class \emph{GRiwrmRunOptions}] see \link{CreateRunOptions.GRiwrmInputsModel} for details} -- GitLab