#' Groundwater ubiquity score based on Gustafson (1989) #' #' The groundwater ubiquity score GUS is calculated according to #' the following equation #' \deqn{GUS = \log_{10} DT50_{soil} (4 - \log_{10} K_{oc})}{GUS = log10 DT50soil * (4 - log10 Koc)} #' #' @references Gustafson, David I. (1989) Groundwater ubiquity score: a simple #' method for assessing pesticide leachability. \emph{Environmental #' toxicology and chemistry} \bold{8}(4) 339–57. #' @param DT50 Half-life of the chemical in soil. Should be a field #' half-life according to Gustafson (1989). However, leaching to the sub-soil #' can not completely be excluded in field dissipation experiments and Gustafson #' did not refer to any normalisation procedure, but says the field study should #' be conducted under use conditions. #' @param Koc The sorption constant normalised to organic carbon. Gustafson #' does not mention the nonlinearity of the sorption constant commonly #' found and usually described by Freundlich sorption, therefore it is #' unclear at which reference concentration the Koc should be observed #' (and if the reference concentration would be in soil or in porewater). #' @param chent If a chent is given with appropriate information present in its #' chyaml field, this information is used, with defaults specified below. #' @param degradation_value Which of the available degradation values should #' be used? #' @param lab_field Should laboratory or field half-lives be used? This #' defaults to lab in this implementation, in order to avoid #' double-accounting for mobility. If comparability with the original GUS #' values given by Gustafson (1989) is desired, non-normalised first-order #' field half-lives obtained under actual use conditions should be used. #' @param redox Aerobic or anaerobic degradation data #' @param sorption_value Which of the available sorption values should be used? #' Defaults to Kfoc as this is what is generally available from the European #' pesticide peer review process. These values generally use a reference #' concentration of 1 mg/L in porewater, that means they would be expected to #' be Koc values at a concentration of 1 mg/L in the water phase. #' @param degradation_aggregator Function for aggregating half-lives #' @param sorption_aggregator Function for aggregation Koc values #' @param ... Included in the generic to allow for further arguments later. Therefore #' this also had to be added to the specific methods. #' @return A list with the DT50 and Koc used as well as the resulting score #' of class GUS_result #' @author Johannes Ranke #' @export GUS <- function(...) UseMethod("GUS") #' @rdname GUS #' @export GUS.numeric <- function(DT50, Koc, ...) { score <- log10(DT50) * (4 - log10(Koc)) res <- list(DT50 = DT50, Koc = Koc, score = score) class(res) <- "GUS_result" return(res) } #' @rdname GUS #' @export GUS.chent <- function(chent, degradation_value = "DT50ref", lab_field = "laboratory", redox = "aerobic", sorption_value = "Kfoc", degradation_aggregator = geomean, sorption_aggregator = geomean, ...) { DT50 = soil_DT50(chent, lab_field = lab_field, redox = redox, value = degradation_value, aggregator = degradation_aggregator, signif = 5) Koc = soil_Kfoc(chent, value = sorption_value, aggregator = sorption_aggregator, signif = 5) GUS.numeric(DT50, Koc) } #' @rdname GUS #' @export #' @param x An object of class GUS_result to be printed #' @param digits The number of digits used in the print method print.GUS_result = function(x, ..., digits = 1) { cat("GUS: ", round(x$score, digits = 1), "\n") cat("calculated from DT50 ", x$DT50, " and Koc ", x$Koc, "\n") }