Interpolate Biogas Composition or Cumulative Production
Interpolate Biogas Composition or Cumulative Production
interp interpolates (or extrapolates) biogas composition (methane concentration) or cumulative production data to a wanted time using one of several possible methods.
interp(times, y, time.out, method ="linear", extrap =FALSE)
Arguments
times: measurement times. Numeric vector or POSIX.
y: response variable at times, e.g., mole fraction of methane in biogas, or biogas cumulative production. Numeric vector.
time.out: time or times at which interpolated values are needed. Numeric vector or POSIX.
method: method used for interpolation. Default is "linear", which uses the approx function. Use "f1" for to always use nearest value to right (see f = 1 argument in approx). For spline interpolation, use "ffm" or the other options available (see spline).
extrap: should y be exptrapolated? Logical. Default is FALSE. See Details .
Details
interp is really a wrapper for the interpolation functions approx and spline. For cumulative production, which (usually) must monotonically increase, method = "hyman" is the best choice. Extrapolation behavior depends on method. For method = "linear", extrap = TRUE simply returns the value of the closest y. For manometric measurement with mix of venting/no venting with composition measurements only when venting use method = "f1". See approx and spline for more information.
Returns
Interpolated estimates of y at given times.
Author(s)
Sasha D. Hafner and Charlotte Rennuit
See Also
cumBg
Examples
# Fake composition data dat <- data.frame(time = c(1,7,14,28), xCH4 = c(0.3,0.5,0.61,0.65))interp(dat$time, dat$xCH4, time.out =10)interp(dat$time, dat$xCH4, time.out =10, method ="natural")interp(dat$time, dat$xCH4, time.out = c(10,30))interp(dat$time, dat$xCH4, time.out = c(10,30), method ="natural")interp(dat$time, dat$xCH4, time.out = c(10,30), extrap =TRUE)# Actual datadata(comp)# Work with one reactorbgc <- subset(comp, id=="2_1")# With numeric time, interpolate to 1, 7, and 30 daysinterp(bgc$days, bgc$xCH4, time.out = c(1,7,30))# If extrapolation is OKinterp(bgc$days, bgc$xCH4, time.out = c(1,7,30), extrap =TRUE)# Or POSIXctinterp(bgc$date.time, bgc$xCH4, time.out = as.POSIXct("2014-07-12 13:00:00"))# For cumulative gas productiondata(vol)# Work with one reactorbgv <- subset(vol, id=="2_1")# Calculate cumulative volumebgv <- cumBg(bgv, time.name ="days")# The interpolate of cumulative production to 1, 7, and 30 daysinterp(bgv$days, bgv$cvBg, time.out = c(1,7,30), method ="hyman")