An article describing the airGR package has been published. Its reference has been added and will be displayed with citation(“airGR”)
.
Added CreateIniStates()
function in order to help user to format IniStates
argument for CreateRunOptions()
.
Added (Param_Sets_GR4J
) dataset. It contains the generalist parameter sets for the GR4J model.
Fixed bug in RunModel_GR4H()
: in frun_GR4H
Fortran subroutine, St(2)
is now set to 0 (and not St(1)
) when St(2) < 0
.
Fixed bug in plot.OutputsModel()
for the regime plot when the period is less than 1 year.
Fixed bug in plot.OutputsModel()
when there is no common data to plot the cumulative frequency or the correlation QQ.
Fixed bug in plot.OutputsModel()
for y-axis labelling of flows time series when log_scale = TRUE
and BasinArea
used.
RunSnowModule
argument is now deprecated in CreateRunOptions()
.RunModel_GR4J()
, RunModel_GR5J()
and RunModel_GR6J()
(and CemaNeige_GR*J()
) now return Ps, Pn and true exchanges.
CreateInputsModel()
now returns an error when DatesR
contains duplicated values.
RunModel_GR5J
now returns StateEnd
in the same order as the other models.
plot.OutputsModel()
now returns a warning message when the length of Qobs is different from the length of Qsim.
The X1, X3 (and X6) parameters from GR4H, GR4J, GR2M, GR5J (and GR6J) are now set to 1e-2 when they are fixed to lower values. RunModel*()
functions now return a warning message. RunModel*()
functions now return a warning when X4 < 0.5 and set it to 0.5.
The commands ?L0123001
, ?L0123002
and ?L0123003
now return the documentation page related to BasinObs
.
Many functions of the package were cleant or slightly modified, with no effect on their outputs.
The documentation and help of several functions were improved.
DataAltiExtrapolation_Valery()
and CreateInputsModel()
now present a PrecipScale argument which allows rescaling precipitation when it is interpolated on the elevation layers when CemaNeige is used.DataAltiExtrapolation_Valery()
. The elevation gradients for air temperature returned by CreateInputsModel()
are improved.DataAltiExtrapolation_Valery()
has been improved. DataAltiExtrapolation_Valery()
now runs faster (and by consequence CreateInputsModel()
too, when CemaNeige is used).RunModel_CemaNeige()
, RunModel_CemaNeigeGR4J()
, RunModel_CemaNeigeGR5J()
and RunModel_CemaNeigeGR6J()
now return air temperature for each elevation layer.S3 plot method defined for OutputsModel
objects. It means that the plot_OutputsModel()
function is deprecated and his use has been replaced by the use of plot.OutputsModel()
or plot()
.
In plot.OutputsModel()
the PlotChoice
argument is deprecated and has been renamed which
.
plot.OutputsModel()
displays air temperature time series for each layer when CemaNeige
is used (argument which = “Temp”
or “all”
).ErrorCrit*()
functions gain a warnings argument to replace the verbose action and the verbose argument now prints the criterion value(s).CreateCalibOptions()
when StartParamList
or StartParamDistrib
arguments are used.CreateInputsModel()
now returns an error if NLayers <= 0
when CemaNeige
is used.
plot_OutputsModel()
now displays raw values on the y-axis when the discharge time series is represented with log scale (formerly, log values of discharges were displayed on the y-axis).
SeriesAggreg()
gains a TimeLag argument that corresponds to a numeric value indicating a time lag (in seconds) for the time series aggregation (useful to aggregate hourly time series to the daily time step for instance). In addition, the function now accepts input dates in both POSIXt formats (POSIXct and POSIXlt). The output is in POSIXct format.
plot_OutputsModel()
gains a log_scale
argument in order to plot the flow with a log scale.
A tutorial is available online on the following link: from http://webgr.irstea.fr/airGR. It can also be displayed with the vignette(“airGR”)
command
sort
for the transfo
argument of CreateInputsCrit()
was not taken into account. It is now fixed.CreateCalibOptions()
loses the OptimParam argument that was redundant with the FixedParam
argument. The Calibration_Michel()
was modified to take into account this change by using directly FixedParam
, but this is transparent to the user.
CreateCalibOptions()
loses the StartParam argument that was not used.
RunModel_GR6J()
and RunModel_CemaNeigeGR6J()
models were modified back to versions previous to 1.0.1 to prevent from unwanted efficiency criteria deterioration related to the calibration with Calibration_Michel()
. The actual model codes were not modified but the TransfoParam_GR6J()
and CreateCalibOptions()
functions were modified regarding the X5 parameter. It is strongly advised to use airGR 1.0.2 for the RunModel_GR6J()
and RunModel_CemaNeigeGR6J()
functions if you are using Calibration_Michel()
, as they are much more efficient. In case you were using your own calibration algorithm, you will not notice any difference.CreateInputsModel()
and DataAltiExtrapolation_Valery()
functions now allow both POSIXt formats (POSIXct and POSIXlt).The Calibration_HBAN()
and DataAltiExtrapolation_HBAN()
functions have respectively been renamed as Calibration_Michel()
and DataAltiExtrapolation_Valery()
after the names of their creators.
The Calibration_optim()
function has been removed from the package.
The silent mode is now defined by the verbose = TRUE
argument (formerly quiet = FALSE
) in the following functions: Calibration()
, Calibration_Michel()
, CreateInputsModel()
, CreateRunOptions()
, DataAltiExtrapolation_Valery()
, ErrorCrit()
, ErrorCrit_KGE()
, ErrorCrit_KGE2()
, ErrorCrit_NSE()
, ErrorCrit_RMSE()
, plot_OutputsModel()
, SeriesAggreg()
.
The GR5J model has been modified: previously, two unit hydrographs were used, now only one is remaining. As a consequence, simulations from the GR5J (RunModel_GR5J()
function) and CemaNeige (RunModel_CemaNeigeGR5J()
function) models will be different.
An important proportion of the transformations of the parameters have been modified (TransfoParam*()
functions). Since this modifies the local search, calibration results will be different .
The quantiles of the parameters have been recalculated with the new transformations (CreateCalibOptions()
function). Since these quantiles constitute the starting point of the calibration algorithm, calibration results will be different.
The list of the contributors and authors is now full.
The references of the package has been updated; they are returned by the following R-command citation(“airGR”)
.
Bug fxed in CreateInputsModel()
related to the handling of missing values.
Bug fxed in CreateRunOptions()
preventing the correct use of the IniResLevels
argument (to manually set the filling rate of the production and routing stores).
IndPeriod_WarmUp = 0
.Three new hydrological models: RunModel_GR4H() function for
GR4H (hourly), RunModel_GR2M()
function for GR2M (monthly) and RunModel_GR1A()
function for GR1A (yearly).
New function SeriesAggreg()
to easily aggreg timesteps.
ErrorCrit_RMSE()
which led to incorrect calibration (the criterion was maximised instead of minimised).Update of the functions CreateRunOptions()
, CreateCalibOptions()
and plot_OutputsModel()
to handle the new models.
Modification of CemaNeige Fortran code to add an update of Gratio after the SnowPack update (no impact on snow simulation).
Improvement of the plot_OutputsModel()
function to allow a selection among available plots.
Minor update in ErrorCrit_KGE()
and ErrorCrit_KGE2()
to handle case when only one values in not NA.
Update of the scripts in airGR-advanced-example to match the structures of the BasinData
objects.
Correction of formatting issue in airGR-advanced-example regarding the “List_HypsoData.txt” file.
Improvements allowing the arrival of new models.
Improvements of the argument verifications in CreateInputsModel()
, CreateRunOptions()
, CreateInputsCrit()
, CreateCalibOptions()
.
Improvements of all the ErrorCrit()
functions to better account for the cases with constant flow values or local zeros.
quiet = TRUE
or FALSE
) to choose if the warnings should be suppressed or not.CreateCalibOptions()
to handle models with only one parameter.CemaNeige users must now specify one MeanAnSolidPrecip
for each elevation layer. The CreateRunOptions()
function is impacted.
CemaNeige users can now specify the mean elevation of the input series (before it was always considered equal to the catchment median elevation). The impacted functions are CreateInputsModel()
and DataAltiExtrapolation_HBAN()
.
Improvement of the plot_OutputsModel
function (to handle 0 in Qobs and Qsim).
Improved documentation.
Calibration_HBAN()
. The function was not working properly with models having only one parameter.CalibrationAlgo_*()
functions were renamed intoCalibration_*()
.New architecture with better format verification procedure (using classes) and simpler setting of default configuration.
New architecture where the model, calibration and error functions are in the arguments of the functions (the exotic use of “generic function” created by the users has been removed).
Improved documentation and examples.
RC11 bug correction: the automatic selection of the warm-up period was not working properly when no data was available from warm-up (i.e. when the user had set the run to start at the very first index).
RC10 bug correction: the CalibrationAlgo_HBAN()
function was not working in the very rare case when the diagonal search was activated and lead to a set outside the authorised range.
RC9 bug correction: the CalibrationAlgo_HBAN()
function was not working properly with models having only one parameter.
RC8 bug correction of the ModelDefaultIniOptions()
function (this bug was introduced in the RC7 and caused an error when IndPeriod_WarmUp = NULL
RC7 bug correction of the ModelDefaultIniOptions()
function (the automatic selection of one year for warm-up was not handling properly missing data).
RC6 correction of the help files (the description of CemaNeige parameters were inverted).
RC5 differs from previous releases in the way the data are read and stored (in a list instead of individual vectors). The package is similar, only the examples of Main and the files in MyScriptBlocks have changed. All basin data are now stored inside a list named BasinData
. This will greatly ease the future use of Rdata files (instead of txt files) as storage format for the time series of observation.
Additional functions for results plotting (the {zoo}
package is required for some of them).
Add multi-objective calibration using nsga2()
(the {mco}
package is required).
DefineFunctions_Model()
or DefineFunctions_ErrorCrit()
).Code improvements to reduce the computation time.
Clearer instructions for the adding and modification of a model.
Improvements of the documentation.
EfficiencyCrit()
have been replaced by ErrorCrit()
to avoid misunderstanding (by default, the algorithms minimise the error criterion).The SelectPer
arguments are replaced by IndPeriod
to ease understanding.
The PE
arguments are replaced by PotEvap()
to ease understanding.
The Fsol
arguments are replaced by FracSolidPrecip
to ease understanding.
R 2.15 in not supported by default.
The check that SelectPer_Run()
is continuous is now made in the CheckArg()
functions.
Check of the model functioning time step.
Name of the calibration criterion provided in OutputsAlgo()
.
EfficiencyCrit_NSE_sqrtQ()
function to compute NSE criterion on sqrt flowsIncorrect arguments in the call to RunModelAndCrit
from CalibrationAlgo_optim_stats
and CalibrationAlgo_nlminb_stats
.
CalibrationAlgo_nlminb_stats
argument was wrongly defined in DefineFunctions_CalibrationAlgo()
(optim
instead of nlminb
).
Format checking for RunOptions
was incorrectly made in CheckArg()
function.