diff options
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | README.rmd | 2 | ||||
-rw-r--r-- | pkg/R/PEC_sw_drift_ini.R | 55 | ||||
-rw-r--r-- | pkg/tests/testthat/test_PEC_sw_drift_ini.R (renamed from pkg/tests/testthat/test_PEC_sw_drift.R) | 7 |
4 files changed, 62 insertions, 7 deletions
@@ -132,10 +132,9 @@ deep water body are obtained using ```r -PEC_sw_drift(100, applications = 1) +PEC_sw_drift_ini(100, applications = 1) ``` ``` -## 1 m 5 m 10 m 20 m -## 0.92333333 0.19000000 0.09666667 0.05000000 +## Error in eval(expr, envir, enclos): konnte Funktion "PEC_sw_drift_ini" nicht finden ``` @@ -73,5 +73,5 @@ Initial PEC values for an application of 100 g/ha in the vicinity of a 30 cm deep water body are obtained using ```{r} -PEC_sw_drift(100, applications = 1) +PEC_sw_drift_ini(100, applications = 1) ``` diff --git a/pkg/R/PEC_sw_drift_ini.R b/pkg/R/PEC_sw_drift_ini.R new file mode 100644 index 0000000..67e00d9 --- /dev/null +++ b/pkg/R/PEC_sw_drift_ini.R @@ -0,0 +1,55 @@ +# Copyright (C) 2015 Johannes Ranke +# Contact: jranke@uni-bremen.de +# This file is part of the R package pfm + +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. + +# You should have received a copy of the GNU General Public License along with +# this program. If not, see <http://www.gnu.org/licenses/> + +#' Calculate initial predicted environmental concentrations in surface water due to drift +#' +#' This is a basic, vectorised form of a simple calculation of a contaminant +#' concentration in surface water based on complete, instantaneous mixing +#' with input via spray drift. +#' +#' @param rate Application rate in units specified below +#' @param applications Number of applications for selection of drift percentile +#' @param drift_data Source of drift percentage data +#' @param crop Crop name (use German names for JKI data), defaults to "Ackerbau" +#' @param distances The distances in m for which to get PEC values +#' @param water_depth Depth of the water body in cm +#' @param rate_units Defaults to g/ha +#' @param PEC_units Requested units for the calculated PEC. Only µg/L currently supported +#' @return The predicted concentration in surface water +#' @export +#' @author Johannes Ranke +#' @examples +#' PEC_sw_drift_ini(100) +PEC_sw_drift_ini <- function(rate, + applications = 1, + water_depth = 30, + drift_data = "JKI", + crop = "Ackerbau", + distances = c(1, 5, 10, 20), + rate_units = "g/ha", + PEC_units = "\u00B5g/L") +{ + rate_units <- match.arg(rate_units) + PEC_units <- match.arg(PEC_units) + drift_data <- match.arg(drift_data) + water_volume <- 100 * 100 * (water_depth/100) * 1000 # in L (for 1 ha) + PEC_sw_overspray <- rate * 1e6 / water_volume # in µg/L + dist_index <- as.character(distances) + PEC_sw_drift <- PEC_sw_overspray * pfm::drift_data_JKI[[applications]][dist_index, crop] / 100 + names(PEC_sw_drift) <- paste(dist_index, "m") + return(PEC_sw_drift) +} diff --git a/pkg/tests/testthat/test_PEC_sw_drift.R b/pkg/tests/testthat/test_PEC_sw_drift_ini.R index 390df34..2480e5c 100644 --- a/pkg/tests/testthat/test_PEC_sw_drift.R +++ b/pkg/tests/testthat/test_PEC_sw_drift_ini.R @@ -3,12 +3,13 @@ context("Simple PEC surface water calculations with drift entry") test_that("PEC_sw_drift gives the same results as the CRD PEC calculator", { # One application of 30 g/ha to field crops calculated with UK PEC calculator published by CRD - expect_equal(round(PEC_sw_drift(30), 3), c('1 m' = 0.277, '5 m' = 0.057, '10 m' = 0.029, '20 m' = 0.015)) + expect_equal(round(PEC_sw_drift_ini(30), 3), + c('1 m' = 0.277, '5 m' = 0.057, '10 m' = 0.029, '20 m' = 0.015)) # 7 applications of 30 g/ha to field crops calculated with UK PEC calculator, initial PEC - expect_equal(round(PEC_sw_drift(30, 7), 3), c('1 m' = 0.161, '5 m' = 0.033, '10 m' = 0.017, '20 m' = 0.008)) + expect_equal(round(PEC_sw_drift_ini(30, 7), 3), + c('1 m' = 0.161, '5 m' = 0.033, '10 m' = 0.017, '20 m' = 0.008)) # 4 applications of 30 g/ha to late fruit crops calculated with UK PEC calculator published by CRD (uses different drift values from SANCO aquatic guidance) #expect_equal(round(PEC_sw_drift(30, 4, crop = "Obstbau spät", distances = c(3, 20, 50)), 3), c('3 m' = 1.101, '20 m' = 0.080, '50 m' = 0.013)) }) - |