hydroGOF
About hydroGOF GIT access Download/Files News Check results Package R docs
new
About hydroGOF
What is hydroGOF ?
hydroGOF is an R package that provides S3 functions implementing both statistical and graphical goodness-of-fit measures between observed and simulated values, mainly oriented to be used during the calibration, validation, and application of hydrological models.
Missing values in observed and/or simulated values can removed before the computations.
Bugs / comments / questions / collaboration of any kind are very welcomed.
Installation
# Stable version
install. packages("hydroGOF")
# Latest (under-development) release
install. packages("hydroGOF",, "http://rforge.net/", type="source")
Package Description
Package: hydroGOF
Version: 0.4-1
Title: Goodness-of-Fit Functions for Comparison of Simulated and Observed Hydrological Time Series
Maintainer: Mauricio Zambrano-Bigiarini
Description: S3 functions implementing both statistical and graphical goodness-of-fit measures between observed and simulated values, mainly oriented to be used during the calibration, validation, and application of hydrological models. Missing values in observed and/or simulated values can be removed before computations. Comments / questions / collaboration of any kind are very welcomed.
Depends: R (>= 2.10.0), zoo (>= 1.7-2)
License: GPL (>= 2)
Citation
citation ("hydroGOF")
Vignette
http://cran.r-project.org/web/packages/hydroGOF/vignettes/hydroGOF_Vignette.pdf
Related Material
BugReports
https://www.rforge.net/bugzilla/describecomponents.cgi?product=hydroGOF
What's New?
NEWS/ChangeLog for hydroGOF
--------------------------
0.4-1 Under-development
o br2 ' : new argument dec ' to allow the user to specify the number of decimals shown in the output object. Default value set to 1 for compatibility with previous versions. Thanks to Ken Newman !
0.4-0 11-Mar-2020
o Package tested against R Under development (unstable) (2020-03-10 r77920) -- "Unsuffered Consequences" , following an imperative request made by CRAN.
o Citation file changed, following CRAN comments.
o Vignette on Goodness-of-fit Measures to Compare Obserligved and Simulated Values was moved from Sweave to Knitr.
o New references were added for `KGE ' (Santos et. al, 2018; Knoben et al., 2019; Mizukami et al., 2019)
o New reference was added for `me ' (Hill et al., 2006) Thanks to Erli Pinto dos Santos !.
o `br2 ' : new argument 'use.abs=FALSE', to allow the user to use 'abs(b)' as condition to decide whether using abs(b)*r2 or [1/abs(b)]*r2 in equation (5) in Krausse et al. (2005). Thanks to Ellie White !
0.3-9 07-Ago-2017
o repository management moved from SVN to GIT, including rforge.
o citation with DOI is now possible (and new CITATION file).
o `NSE ' : -) three new arguments (FUN, epsilon, epsilon.value), added to allow pre-processing simulated and observed values (e.g., log, sqrt, 1/x)
o KGE ' : -) now works correctly when 'out.type="full" ', even if sim ' and `obs ' do not have a single element in common (i.e., results in labelled NAs)
o `d ' : -) now it returns NA when it is not possible to compute the index of agreement (sum((abs(sim-Om)+abs(obs-Om))^2)=0)
o ggof ' : -) legend and axis fonts are preserved when pt.style ' is set to bar
-) fixed error raised for xts >= 0.10-0
o plot2 ' : -) legend and axis fonts are preserved when pt.style ' is set to bar
-) fixed error raised for xts >= 0.10-0
o 'plotbands : -) fixed error raised for xts >= 0.10-0
o `rNSE ' : -) fixed typo in the formula presented in the documentation (thanks to James Ward!)
o `rPearson ' : -) now it is exported in the NASPECE and visible to the users.
o `md ' : -) correct small typo in documentation (thanks to Raphael Felber !)
o rSD ' : -) missing values in obs ' or `sim ' are now removed before the computations (thanks to Colin Hansen !)
o nrmse ' : -) missing values in obs ' or `sim ' are now removed before the computations (thanks to Colin Hansen !)
o NAMESPACE file:
-) One ninty five (95) S3 methods are now registered.
-) Web page of the package updated to the new github repository.
-) CRAN website removed from URL field in DESCRIPTION file (requested by CRAN).
-) plot.xts ' is no longer imported from xts ' package (to avoid error with xts >= 0.10-0 )
-) axTicksByTime ' is now imported from xts '
o NAMESPACE file : -) several functions explicitly imported from the c(stats, utils, methods, graphics, grDevices) to be compatible with R 3.3.0.
-) `plot.xts ' NOT used anymore, to avoid error raised by xts>=0.10-0
-) index ' and 'time<-' imported from zoo ' package.
-) over ', 'coordinates<-', 'proj4string<-' imported from sp ' package.
-) readShapePoly ' imported from maptools ' package.
-) start ', end ' and window ', aggregate ' are now explicitly imported from the stats ' package (affects dwi ', izoo2rzoo ' and monthlyfunction ')
-) Fifty three (53) S3 methods are now registered.
0.3-8 04-Feb-2014
o `nrmse ' : -) added formula representing the computation done when 'norm="sd" ' (default). Thanks to Markus Eichhoff !.
o `KGE ' : -) fixed error raised when 's != c(1,1,1)'
o pbiasfdc ' : -) now does not need to load hydroTSM ' package before being used.
In previous versions, when this function was applied to numeric vectors, it raised the following werror:
"Error in UseMethod(" fdc") : no applicable method for fdc ' applied to an object of class c(double ', `numeric ')"
o `Author ' field was removed from the DESCRIPTION file
o Imports from the `zoo ' package were made explicit in the NAMESPACE file (due related changes in hydroTSM)
o WhatsNew.txt ' file was renamed to ChangeLog '
o 'require(zoo)' (before loading the `EgaEnEstellaQts ' dataset) was removed from all the examples
0.3-7 03-Jun-2013
o `valindex ' : false warning fixed.
This warning raised the message "sim ' and obs ' are empty or they do not have any common pair of elements with data !!" ,
even when sim ' and obs ' were fully compatible.
o ggof ' : -) new argument gofs ', which allows to select which GoFs are shown when 'gof.leg=TRUE'
-) new argument `stype '
-) new argument `season.names '
-) ftype ' argument now allows seasonal ' value as input
-) internal: 'hydroTSM::daily2monthly' was replaced by `daily2monthly '
-) internal: 'hydroTSM::daily2annual' was replaced by `daily2annual '
-) internal: 'hydroTSM::vector2zoo' was replaced by `vector2zoo '
o pbiasfdc ' : -) internal: 'hydroTSM::fdc' was replaced by fdc '
o plotbandsonly ': -) internal: 'hydroTSM::vector2zoo' was replaced by vector2zoo '
o plot2 ' : -) new argument gofs ', which allows to select which GoFs are shown when 'gof.leg=TRUE'
-) internal: 'hydroTSM::vector2zoo' was replaced by `vector2zoo '
-) internal: 'hydroTSM::drawTimeAxis' was replaced by `drawTimeAxis '
o plotbands ' : -) internal: 'hydroTSM::vector2zoo' was replaced by vector2zoo '
-) internal: 'hydroTSM::drawTimeAxis' was replaced by `drawTimeAxis '
0.3-6 22-Mar-2013
o `gof ' : -) now it works with matrices/data.frames of zoo/xts class. Thanks to L. Pagliero !
-) new arguments s ' and method ' which are passed to the KGE ' function (out.type ' is fixed to "single" )
-) new argument j ', which is passed to the mNSE ' function
-) new argument norm ', which is passed to the nrmse ' function
-) new arguments lQ.thr ' and hQ.thr ', which are passed to the (optional) `pbiasfdc ' function
o `NSE ' : -) now it works with matrices/data.frames of zoo class.
o `me ' : -) now it works with matrices/data.frames of zoo class.
o `mae ' : -) now it works with matrices/data.frames of zoo class.
o `mse ' : -) now it works with matrices/data.frames of zoo class.
o `rmse ' : -) now it works with matrices/data.frames of zoo class.
o `rsr ' : -) now it works with matrices/data.frames of zoo class.
o `rSD ' : -) now it works with matrices/data.frames of zoo class.
o `pbias ' : -) now it works with matrices/data.frames of zoo class.
o `mNSE ' : -) now it works with matrices/data.frames of zoo class.
o `rNSE ' : -) now it works with matrices/data.frames of zoo class.
o `md ' : -) now it works with matrices/data.frames of zoo class.
o `cp ' : -) now it works with matrices/data.frames of zoo class.
o `rPearson ' : -) now it works with matrices/data.frames of zoo class.
o `br2 ' : -) now it works with matrices/data.frames of zoo class.
o `KGE ' : -) now it works with matrices/data.frames of zoo class.
o `VE ' : -) now it works with matrices/data.frames of zoo class.
o `d ' : -) now it works with matrices/data.frames of zoo class.
-) fixed typo in the formula presented in the pdf manual (a square was missing). Thanks to T. Ladson and Insa Thiele-Eich !
o `rd ' : -) now it works with matrices/data.frames of zoo class.
-) fixed typo in the formula presented in the pdf manual (a square was missing). Thanks to Insa Thiele-Eich !
o `nrmse ' : -) now it works with matrices/data.frames of zoo class.
o nrmse.matrix ': fixed error in checking the norm ' argument.
o valindex ' : a warning was added when sim ' and `obs ' do not have any pair of elements with data in both variables.
o e-mail address of maintainer was changed from the @ing.unit.it to the @gmail.com domain
0.3-5 19-Oct-2012
o now it depends on hydroTSM ' >= 0.3-6 , in order to allow handling sub-daily values in ggof '
o ggof ' : -) now it handles sub-daily values in sim ' and `obs ' (aggregation to daily/monthly/annual values not yet available)
-) dates ' argument accepts POSIXct ' objects
o KGE ' : -) two new arguments: method ', to allow KGE-2009 and KGE-2012 formulas, and `out.type ', in order to allow look at the
individual elements of the KGE (correlation, bias, and variability)
-) Added reference to Kling et al. 2012 and improved documentation
-) Added example to show difference between KGE-2009 and KGE-2012
-) now it returns NA instead of an error when there are no pairs of sim ' and obs ' without missing values
(thanks to Giovanni Forzieri !)
o DESCRIPTION : 'Author@R' field was replaced by 'Authors@R'
0.3-4 03-Jul-2012
o new function `VE ', which computes the volumetric efficiency proposed by Criss and Winston 2008
(thanks to Eric Morway for giving the final push to include it !)
o `gof ' : VE is now included in the computed goodness-of-fit measures
o `ggof ' : VE is now included in the computed goodness-of-fit measures
o `plot2 ' : VE is now included in the computed goodness-of-fit measures (when 'leg.gof=TRUE')
o function .intersect ' was removed and function valindex ' was improved in order to replace it
o zoo ' package was moved from Imports ' to `Depends '
o methods ' package is now imported, in order to avoid problems with Rscript, which currently does not load methods '
0.3-3 02-May-2012
o `gof ' : added new example and description of the output class (thanks to Kris Jaeger !)
o `br2 ' : the new example included in version 0.3-2 was improved
o ggof ' : fixed problem with ylim ' when some elements in sim ' or obs ' were NA (the issue was in the `plot2 ' function)
o plot2 ' : fixed problem with ylim ' when some elements in x ' or y ' were NA
0.3-2 07-Oct-2011
o `br2 ' : fixed documentation error in its formula (thanks to Jan Corluy !), and a new example was added.
Its value was already computed in the correct way.
0.3-1 14-Sep-2011
o ggof ' : fixed problem when ylim ' is specified by the user (the issue was in the `plot2 ' function)
o plot2 ' : fixed problem when ylim ' is specified by the user
0.3-0 01-Sep-2011
o NAMESPACE created, which leads to reduced dependency on the package hydroTSM.
o hydroGOF now depends on xts >= 0.8-2 (=> zoo >= 1.7-2 ), in order to make use of improved plotting capabilities for ts objects.
The first release of `xts ' after the 0.8-0 (which was set as the default building block for plotting time series in hydroTSM)
was the 0.8-2 , and appeared on CRAN on August 9th, 2011
o now it depends on `hydroTSM ' >= 0.3-0 , in order to use the re-written 'drawxaxis/drawTimeAxis' function.
o a vignette is now included with the package, in order to illustrate some basic functionality of hydroGOF
o plot2 ' : -) better display of time series objects, when plot.type ' is `single '.
The (nicer) plot.xts ' function is used instead of the previous plot.zoo '.
-) tick.tstep ' and lab.tstep ' now accept the values: "auto" , "weeks" , "hours" , "minutes" ,
"seconds" , which should work with sub-daily time series
-) when cal.ini ' is provided, all the values in obs ' and sim ' with dates previous to cal.ini ' are SKIPPED
from the computation of the goodness-of-fit measures (when 'gof.leg=TRUE'), but their values are still plotted,
in order to examine if the warming up period was too short, acceptable or too long for the chosen calibration
period.
-) fixed problem with the `cex.axis ' argument when 'plot.type="multiple" ' (this was a zoo problem, and it was
fixed in zoo_1.7-1 ).
o ggof ' : -) better display of time series objects (by using the new plot2 ' and 'drawxaxis/drawTimeAxis')
-) it works with xts objects as well.
-) tick.tstep ' and lab.tstep ' now accept the values: "auto" , "quarters" , "weeks" , "hours" ,
"minutes" , and "seconds" , and its default value was changed to "auto" .
-) the name of sim ' and obs ' are now used as default for the legend.
-) when cal.ini ' is provided, all the values in obs ' and sim ' with dates previous to cal.ini ' are SKIPPED
from the computation of the goodness-of-fit measures (when 'gof.leg=TRUE'), but their values are still plotted,
in order to examine if the warming up period was too short, acceptable or too long for the chosen calibration
period.
-) added error checking for ftype ' when sim ' and `obs ' are not time series.
o plotbands ' : -) better display of time series objects. The (nicer) plot.xts ' function is used
instead of the previous plot.zoo ', and it uses the new drawTimeAxis ' function.
-) tick.tstep ' and lab.tstep ' now accept the values: "auto" , "quarters" , "weeks" , "hours" ,
"minutes" , and "seconds" , and its default value was changed to "auto" .
o `plotbandsonly ': -) it works with xts objects as well
-) `legend ' argument was removed (it was not used)
-) `leg.cex ' argument was removed (it was not used)
o NSeff ' : -) its name was changed to NSE '. The old name `NSeff ' is deprecated but is still working for backwards compatibility.
-) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o rNSeff ' : -) its name was changed to rNSE '. The old name `rNSeff ' is deprecated but is still working for backwards compatibility.
-) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o mNSeff ' : -) its name was changed to mNSE '. The old name `mNSeff ' is deprecated but is still working for backwards compatibility.
-) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `rd ' : -) a warning message is created when -at least one of- the observed values is/are zero,
which makes impossible to compute this index (thanks to Tom Purucker !)
-) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `rNSE ' : -) a warning message is created when -at least one of- the observed values is/are zero,
which makes impossible to compute this index
-) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `md ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `pbias ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `pbiasfdc ': -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `pfactor ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `rfactor ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `rSD ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `RSR ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `NRMSE ' : -) now it returns NA instead of an error when the denominator of its formula is equal to zero.
o `KGE ' : -) now it returns NA instead of '-Inf' when the denominator of Alpha or Beta were equal to zero.
o `rd ' : -) fixed documentation error in its formula (thanks to Tom Purucker !). Its value was already computed in the correct way.
o New dimension checking (number of columns and rows) for all the functions that are applied over a matrix or data.frame
###################################################
# Previous Releases (see old file 'WhatsNew.txt)' #
###################################################
0.2-2 : Release Date: 14-Apr-2011
0.2-1 : Release Date: 30-Nov-2010
0.2-0 : Release Date: 07-Oct-2010
0.1.3: Release Date: 01-Dec-2009
0.1.2: Release Date: 29-Oct-2009
0.1.1: Release Date: 05-Oct-2009
0.1.0: Release Date: 07-Sep-2009 (but the functions have been developed since 2008)
See Also
hydroPSO : Model-independent Particle Swarm Optimisation (PSO) for environmental/hydrological models.
hydroTSM : Time series management, analysis and interpolation for hydrological modelling.
Visitors
Note :
The previous number of visitors starts on July 21th 2015 , due to a mayor crash of the www4 server of ClustrMaps in March 2015 .
A conservative number of visitors before reseting the counter on July 21th 2015 was provided by Google Analytics (implemented months after ClustrMaps on this site): 3691 visitors from 101 different countries .