diff --git a/R/CreateCalibOptions.R b/R/CreateCalibOptions.R index 7142a5a852884810a862d8099efa5ec48c089e79..b45ceec44de088edaf8fad1f81a4327ee4b6cd26 100644 --- a/R/CreateCalibOptions.R +++ b/R/CreateCalibOptions.R @@ -21,7 +21,6 @@ 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_optim )){ ObjectClass <- c(ObjectClass,"optim" ); BOOL <- TRUE; } if(!BOOL){ stop("incorrect FUN_CALIB for use in CreateCalibOptions \n"); return(NULL); } ##check_FUN_TRANSFO @@ -102,8 +101,7 @@ CreateCalibOptions <- function(FUN_MOD,FUN_CALIB=Calibration_Michel,FUN_TRANSFO= } ##check_StartParamList_and_StartParamDistrib__default_values - if( ("HBAN" %in% ObjectClass & is.null(StartParamList) & is.null(StartParamDistrib)) | - ("optim" %in% ObjectClass & is.null(StartParam)) ){ + if( ("HBAN" %in% ObjectClass & is.null(StartParamList) & is.null(StartParamDistrib)) ){ if("GR4H"%in% ObjectClass){ ParamT <- matrix( c( +5.12, -1.18, +4.34, -9.69, @@ -164,12 +162,6 @@ CreateCalibOptions <- function(FUN_MOD,FUN_CALIB=Calibration_Michel,FUN_TRANSFO= if(sum(is.na(StartParamDistrib[1,]))!=0){ stop("StartParamDistrib must not include NA values on the first line \n"); return(NULL); } if(ncol(StartParamDistrib)!=NParam ){ stop("Incompatibility between StartParamDistrib ncol and FUN_MOD \n"); return(NULL); } } - if("optim" %in% ObjectClass & !is.null(StartParam)){ - if(!is.vector( StartParam) ){ stop("StartParam must be a vector \n"); return(NULL); } - if(!is.numeric(StartParam) ){ stop("StartParam must be a vector of numeric values \n"); return(NULL); } - if(sum(is.na(StartParam))!=0 ){ stop("StartParam must not include NA values \n"); return(NULL); } - if(length(StartParam)!=NParam ){ stop("Incompatibility between StartParam length and FUN_MOD \n"); return(NULL); } - } ##Create_CalibOptions diff --git a/man/Calibration.Rd b/man/Calibration.Rd index b632ec877b87c59f2e8d744a7108852a37e6e6fc..c889275678a67ac0e345b46e6ac7e187cba8f566 100644 --- a/man/Calibration.Rd +++ b/man/Calibration.Rd @@ -22,14 +22,14 @@ Calibration(InputsModel, RunOptions, InputsCrit, CalibOptions, FUN_MOD, \item{FUN_CRIT}{[function] error criterion function (e.g. ErrorCrit_RMSE, ErrorCrit_NSE)} -\item{FUN_CALIB}{(optional) [function] calibration algorithm function (e.g. Calibration_Michel, Calibration_optim), default=Calibration_Michel} +\item{FUN_CALIB}{(optional) [function] calibration algorithm function (e.g. Calibration_Michel), default=Calibration_Michel} \item{FUN_TRANSFO}{(optional) [function] model parameters transformation function, if the FUN_MOD used is native in the package FUN_TRANSFO is automatically defined} \item{quiet}{(optional) [boolean] boolean indicating if the function is run in quiet mode or not, default=FALSE} } \value{ -[list] see \code{\link{Calibration_Michel}} or \code{\link{Calibration_optim}} +[list] see \code{\link{Calibration_Michel}} } \description{ Calibration algorithm which optimises the error criterion selected as objective function using the provided functions. \cr @@ -92,8 +92,8 @@ cat(paste(" Crit ", OutputsCrit$CritName, " ", Laurent Coron (June 2014) } \seealso{ -\code{\link{Calibration_Michel}}, \code{\link{Calibration_optim}}, - \code{\link{RunModel}}, \code{\link{ErrorCrit}}, \code{\link{TransfoParam}}, +\code{\link{Calibration_Michel}}, + \code{\link{ErrorCrit}}, \code{\link{TransfoParam}}, \code{\link{CreateInputsModel}}, \code{\link{CreateRunOptions}}, \code{\link{CreateInputsCrit}}, \code{\link{CreateCalibOptions}}. } diff --git a/man/Calibration_Michel.Rd b/man/Calibration_Michel.Rd index 8a576b1f3fd4dfba55c198279ca81d3d5370282f..24166d656499db9e115f8392219b9938c363811b 100644 --- a/man/Calibration_Michel.Rd +++ b/man/Calibration_Michel.Rd @@ -122,7 +122,7 @@ Michel, C. (1991), Hydrologie appliquée aux petits bassins ruraux, Hydrology handbook (in French), Cemagref, Antony, France. } \seealso{ -\code{\link{Calibration}}, \code{\link{Calibration_optim}}, +\code{\link{Calibration}}, \code{\link{RunModel_GR4J}}, \code{\link{TransfoParam_GR4J}}, \code{\link{ErrorCrit_RMSE}}, \code{\link{CreateInputsModel}}, \code{\link{CreateRunOptions}}, \code{\link{CreateInputsCrit}}, \code{\link{CreateCalibOptions}}. diff --git a/man/CreateCalibOptions.Rd b/man/CreateCalibOptions.Rd index 83b86bf3ad993d92859c67c982f3fd0c097839b4..e545dfaee6416052293669a7398a5ff32dd85422 100644 --- a/man/CreateCalibOptions.Rd +++ b/man/CreateCalibOptions.Rd @@ -3,7 +3,7 @@ \encoding{UTF-8} \name{CreateCalibOptions} \alias{CreateCalibOptions} -\title{Creation of the CalibOptions object required bu the Calibration functions} +\title{Creation of the CalibOptions object required but the Calibration functions} \usage{ CreateCalibOptions(FUN_MOD, FUN_CALIB = Calibration_Michel, FUN_TRANSFO = NULL, OptimParam = NULL, FixedParam = NULL, @@ -13,7 +13,7 @@ CreateCalibOptions(FUN_MOD, FUN_CALIB = Calibration_Michel, \arguments{ \item{FUN_MOD}{[function] hydrological model function (e.g. RunModel_GR4J, RunModel_CemaNeigeGR4J)} -\item{FUN_CALIB}{(optional) [function] calibration algorithm function (e.g. Calibration_Michel, Calibration_optim), default=Calibration_Michel} +\item{FUN_CALIB}{(optional) [function] calibration algorithm function (e.g. Calibration_Michel), default=Calibration_Michel} \item{FUN_TRANSFO}{(optional) [function] model parameters transformation function, if the FUN_MOD used is native in the package, FUN_TRANSFO is automatically defined} @@ -29,7 +29,7 @@ CreateCalibOptions(FUN_MOD, FUN_CALIB = Calibration_Michel, [2,] \tab 3000 \tab +1 \tab 100 \tab ... \tab 3.0 \cr }} -\item{StartParam}{(optional) [numeric] vector of parameter values used to start global search calibration procedure (e.g. Calibration_optim) +\item{StartParam}{(optional) [numeric] vector of parameter values used to start global search calibration procedure \cr Example: \tabular{llllll}{ \tab [X1] \tab [X2] \tab [X3] \tab [...] \tab [Xi] \cr diff --git a/tests/example_Calibration_optim.R b/tests/example_Calibration_optim.R deleted file mode 100644 index f08ec410b22eeb0458226509d157e557d5b0f420..0000000000000000000000000000000000000000 --- a/tests/example_Calibration_optim.R +++ /dev/null @@ -1,45 +0,0 @@ -## load of catchment data -require(airGR) -data(L0123001) - -## preparation of InputsModel object -InputsModel <- CreateInputsModel(FUN_MOD=RunModel_GR4J,DatesR=BasinObs$DatesR, - Precip=BasinObs$P,PotEvap=BasinObs$E) - -## calibration period selection -Ind_Run <- seq(which(format(BasinObs$DatesR,format="%d/%m/%Y %H:%M")=="01/01/1990 00:00"), - which(format(BasinObs$DatesR,format="%d/%m/%Y %H:%M")=="31/12/1999 00:00")) - -## preparation of RunOptions object -RunOptions <- CreateRunOptions(FUN_MOD=RunModel_GR4J,InputsModel=InputsModel,IndPeriod_Run=Ind_Run) - -## calibration criterion: preparation of the InputsCrit object -InputsCrit <- CreateInputsCrit(FUN_CRIT=ErrorCrit_NSE,InputsModel=InputsModel, - RunOptions=RunOptions,Qobs=BasinObs$Qmm[Ind_Run]) - -## preparation of CalibOptions object -CalibOptions <- CreateCalibOptions(FUN_MOD=RunModel_GR4J,FUN_CALIB=Calibration_optim) - -## calibration -OutputsCalib <- Calibration_optim(InputsModel=InputsModel,RunOptions=RunOptions, - InputsCrit=InputsCrit,CalibOptions=CalibOptions, - FUN_MOD=RunModel_GR4J,FUN_CRIT=ErrorCrit_NSE) - -## simulation -Param <- OutputsCalib$ParamFinalR -OutputsModel <- RunModel_GR4J(InputsModel=InputsModel,RunOptions=RunOptions,Param=Param) - -## results preview -plot_OutputsModel(OutputsModel=OutputsModel,Qobs=BasinObs$Qmm[Ind_Run]) - -## efficiency criterion: Nash-Sutcliffe Efficiency -InputsCrit <- CreateInputsCrit(FUN_CRIT=ErrorCrit_NSE,InputsModel=InputsModel, - RunOptions=RunOptions,Qobs=BasinObs$Qmm[Ind_Run]) -OutputsCrit <- ErrorCrit_NSE(InputsCrit=InputsCrit,OutputsModel=OutputsModel) -cat(paste(" Crit ",OutputsCrit$CritName," ",round(OutputsCrit$CritValue,4),"\n",sep="")) - -## efficiency criterion: Kling-Gupta Efficiency -InputsCrit <- CreateInputsCrit(FUN_CRIT=ErrorCrit_KGE,InputsModel=InputsModel, - RunOptions=RunOptions,Qobs=BasinObs$Qmm[Ind_Run]) -OutputsCrit <- ErrorCrit_KGE(InputsCrit=InputsCrit,OutputsModel=OutputsModel) -cat(paste(" Crit ",OutputsCrit$CritName," ",round(OutputsCrit$CritValue,4),"\n",sep=""))