## load of catchment data require(airGR) data(L0123001) ## preparation of the InputsModel object InputsModel <- CreateInputsModel(FUN_MOD=RunModel_GR4J,DatesR=BasinObs$DatesR, Precip=BasinObs$P,PotEvap=BasinObs$E) ## run 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 the RunOptions object RunOptions <- CreateRunOptions(FUN_MOD=RunModel_GR4J,InputsModel=InputsModel,IndPeriod_Run=Ind_Run) ## simulation Param <- c(734.568,-0.840,109.809,1.971) OutputsModel <- RunModel(InputsModel=InputsModel,RunOptions=RunOptions,Param=Param,FUN=RunModel_GR4J) ## 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: Nash-Sutcliffe Efficiency on log-transformed flows transfo <- "log" InputsCrit <- CreateInputsCrit(FUN_CRIT=ErrorCrit_NSE,InputsModel=InputsModel, RunOptions=RunOptions,Qobs=BasinObs$Qmm[Ind_Run],transfo=transfo) OutputsCrit <- ErrorCrit_NSE(InputsCrit=InputsCrit,OutputsModel=OutputsModel) cat(paste(" Crit ",OutputsCrit$CritName," ",round(OutputsCrit$CritValue,4),"\n",sep="")) ## efficiency criterion: Nash-Sutcliffe Efficiency above a threshold (q75%) BoolCrit <- rep(TRUE,length(BasinObs$Qmm[Ind_Run])); BoolCrit[BasinObs$Qmm[Ind_Run]<quantile(BasinObs$Qmm[Ind_Run],0.75,na.rm=TRUE)] <- FALSE; InputsCrit <- CreateInputsCrit(FUN_CRIT=ErrorCrit_NSE,InputsModel=InputsModel, RunOptions=RunOptions,Qobs=BasinObs$Qmm[Ind_Run],BoolCrit=BoolCrit) 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="")) cat(paste("SubCrit ",OutputsCrit$SubCritNames," ",round(OutputsCrit$SubCritValues,4),"\n",sep="")) ## efficiency criterion: Kling-Gupta Efficiency below a threshold (q10%) on log-trqansformed flows transfo <- "log" BoolCrit <- rep(TRUE,length(BasinObs$Qmm[Ind_Run])); BoolCrit[BasinObs$Qmm[Ind_Run]>quantile(BasinObs$Qmm[Ind_Run],0.10,na.rm=TRUE)] <- FALSE; InputsCrit <- CreateInputsCrit(FUN_CRIT=ErrorCrit_KGE,InputsModel=InputsModel,RunOptions=RunOptions, Qobs=BasinObs$Qmm[Ind_Run],BoolCrit=BoolCrit,transfo=transfo) OutputsCrit <- ErrorCrit_KGE(InputsCrit=InputsCrit,OutputsModel=OutputsModel) cat(paste(" Crit ",OutputsCrit$CritName," ",round(OutputsCrit$CritValue,4),"\n",sep="")) cat(paste("SubCrit ",OutputsCrit$SubCritNames," ",round(OutputsCrit$SubCritValues,4),"\n",sep=""))