Commit fce44aa0 authored by Dorchies David's avatar Dorchies David
Browse files

refactor: rename 'Griwrm' to 'GRiwrm' in the code

Refs #15
Showing with 54 additions and 54 deletions
+54 -54
#' Calibration of a semi-distributed run-off model
#'
#' @param InputsModel object of class \emph{GriwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param RunOptions object of class \emph{GriwrmRunOptions}, see \code{\link{CreateRunOptiosn.GRiwrm}} for details.
#' @param InputsCrit object of class \emph{GriwrmInputsCrit}, see \code{\link{CreateInputsCrit.GRiwrm}} for details.
#' @param CalibOptions object of class \emph{GriwrmCalibOptions}, see \code{\link{CreateCalibOptions.GRiwrm}} for details.
#' @param InputsModel object of class \emph{GRiwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param RunOptions object of class \emph{GRiwrmRunOptions}, see \code{\link{CreateRunOptiosn.GRiwrm}} for details.
#' @param InputsCrit object of class \emph{GRiwrmInputsCrit}, see \code{\link{CreateInputsCrit.GRiwrm}} for details.
#' @param CalibOptions object of class \emph{GRiwrmCalibOptions}, see \code{\link{CreateCalibOptions.GRiwrm}} for details.
#' @param useUpstreamQsim boolean describing if simulated (\code{TRUE}) or observed (\code{FALSE}) flows are used for calibration. Default is \code{TRUE}.
#' @param verbose (optional) boolean indicating if the function is run in verbose mode or not, default = \code{TRUE}
#' @param ... further arguments passed to \code{\link[airGR]{Calibration}}.
#'
#' @return GriwrmOutputsCalib object which is a list of OutputsCalib (See \code{\link[airGR]{Calibration}}) for each node of the semi-distributed model.
#' @return GRiwrmOutputsCalib object which is a list of OutputsCalib (See \code{\link[airGR]{Calibration}}) for each node of the semi-distributed model.
#' @export
Calibration.GriwrmInputsModel <- function(InputsModel,
Calibration.GRiwrmInputsModel <- function(InputsModel,
RunOptions,
InputsCrit,
CalibOptions,
......@@ -19,13 +19,13 @@ Calibration.GriwrmInputsModel <- function(InputsModel,
...) {
OutputsCalib <- list()
class(OutputsCalib) <- append(class(OutputsCalib), "GriwrmOutputsCalib")
class(OutputsCalib) <- append(class(OutputsCalib), "GRiwrmOutputsCalib")
OutputsModel <- list()
class(OutputsModel) <- append(class(OutputsModel), "GriwrmOutputsModel")
class(OutputsModel) <- append(class(OutputsModel), "GRiwrmOutputsModel")
for(IM in InputsModel) {
if(verbose) cat("Calibration.GriwrmInputsModel: Treating sub-basin", IM$id, "...\n")
if(verbose) cat("Calibration.GRiwrmInputsModel: Treating sub-basin", IM$id, "...\n")
if(useUpstreamQsim) {
# Update InputsModel$Qupstream with simulated upstream flows
......
......@@ -3,7 +3,7 @@
#' @param InputsModel the class of the first parameter determine which calibration is used
#' @param ... further arguments passed to or from other methods.
#'
#' @return \emph{OutputsCalib} or \emph{GriwrmOutputsCalib} object
#' @return \emph{OutputsCalib} or \emph{GRiwrmOutputsCalib} object
#' @export
Calibration <- function(InputsModel, ...) {
UseMethod("Calibration", InputsModel)
......
#' Title
#'
#' @param InputsModel object of class \emph{GriwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param InputsModel object of class \emph{GRiwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param ... further arguments passed to \code{\link[airGR]{CreateCalibOptions}}.
#'
#' @return \emph{GriwrmCalibOptions} object.
#' @return \emph{GRiwrmCalibOptions} object.
#' @export
CreateCalibOptions.GriwrmInputsModel <- function(InputsModel, ...) {
CreateCalibOptions.GRiwrmInputsModel <- function(InputsModel, ...) {
CalibOptions <- list()
......
#' Create \emph{GriwrmInputsCrit} object for GR-IWRM.
#' @param InputsModel object of class \emph{GriwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' Create \emph{GRiwrmInputsCrit} object for GR-IWRM.
#' @param InputsModel object of class \emph{GRiwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param FUN_CRIT \[function (atomic or list)\] error criterion function (e.g. \code{\link[airGR]{ErrorCrit_RMSE}}, \code{\link[airGR]{ErrorCrit_NSE}})
#' @param RunOptions object of class \emph{GriwrmRunOptions}, see \code{[CreateRunOptions.GRiwrm]} for details.
#' @param RunOptions object of class \emph{GRiwrmRunOptions}, see \code{[CreateRunOptions.GRiwrm]} for details.
#' @param Qobs matrix or data frame containing observed flows. Column names correspond to nodes ID
#' @param ... further arguments passed to \code{\link[airGR]{CreateInputsCrit}}.
#'
#' @return Object of class \emph{GriwrmInputsCrit}
#' @return Object of class \emph{GRiwrmInputsCrit}
#' @export
CreateInputsCrit.GriwrmInputsModel <- function(InputsModel,
CreateInputsCrit.GRiwrmInputsModel <- function(InputsModel,
FUN_CRIT = airGR::ErrorCrit_NSE,
RunOptions,
Qobs,
...) {
InputsCrit <- list()
class(InputsCrit) <- append(class(InputsCrit), "GriwrmInputsCrit")
class(InputsCrit) <- append(class(InputsCrit), "GRiwrmInputsCrit")
for(IM in InputsModel) {
InputsCrit[[IM$id]] <- CreateInputsCrit.InputsModel(
......
......@@ -8,16 +8,16 @@
#' @param verbose (optional) boolean indicating if the function is run in verbose mode or not, default = \code{TRUE}
#' @param ... further arguments passed to \code{\link[airGR]{CreateInputsModel}}.
#'
#' @return GriwrmInputsModel object equivalent to airGR InputsModel object for a semi-distributed model (See \code{\link[airGR]{CreateInputsModel}})
#' @return GRiwrmInputsModel object equivalent to airGR InputsModel object for a semi-distributed model (See \code{\link[airGR]{CreateInputsModel}})
#' @export
CreateInputsModel.GRiwrm <- function(x, DatesR, Precip, PotEvap, Qobs, verbose = TRUE, ...) {
InputsModel <- CreateEmptyGriwrmInputsModel()
InputsModel <- CreateEmptyGRiwrmInputsModel()
Qobs[is.na(Qobs)] <- -99 # airGRCreateInputsModel doesn't accept NA values
for(id in getNodeRanking(x)) {
if(verbose) cat("CreateInputsModel.griwrm: Treating sub-basin", id, "...\n")
InputsModel[[id]] <- CreateOneGriwrmInputsModel(
InputsModel[[id]] <- CreateOneGRiwrmInputsModel(
id, x, DatesR,Precip[,id], PotEvap[,id], Qobs, ...
)
}
......@@ -27,10 +27,10 @@ CreateInputsModel.GRiwrm <- function(x, DatesR, Precip, PotEvap, Qobs, verbose =
#' Create an empty InputsModel object for GRIWRM nodes
#'
#' @return \emph{GriwrmInputsModel} empty object
CreateEmptyGriwrmInputsModel <- function() {
#' @return \emph{GRiwrmInputsModel} empty object
CreateEmptyGRiwrmInputsModel <- function() {
InputsModel <- list()
class(InputsModel) <- append(class(InputsModel), "GriwrmInputsModel")
class(InputsModel) <- append(class(InputsModel), "GRiwrmInputsModel")
return(InputsModel)
}
......@@ -45,7 +45,7 @@ CreateEmptyGriwrmInputsModel <- function() {
#' @param Qobs Matrix or data frame of numeric containing observed flow (mm/time step). Column names correspond to node IDs.
##'
#' @return \emph{InputsModel} object for one.
CreateOneGriwrmInputsModel <- function(id, griwrm, DatesR, Precip, PotEvap, Qobs) {
CreateOneGRiwrmInputsModel <- function(id, griwrm, DatesR, Precip, PotEvap, Qobs) {
node <- griwrm[griwrm$id == id,]
FUN_MOD <- griwrm$model[griwrm$id == id]
......
......@@ -3,7 +3,7 @@
#' @param x First parameter determining which InputsModel object is created
#' @param ... further arguments passed to or from other methods.
#'
#' @return InputsModel or GriwrmInputsObject object
#' @return InputsModel or GRiwrmInputsObject object
#' @export
CreateInputsModel <- function(x, ...) {
UseMethod("CreateInputsModel", x)
......
#' Create \emph{GriwrmRunOptions} object for running and calibrating model in GR-IWRM.
#' Create \emph{GRiwrmRunOptions} object for running and calibrating model in GR-IWRM.
#'
#' @param InputsModel object of class \emph{GriwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param InputsModel object of class \emph{GRiwrmInputsModel}, see \code{\link{CreateInputsModel.GRiwrm}} for details.
#' @param ... further arguments passed to \code{\link[airGR]{CreateOptions}}.
#'
#' @return \emph{GriwrmRunOptions} object for running and calibrating model in GR-IWRM.
#' @return \emph{GRiwrmRunOptions} object for running and calibrating model in GR-IWRM.
#' @export
CreateRunOptions.GriwrmInputsModel <- function(InputsModels, ...) {
CreateRunOptions.GRiwrmInputsModel <- function(InputsModels, ...) {
RunOptions <- list()
class(RunOptions) <- append(class(RunOptions), "GriwrmRunOptions")
class(RunOptions) <- append(class(RunOptions), "GRiwrmRunOptions")
for(InputsModelBasin in InputsModels) {
RunOptions[[InputsModelBasin$id]] <- CreateRunOptions(InputsModel = InputsModelBasin, ...)
......
#' Create \emph{RunOptions} object for airGR and GR-IWRM. See \code{\link[airGR]{CreateOptions}} and \code{[CreateOptions.GriwrmInputsModel]}.
#' Create \emph{RunOptions} object for airGR and GR-IWRM. See \code{\link[airGR]{CreateOptions}} and \code{[CreateOptions.GRiwrmInputsModel]}.
#'
#' @param InputsModel object of class \emph{InputsModel} (see \code{\link[airGR]{CreateInputsModel}}) or \emph{GriwrmInputsModel} (See \code{[CreateInputsModel.GRiwrm]}).
#' @param InputsModel object of class \emph{InputsModel} (see \code{\link[airGR]{CreateInputsModel}}) or \emph{GRiwrmInputsModel} (See \code{[CreateInputsModel.GRiwrm]}).
#' @param ... further arguments passed to or from other methods.
#'
#' @return Object of \emph{RunOptions} class family
......
......@@ -14,12 +14,12 @@
#' @examples
#' \dontrun{
#' # Display diagram
#' DiagramGriwrm(griwrm)
#' DiagramGRiwrm(griwrm)
#' # Is the same as
#' DiagrammeR::mermaid(DiagramGriwrm(griwrm, display = FALSE), width = "100%", height = "100%")
#' DiagrammeR::mermaid(DiagramGRiwrm(griwrm, display = FALSE), width = "100%", height = "100%")
#' }
#'
DiagramGriwrm <- function(griwrm, display = TRUE, orientation = "LR") {
DiagramGRiwrm <- function(griwrm, display = TRUE, orientation = "LR") {
if(Sys.getenv("RSTUDIO") != "1") {
return()
}
......
#' Title
#'
#' @param InputsModel object of class \emph{GriwrmInputsModel}, see \code{[CreateInputsModel.GRiwrm]} for details.
#' @param RunOptions object of class \emph{GriwrmRunOptions}, see \code{[CreateRunOptions.GRiwrm]} for details.
#' @param InputsModel object of class \emph{GRiwrmInputsModel}, see \code{[CreateInputsModel.GRiwrm]} for details.
#' @param RunOptions object of class \emph{GRiwrmRunOptions}, see \code{[CreateRunOptions.GRiwrm]} for details.
#' @param Param list of parameter. The list item names are the IDs of the sub-basins. Each item is a vector of numerical parameters.
#' @param verbose (optional) boolean indicating if the function is run in verbose mode or not, default = \code{TRUE}
#' @param ... Mandatory for S3 method signature function compatibility with generic.
#'
#' @return \emph{GriwrmOutputsModel} object which is a list of \emph{OutputsModel} objects (See \code{\link[airGR]{RunModel}}) for each node of the semi-distributed model.
#' @return \emph{GRiwrmOutputsModel} object which is a list of \emph{OutputsModel} objects (See \code{\link[airGR]{RunModel}}) for each node of the semi-distributed model.
#' @export
RunModel.GriwrmInputsModel <- function(InputsModel, RunOptions, Param, verbose = TRUE, ...) {
RunModel.GRiwrmInputsModel <- function(InputsModel, RunOptions, Param, verbose = TRUE, ...) {
OutputsModel <- list()
class(OutputsModel) <- append(class(OutputsModel), "GriwrmOutputsModel")
class(OutputsModel) <- append(class(OutputsModel), "GRiwrmOutputsModel")
for(IM in InputsModel) {
if(verbose) cat("RunModel.GriwrmInputsModel: Treating sub-basin", IM$id, "...\n")
if(verbose) cat("RunModel.GRiwrmInputsModel: Treating sub-basin", IM$id, "...\n")
# Update InputsModel$Qupstream with simulated upstream flows
IM <- UpdateQsimUpstream(IM, RunOptions[[IM$id]]$IndPeriod_Run, OutputsModel)
......
#' RunModel function for both airGR and GriwrmInputsModel object
#' RunModel function for both airGR and GRiwrmInputsModel object
#'
#' @param InputsModel object of class \emph{InputsModel}, see \code{\link[airGR]{CreateInputsModel}} for details.
#' @param ... further arguments passed to or from other methods.
......
#' Update InputsModel$Qupstream with simulated upstream flows provided by GriwrmOutputsModels object.
#' Update InputsModel$Qupstream with simulated upstream flows provided by GRiwrmOutputsModels object.
#'
#' @param InputsModel \emph{GriwrmInputsModel} object. See \code{[CreateInputsModel.GRiwrm]}.
#' @param InputsModel \emph{GRiwrmInputsModel} object. See \code{[CreateInputsModel.GRiwrm]}.
#' @param IndPeriod_Run numeric index of period to be used for the model run (-)
#' @param OutputsModel \emph{GriwrmOutputsModel} object provided by \code{[RunModel.GriwrmInputsModel]}.
#' @param OutputsModel \emph{GRiwrmOutputsModel} object provided by \code{[RunModel.GRiwrmInputsModel]}.
#'
#' @description This function is used by \code{\link{RunModel.GriwrmInputsModel}} and \code{\link{Calibration.GriwrmInputsModel}} in order to provide upstream simulated flows to a node.
#' @description This function is used by \code{\link{RunModel.GRiwrmInputsModel}} and \code{\link{Calibration.GRiwrmInputsModel}} in order to provide upstream simulated flows to a node.
#'
#' @return InputsModel object with updated QobsUpsr
#'
......
......@@ -48,7 +48,7 @@ griwrm
The diagram of the network structure is represented below with in blue the upstream nodes with a GR4J model and in green the intermediate nodes with an SD (GR4J + LAG) model.
```{r fig.height = 7, fig.width = 8}
DiagramGriwrm(griwrm)
DiagramGRiwrm(griwrm)
```
......
......@@ -32,7 +32,7 @@ InputsCrit <- CreateInputsCrit(
str(InputsCrit)
```
## GriwrmCalibOptions object
## GRiwrmCalibOptions object
```{r}
CalibOptions <- CreateCalibOptions(InputsModel)
......
......@@ -177,7 +177,7 @@ Reservoir connections are added to the GRiwrm object:
reservoir_connections$model <- NA
reservoir_connections$area <- NA
griwrm2 <- rbind(griwrm, reservoir_connections)
DiagramGriwrm(griwrm2)
DiagramGRiwrm(griwrm2)
```
......
......@@ -36,10 +36,10 @@ Remove extra items from global configuration
selectedNodes <- c("MARNE_P23", "STDIZ_04", "LOUVE_19", "VITRY_25", "MARNE_P28", "MARNE_R25", "CHALO_21", "MONTR_18", "NOISI_17")
griwrm3 <- griwrm2[griwrm2$id %in% selectedNodes,]
griwrm3[griwrm3$id == "NOISI_17", c("down", "length")] = NA # Downstream station instead of PARIS_05
DiagramGriwrm(griwrm3)
DiagramGRiwrm(griwrm3)
```
Generate `GriwrmInputsModel` object
Generate `GRiwrmInputsModel` object
```{r}
Qobs3 <- cbind(Qobs2, QobsReservoirs)
......@@ -83,7 +83,7 @@ InputsCrit <- CreateInputsCrit(
)
```
## GriwrmCalibOptions object
## GRiwrmCalibOptions object
```{r}
CalibOptions <- CreateCalibOptions(InputsModel3)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment