diff options
-rw-r--r-- | DESCRIPTION | 4 | ||||
-rw-r--r-- | NEWS.md | 4 | ||||
-rw-r--r-- | R/PEC_sw_drainage_UK.R | 25 | ||||
-rw-r--r-- | log/build.log | 4 | ||||
-rw-r--r-- | log/check.log | 30 | ||||
-rw-r--r-- | log/test.log | 10 | ||||
-rw-r--r-- | man/PEC_sw_drainage_UK.Rd | 3 | ||||
-rw-r--r-- | tests/testthat/test_UK_drainage.R | 8 |
8 files changed, 55 insertions, 33 deletions
diff --git a/DESCRIPTION b/DESCRIPTION index e0f6664..a51e404 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: pfm Type: Package Title: Utilities for Pesticide Fate Modelling -Version: 0.6.3 -Date: 2024-08-26 +Version: 0.6.4 +Date: 2024-12-16 Authors@R: person("Johannes Ranke", email = "johannes.ranke@agroscope.admin.ch", role = c("aut", "cre"), comment = c(ORCID = "0000-0003-4371-6538")) @@ -1,3 +1,7 @@ +## version 0.6.4 + +- R/PEC_sw_drainage_uk.R: Fix a bug leading to increased PEC values in the case the application date is after the beginning of the drainage period and `soil_DT50` was specified. + ## version 0.6.3 - R/{PEC_sw_drift,PEC_sw_exposit_runoff,PEC_sw_sed}.R: Make use of the `units` package. diff --git a/R/PEC_sw_drainage_UK.R b/R/PEC_sw_drainage_UK.R index d773f40..b935dea 100644 --- a/R/PEC_sw_drainage_UK.R +++ b/R/PEC_sw_drainage_UK.R @@ -1,7 +1,8 @@ #' Calculate initial predicted environmental concentrations in surface water due to drainage using the UK method #' #' This implements the method specified in the UK data requirements handbook and was checked against the spreadsheet -#' published on the CRC website +#' published on the CRC website. Degradation before the start of the drainage period is taken into account if +#' `latest_application` is specified and the degradation parameters are given either as a `soil_DT50` or a `model`. #' #' @param rate Application rate in g/ha #' @param interception The fraction of the application rate that does not reach the soil @@ -37,17 +38,19 @@ PEC_sw_drainage_UK <- function(rate, interception = 0, Koc, latest <- as.Date(paste(latest_application, "1999"), "%d %b %Y") tmp <- Sys.setlocale("LC_TIME", lct) degradation_time <- as.numeric(difftime(as.Date("1999-10-01"), units = "days", latest)) - if (!missing(soil_DT50)) { - k = log(2)/soil_DT50 - as.Date(paste(latest_application, "1999"), "%d %B %Y") + if (degradation_time > 0) { + if (!missing(soil_DT50)) { + k = log(2)/soil_DT50 + as.Date(paste(latest_application, "1999"), "%d %B %Y") - amount_available <- amount_available * exp(-k * degradation_time) - if (!missing(model)) stop("You already supplied a soil_DT50 value, implying SFO kinetics") - } - if (!missing(model)) { - fraction_left <- pfm_degradation(model, parms = model_parms, - times = degradation_time)[1, "parent"] - amount_available <- fraction_left * amount_available + amount_available <- amount_available * exp(-k * degradation_time) + if (!missing(model)) stop("You already supplied a soil_DT50 value, implying SFO kinetics") + } + if (!missing(model)) { + fraction_left <- pfm_degradation(model, parms = model_parms, + times = degradation_time)[1, "parent"] + amount_available <- fraction_left * amount_available + } } } diff --git a/log/build.log b/log/build.log index d5832bf..45bd696 100644 --- a/log/build.log +++ b/log/build.log @@ -4,5 +4,7 @@ * checking for LF line-endings in source and make files and shell scripts * checking for empty or unneeded directories * re-saving image files -* building ‘pfm_0.6.3.tar.gz’ +* building ‘pfm_0.6.4.tar.gz’ +Warning: invalid uid value replaced by that for user 'nobody' +Warning: invalid gid value replaced by that for user 'nobody' diff --git a/log/check.log b/log/check.log index c4dbfac..85a4ddc 100644 --- a/log/check.log +++ b/log/check.log @@ -1,5 +1,5 @@ -* using log directory ‘/home/agsad.admin.ch/f80868656/projects/pfm/pfm.Rcheck’ -* using R version 4.4.1 (2024-06-14) +* using log directory ‘/home/f80868656@agsad.admin.ch/projects/pfm/pfm.Rcheck’ +* using R version 4.4.2 (2024-10-31) * using platform: x86_64-pc-linux-gnu * R was compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 @@ -9,14 +9,12 @@ * using options ‘--no-tests --as-cran’ * checking for file ‘pfm/DESCRIPTION’ ... OK * checking extension type ... Package -* this is package ‘pfm’ version ‘0.6.3’ +* this is package ‘pfm’ version ‘0.6.4’ * package encoding: UTF-8 * checking CRAN incoming feasibility ... NOTE Maintainer: ‘Johannes Ranke <johannes.ranke@agroscope.admin.ch>’ -The Date field is over a month old. - -Size of tarball: 8532216 bytes +Size of tarball: 8532039 bytes * checking package namespace information ... OK * checking package dependencies ... OK * checking if this is a source package ... OK @@ -31,10 +29,10 @@ Size of tarball: 8532216 bytes sub-directories of 1Mb or more: testdata 9.9Mb * checking package directory ... OK -* checking for future file timestamps ... OK +* checking for future file timestamps ... NOTE +unable to verify current time * checking DESCRIPTION meta-information ... OK -* checking top-level files ... NOTE -Files ‘README.md’ or ‘NEWS.md’ cannot be checked without ‘pandoc’ being installed. +* checking top-level files ... OK * checking for left-over files ... OK * checking index information ... OK * checking package subdirectories ... OK @@ -51,7 +49,7 @@ Files ‘README.md’ or ‘NEWS.md’ cannot be checked without ‘pandoc’ be * checking S3 generic/method consistency ... OK * checking replacement functions ... OK * checking foreign function calls ... OK -* checking R code for possible problems ... [16s/12s] OK +* checking R code for possible problems ... OK * checking Rd files ... OK * checking Rd metadata ... OK * checking Rd line widths ... OK @@ -65,7 +63,13 @@ Files ‘README.md’ or ‘NEWS.md’ cannot be checked without ‘pandoc’ be * checking data for non-ASCII characters ... OK * checking LazyData ... OK * checking data for ASCII and uncompressed saves ... OK -* checking examples ... [17s/18s] OK +* checking examples ... NOTE +Examples with CPU (user + system) or elapsed time > 5s + user system elapsed +one_box 1.287 4.642 0.795 +max_twa 1.121 4.715 0.586 +sawtooth 1.272 4.425 0.740 +plot.one_box 1.271 4.314 0.706 * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... SKIPPED * checking PDF version of manual ... OK @@ -75,8 +79,8 @@ Skipping checking HTML validation: no command 'tidy' found * checking for detritus in the temp directory ... OK * DONE -Status: 4 NOTEs +Status: 5 NOTEs See - ‘/home/agsad.admin.ch/f80868656/projects/pfm/pfm.Rcheck/00check.log’ + ‘/home/f80868656@agsad.admin.ch/projects/pfm/pfm.Rcheck/00check.log’ for details. diff --git a/log/test.log b/log/test.log index 5f60406..367d456 100644 --- a/log/test.log +++ b/log/test.log @@ -2,17 +2,17 @@ ✔ | F W S OK | Context ✔ | 7 | Exposit calculations ✔ | 6 | Geometric mean calculation -✔ | 1 | Check max_twa for parent mkinfit models against analytical solutions [2.0s] +✔ | 1 | Check max_twa for parent mkinfit models against analytical solutions ✔ | 1 | Simple PEC sediment calculations ✔ | 17 | Simple PEC soil calculations ✔ | 8 | Simple PEC surface water calculations with drift entry ✔ | 1 | Actual and time weighted average concentrations for SFO kinetics ✔ | 9 | FOCUS Step 1 calculations ✔ | 8 | FOCUS Steps 12 input files -✔ | 7 | Read and analyse TOXSWA cwa files [6.3s] -✔ | 12 | UK drainage PEC calculations +✔ | 7 | Read and analyse TOXSWA cwa files [4.8s] +✔ | 13 | UK drainage PEC calculations ══ Results ═════════════════════════════════════════════════════════════════════════════════════════ -Duration: 9.5 s +Duration: 6.6 s -[ FAIL 0 | WARN 0 | SKIP 0 | PASS 77 ] +[ FAIL 0 | WARN 0 | SKIP 0 | PASS 78 ] diff --git a/man/PEC_sw_drainage_UK.Rd b/man/PEC_sw_drainage_UK.Rd index f3d6169..058e068 100644 --- a/man/PEC_sw_drainage_UK.Rd +++ b/man/PEC_sw_drainage_UK.Rd @@ -35,7 +35,8 @@ The predicted concentration in surface water in µg/L } \description{ This implements the method specified in the UK data requirements handbook and was checked against the spreadsheet -published on the CRC website +published on the CRC website. Degradation before the start of the drainage period is taken into account if +\code{latest_application} is specified and the degradation parameters are given either as a \code{soil_DT50} or a \code{model}. } \examples{ PEC_sw_drainage_UK(150, Koc = 100) diff --git a/tests/testthat/test_UK_drainage.R b/tests/testthat/test_UK_drainage.R index 2789819..05c59b2 100644 --- a/tests/testthat/test_UK_drainage.R +++ b/tests/testthat/test_UK_drainage.R @@ -33,4 +33,12 @@ test_that("UK drainflow PECs are correct", { expect_equal(round(PEC_sw_drainage_UK(60, interception = 0.5, Koc = 550, latest_application = "01 July", soil_DT50 = 200), 2), 0.84) + + # Test that PECsw do not increase if the application is after the beginning + # of the drainflow period + expect_equal( + PEC_sw_drainage_UK(60, interception = 0.5, Koc = 550), + PEC_sw_drainage_UK(60, interception = 0.5, Koc = 550, + latest_application = "01 November", soil_DT50 = 200)) + }) |