Goodness-of-Fit Functions for Comparison of Simulated and Observed Hydrological Time Series

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.


News

NEWS/ChangeLog for hydroGOF

0.3-10 08-Ago-2017 o citation file changed, following CRAN comments.

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 : '[email protected]' field was replaced by '[email protected]'

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)

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("hydroGOF")

0.4-0 by Mauricio Zambrano-Bigiarini, 7 months ago


https://github.com/hzambran/hydroGOF


Report a bug at https://github.com/hzambran/hydroGOF/issues


Browse source code at https://github.com/cran/hydroGOF


Authors: Mauricio Zambrano-Bigiarini [aut, cre, cph]


Documentation:   PDF Manual  


Task views: Analysis of Ecological and Environmental Data, Hydrological Data and Modeling


GPL (>= 2) license


Imports hydroTSM, xts, methods

Depends on zoo

Suggests knitr


Imported by RSAlgaeR, SiteAdapt, dycdtools, hydroPSO, kwb.hantush, stUPscales.

Suggested by DWBmodelUN, groupdata2.


See at CRAN