diff --git a/R/CreateCalibOptions.R b/R/CreateCalibOptions.R index e772caaf36efe2b9446229059902f5cbf622bce3..a06caea65cd481c7bf007ef3107bc722511ce672 100644 --- a/R/CreateCalibOptions.R +++ b/R/CreateCalibOptions.R @@ -12,7 +12,7 @@ #' @export #_FunctionInputs__________________________________________________________________________________ #' @param FUN_MOD [function] hydrological model function (e.g. RunModel_GR4J, RunModel_CemaNeigeGR4J) -#' @param FUN_CALIB (optional) [function] calibration algorithm function (e.g. Calibration_Michel, Calibration_optim), default=Calibration_Michel +#' @param FUN_CALIB (optional) [function] calibration algorithm function (e.g. Calibration_HBAN, Calibration_optim), default=Calibration_HBAN #' @param FUN_TRANSFO (optional) [function] model parameters transformation function, if the FUN_MOD used is native in the package FUN_TRANSFO is automatically defined #' @param OptimParam (optional) [boolean] vector of booleans indicating which parameters must be optimised (NParam columns, 1 line) #' @param FixedParam (optional) [numeric] vector giving the values to allocate to non-optimised parameter values (NParam columns, 1 line) @@ -22,12 +22,12 @@ #' [1,] \tab 0 \tab -1 \tab 0 \tab ... \tab 0.0 \cr #' [2,] \tab 3000 \tab +1 \tab 100 \tab ... \tab 3.0 \cr #' } -#' @param StartParam (optional) [numeric] vector of parameter values used to start global search calibration procedure (this argument is used by Calibration_optim but not by Calibration_Michel) +#' @param StartParam (optional) [numeric] vector of parameter values used to start global search calibration procedure (this argument is used by Calibration_optim but not by Calibration_HBAN) #' \tabular{llllll}{ #' \tab [X1] \tab [X2] \tab [X3] \tab [...] \tab [Xi] \cr #' \tab 1000 \tab -0.5 \tab 22 \tab ... \tab 1.1 \cr #' } -#' @param StartParamList (optional) [numeric] matrix of parameter sets used for grid-screening calibration procedure (values in columns, sets in line) (this argument is used by Calibration_Michel but not by Calibration_optim) +#' @param StartParamList (optional) [numeric] matrix of parameter sets used for grid-screening calibration procedure (values in columns, sets in line) (this argument is used by Calibration_HBAN but not by Calibration_optim) #' \tabular{llllll}{ #' \tab [X1] \tab [X2] \tab [X3] \tab [...] \tab [Xi] \cr #' [set1] \tab 800 \tab -0.7 \tab 25 \tab ... \tab 1.0 \cr @@ -53,7 +53,7 @@ #' \emph{$StartParamDistrib} \tab [numeric] matrix of parameter values used for grid-screening calibration procedure \cr #' } #************************************************************************************************** -CreateCalibOptions <- function(FUN_MOD,FUN_CALIB=Calibration_Michel,FUN_TRANSFO=NULL,OptimParam=NULL,FixedParam=NULL,SearchRanges=NULL, +CreateCalibOptions <- function(FUN_MOD,FUN_CALIB=Calibration_HBAN,FUN_TRANSFO=NULL,OptimParam=NULL,FixedParam=NULL,SearchRanges=NULL, StartParam=NULL,StartParamList=NULL,StartParamDistrib=NULL){ @@ -75,7 +75,7 @@ CreateCalibOptions <- function(FUN_MOD,FUN_CALIB=Calibration_Michel,FUN_TRANSFO= ##check_FUN_CALIB BOOL <- FALSE; - if(identical(FUN_CALIB,Calibration_Michel )){ ObjectClass <- c(ObjectClass,"HBAN" ); BOOL <- TRUE; } + if(identical(FUN_CALIB,Calibration_HBAN )){ ObjectClass <- c(ObjectClass,"HBAN" ); BOOL <- TRUE; } if(identical(FUN_CALIB,Calibration_optim )){ ObjectClass <- c(ObjectClass,"optim" ); BOOL <- TRUE; } if(!BOOL){ stop("incorrect FUN_CALIB for use in CreateCalibOptions \n"); return(NULL); } @@ -161,45 +161,45 @@ CreateCalibOptions <- function(FUN_MOD,FUN_CALIB=Calibration_Michel,FUN_TRANSFO= ("optim" %in% ObjectClass & is.null(StartParam)) ){ if("GR4H"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -2.00, +3.40, -9.10, - +3.90, -0.90, +4.10, -8.70, - +4.50, -0.10, +5.00, -8.10),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +5.12, -1.18, +4.34, -9.69, + +5.58, -0.85, +4.74, -9.47, + +6.01, -0.50, +5.14, -8.87),ncol=NParam,byrow=TRUE); } if("GR4J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -2.00, +3.40, -9.10, - +3.90, -0.90, +4.10, -8.70, - +4.50, -0.10, +5.00, -8.10),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +5.13, -1.60, +3.03, -9.05, + +5.51, -0.61, +3.74, -8.51, + +6.07, -0.02, +4.42, -8.06),ncol=NParam,byrow=TRUE); } if("GR5J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -1.70, +3.30, -9.10, -0.70, - +3.90, -0.60, +4.10, -8.70, +0.30, - +4.50, -0.10, +5.00, -8.10, +0.50),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +5.17, -1.13, +3.08, -9.37, -7.45, + +5.55, -0.46, +3.75, -9.09, -4.69, + +6.10, -0.11, +4.43, -8.60, -0.66),ncol=NParam,byrow=TRUE); } if("GR6J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -1.00, +3.30, -9.10, -0.90, +3.00, - +3.90, -0.50, +4.10, -8.70, +0.10, +4.00, - +4.50, +0.50, +5.00, -8.10, +1.10, +5.00),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +4.41, +0.41, +2.88, -9.10, -0.13, +0.81, + +5.02, +0.61, +3.45, -8.68, +1.95, +2.27, + +5.58, +0.78, +4.18, -8.12, +3.59, +3.56),ncol=NParam,byrow=TRUE); } if("GR2M"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -7.20, - +3.90, -6.00, - +4.50, -4.80),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +5.03, -7.15, + +5.22, -6.74, + +5.85, -6.37),ncol=NParam,byrow=TRUE); } if("GR1A"%in% ObjectClass){ - ParamT <- matrix( c( -5.00, - +0.00, - +5.00),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( -1.69, + -0.38, + +1.39),ncol=NParam,byrow=TRUE); } if("CemaNeige"%in% ObjectClass){ - ParamT <- matrix( c( -6.26, +0.55, - -2.13, +0.92, - +4.86, +1.40),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( -9.96, +6.63, + -9.14, +6.90, + +4.10, +7.21),ncol=NParam,byrow=TRUE); } if("CemaNeigeGR4J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -2.00, +3.40, -9.10, -6.26, +0.55, - +3.90, -0.90, +4.10, -8.70, -2.13, +0.92, - +4.50, -0.10, +5.00, -8.10, +4.86, +1.40),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +5.13, -1.60, +3.03, -9.05, -9.96, +6.63, + +5.51, -0.61, +3.74, -8.51, -9.14, +6.90, + +6.07, -0.02, +4.42, -8.06, +4.10, +7.21),ncol=NParam,byrow=TRUE); } if("CemaNeigeGR5J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -1.70, +3.30, -9.10, -0.70, -6.26, +0.55, - +3.90, -0.60, +4.10, -8.70, +0.30, -2.13, +0.92, - +4.50, -0.10, +5.00, -8.10, +0.50, +4.86, +1.40),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +5.17, -1.13, +3.08, -9.37, -7.45, -9.96, +6.63, + +5.55, -0.46, +3.75, -9.09, -4.69, -9.14, +6.90, + +6.10, -0.11, +4.43, -8.60, -0.66, +4.10, +7.21),ncol=NParam,byrow=TRUE); } if("CemaNeigeGR6J"%in% ObjectClass){ - ParamT <- matrix( c( +3.60, -1.00, +3.30, -9.10, -0.90, +3.00, -6.26, +0.55, - +3.90, -0.50, +4.10, -8.70, +0.10, +4.00, -2.13, +0.92, - +4.50, +0.50, +5.00, -8.10, +1.10, +5.00, +4.86, +1.40),ncol=NParam,byrow=TRUE); } + ParamT <- matrix( c( +4.41, +0.41, +2.88, -9.10, -0.13, +0.81, -9.96, +6.63, + +5.02, +0.61, +3.45, -8.68, +1.95, +2.27, -9.14, +6.90, + +5.58, +0.78, +4.18, -8.12, +3.59, +3.56, +4.10, +7.21),ncol=NParam,byrow=TRUE); } StartParamList <- NULL; StartParamDistrib <- TransfoParam(ParamIn=ParamT,Direction="TR",FUN_TRANSFO=FUN_TRANSFO);