BEST: R estimation of Beerkan estimation of soil transfer (BEST)

Description Usage Arguments Details Value Author(s) References Examples

Description

These functions compute the various versions of BEST. BEST computes all the 3 versions of BEST:Lassabatere etal(2006), Yilmaz et al(2010) and Bagarello et al (2014). BESTlass implements Lassabatere algorithm BESTyb implements Lassabatere algorithms of Yilmaz and Bagarello et al. et al.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
BEST(data = NULL, time, I, S = 0.1, n = NULL, m = "b", y = 0.75,
  b = 0.6, r = 75, pb = 1.2, tho = 0.169, thr = 0, PSD = NULL,
  h = NULL, theta = NULL, steady = 3, init = 5, ths = NULL)

## Default S3 method:
BEST(data = NULL, time, I, S = 0.1, n = NULL, m = "b",
  y = 0.75, b = 0.6, r = 75, pb = 1.2, tho = 0.169, thr = 0,
  PSD = NULL, h = NULL, theta = NULL, steady = 3, init = 5,
  ths = NULL)

BESTlass(data = NULL, time, I, S = 0.1, n = NULL, m = "b", y = 0.75,
  b = 0.6, r = 75, pb = 1.2, tho = 0.169, thr = 0, PSD = NULL,
  h = NULL, theta = NULL, steady = 3, init = 5, ths = NULL)

BESTyb(data = NULL, time, I, S = 0.1, n = NULL, m = "b", y = 0.75,
  b = 0.6, r = 75, pb = 1.2, tho = 0.169, thr = 0, PSD = NULL,
  h = NULL, theta = NULL, steady = 3, init = 5, ths = NULL)

group.BEST(data = NULL, time, I, S = 0.1, n = NULL, m = "b", y = 0.75,
  b = 0.6, r = 75, pb = 1.2, tho = 0.169, thr = 0, PSD = NULL,
  h = NULL, theta = NULL, steady = 3, init = 5, ths = NULL, group,
  plot = TRUE, layout = c(2, 2), hlog = NULL, klog = NULL,
  opar = par(mar = c(2, 2, 1.8, 2)))

cal.BEST(data = NULL, time, I, S = 0.1, n = NULL, m = "b", y = c(0.6,
  0.8, 0.05), b = c(0.1, 0.9, 0.1), r = 75, pb = c(1, 1.8, 0.1),
  tho = c(0.01, 0.8, 0.05), thr = c(0, 0.2, 0.05), PSD = NULL, h = NULL,
  theta = NULL, steady = c(2, 10, 1), init = c(5, 7, 1), ths = NULL,
  model = "all", group = NULL)

gof.BEST(x = NULL, obs = NULL, est = NULL, P = NULL)

## S3 method for class 'BEST'
coef(object, ...)

## S3 method for class 'BEST'
predict(object, h = NULL, ...)

## S3 method for class 'BEST'
plot(x, main = NULL, xlab = "Water Content", ylab = "",
  ylab2 = "", hlog = NULL, klog = NULL, col = c("blue", "red",
  "darkgreen"), units = c("s", "mm"), mfrow = c(2, 2), type = "all",
  legend = TRUE, opar = par(mar = c(2, 2, 1.5, 2)), ...)

Arguments

data

dataframe. It can contain data with column names of "time" and "I"

time

character or numeric. The name of time variable in the dataframe. If the "data" parameter contains "time", this will be ignored. The unit must be in seconds.

I

character or numeric. The name of cumulative infiltration variable in the dataframe. If the "data" parameter contains "I", this will be ignored. The unit must be in millimetres [mm].

S

Initial value of soil sorptivity [L T^(-1/2)]. The default is 0.1. This will be optimise

n

numeric. A shaping parameter for water retention curve. This can be calibrated. If the parameter "PSD" is not set NULL lass3 will be automatically used to estimate it.

m

character. The water retention curve condition. It takes either "b" for Burdine condition or "m" for Mualem condition.

y

numeric. coefficient of BEST A parameter, commonly set at 0.75[-] This can be calibrated.

b

numeric. coefficient of BEST B parameter, commonly set at 0.6[-]. This can be calibrated.

r

numeric. Radius of infiltrometer ring [mm]. The default is 75 mm

pb

numeric. Bulk density[g cm^-3]. This can be calibrated.

tho

numeric. initial volumetric soil water content. This can be calibrated.

thr

numeric. Residual volumetric soil water content. This can be calibrated.

PSD

dataframe. Particle Size Distribution. A dataframe of two columns. The first column should be labeled "D" in the range of 0.001 to 2 mm. The second column should be named as "fr" i.e.' the fraction of Diameter. The range should be 0-1.

h

list. The range of metric head desired or measured [mm].

theta

The measured soil water content[m3m-3] at the modelled pressure levels. It is used to check the fitness of the model.

steady

The number of data points that should be used for steady state. This can be observed during infiltration measurement

init

numeric. The number of data points that should be initially used for optimisation of Best equation.

ths

numeric. The saturated soil water content [m3/m3].

group

character. The name of the group variables if the data is from different areas.

plot

whether a plot should be performed.

layout

plot layout

hlog

TRUE or FALSE. Whether metric potential should be log transformed

klog

TRUE or FALSE. Whether hydraulic conductivity should be log transformed

model

A calibration model parameter. It takes "all" for {BEST} "Lassabatere" for {BESTlass} and "Yilmaz" for {BESTyb}, " Bagarello" {BESTyb}

x

a return object of the function.

obs

Observed data

est

Estimated or modelled data

P

Number of Parameters

object

Model output object

...

Any other graphical parameter

main

Title of the plot

xlab

x label of the plot

ylab

y label of the plot

ylab2

y label of the second plot (K)

col

Color of the plot

units

Units of the plot

mfrow

The graphical layout of the plots

type

The type of plot. It takes "all" or "h"or "hk" or "k"

legend

A legend of the plot

Details

The function can perform normal BEST computation with BEST.

Value

The return parameters can be assessed with coef.BEST. The predicted soil water can be assessed with predict.BEST. In all the function returns BEST parameters A, B, C, Ks, S, slope, intercept, mod_theta, hg. Because BEST combines BESTlass and BESTyb 'l', 'y', and 'b' can be used to access Lassabatere etal(2006), Yilmaz et al(2010) and Bagarello et al (2014) parameters, respectively. For the definitions of the output of PSD see lass3. For the definitions of the output of goodness of fit tests see gof

Author(s)

George Owusu

References

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
## Not run: 
psd=read.csv(system.file("ext","sys","psd.csv",package="vadose"))
hf=read.csv(system.file("ext","sys","h.csv",package="vadose"))
data=read.csv(system.file("ext","sys","exampleBEST.csv",package="vadose"))
mod1<-BEST(data=data,time="time",I="I",h=hf$h,PSD=psd)

pred=predict(mod1)
coefficients=coef(mod1)

# with measured theta and h
mod<-BEST(data=data,time="time",I="I",h=hf$h,theta=mod1$mod_thetab,PSD=psd,y=0.7,b=0.6)
print(gof.BEST(mod))
plot(mod,hlog="yes",klog=TRUE)
par(mfrow=c(1,2))
plot(mod,type="h")
plot(mod,type="psd")
gof1=gof.BEST(mod)
print(gof1)

#calibration
cal.mod<-cal.BEST(data=data,time="time",I="I",h=hf$h,theta=mod1$mod_thetab,PSD=psd,steady=3,
init=5,thr=0,ths=NULL,tho=0.162)
#calibrate all, set the model to 'all' Lassabatere etal(2006), 
Yilmaz et al(2010) and Bagarello et al (2014)
cal.modall<-cal.BEST(data=data,time="time",I="I",h=hf$h,theta=mod1$mod_thetab,PSD=psd,steady=3,
init=5,thr=0,ths=NULL,tho=0.162,model="all")
#get the parameters
parameters=coef.BEST(cal.modall)
S=parameters$S
A=parameters$A


## End(Not run)

gowusu/vadose documentation built on May 17, 2019, 7:59 a.m.