Skip to contents

Water retention curve modeling via van Genuchten model and KSSL data.

Usage

KSSL_VG_model(VG_params, phi_min = 10^-6, phi_max = 10^8, pts = 100)

Arguments

VG_params

data.frame or list object with the parameters of the van Genuchten model, see details

phi_min

lower limit for water potential in kPa

phi_max

upper limit for water potential in kPa

pts

number of points to include in estimated water retention curve

Value

A list with the following components:

VG_curve

estimated water retention curve: paired estimates of water potential (phi) and water content (theta)

VG_function

spline function for converting water potential (phi, units of kPa) to estimated volumetric water content (theta, units of percent, range: {0, 1})

VG_inverse_function

spline function for converting volumetric water content (theta, units of percent, range: {0, 1}) to estimated water potential (phi, units of kPa)

Details

This function was developed to work with measured or estimated parameters of the van Genuchten model, as generated by the Rosetta model. As such, VG_params should have the following format and conventions:

theta_r

saturated water content, values should be in the range of {0, 1}

theta_s

residual water content, values should be in the range of {0, 1}

alpha

related to the inverse of the air entry suction, function expects log10-transformed values with units of 1/cm

npar

index of pore size distribution, function expects log10-transformed values (dimensionless)

Note

A practical example is given in the fetchSCAN tutorial.

Author

D.E. Beaudette

Examples


# basic example
d <- data.frame(
  theta_r = 0.0337216, 
  theta_s = 0.4864061, 
  alpha = -1.581517, 
  npar = 0.1227247
)

vg <- KSSL_VG_model(d)

str(vg)
#> List of 3
#>  $ VG_curve           :'data.frame':	100 obs. of  2 variables:
#>   ..$ phi  : num [1:100] 1.00e-06 1.38e-06 1.92e-06 2.66e-06 3.68e-06 ...
#>   ..$ theta: num [1:100] 0.486 0.486 0.486 0.486 0.486 ...
#>  $ VG_function        :function (x, deriv = 0L)  
#>  $ VG_inverse_function:function (x, deriv = 0L)