# Campbel: Campbell water retention model In HydroMe: Estimating Water Retention and Infiltration Model Parameters using Experimental Data

## Description

This is a three-parameter function to determine water retention hydraulic parameters contained in the Campbell water retention model

## Usage

 `1` ```Campbel(x, ths, alp, nscal) ```

## Arguments

 `x` Suction potential/head as contained in the x-column of the xy water retention table or data `ths` This is the saturated moisture content. It's the moisture content when suction potential is very low (almost at the saturation point) `alp` It's the inverse of air-entry potential or bubbling pressure `nscal` This is a parameter or index for the pore-size distribution. nscal=1/b, where b is empirical parameter in the original Campbel model

## Details

A Campbell model is a type of nonlinear curve fitting model for fitting water retention characteristics using experimental data. It requires initial parameter estimates for the model to work. This can be obtained using Dstart function (e.g. thr=Dstart(data)[1]). If warnings are given during the estimation process, try to increase the iteration limit using control function. Sometimes the warnings can be suppressed using (warn=-1)/ignored since they do not terminate the process

## Value

A list of objects returned by standard R regression functions such as nls and lm

## Note

Warnings: Choice of starting values for Campbel function parameter estimation needs a careful thought. Sometimes it may be necessary to use alp=1/Dstart(data)[3] or Dstart(data)[3] and nscal=Dstart(data)[4]-1 or nscal=Dstart(data)[4]. One has to try the starting variables that will work for the given data

## Author(s)

Christian Thine Omuto

## References

Campbell GS. 1974. A simple method for determining unsaturated conductivity from moisture retention data. Soil Science 117: 311-314

 ```1 2 3 4 5 6 7 8 9``` ```data(isric) pf <- subset(isric, Sample=="Nicaragua38") require("minpack.lm") campbel.ns <- nlsLM(y ~ Campbel(x,ths,alp,nscal), data=pf, control = nls.lm.control(maxiter=200), start = c(ths = Dstart(pf)[2], alp=Dstart(pf)[3], nscal=-1*(Dstart(pf)[4]-1))) plot(fitted(campbel.ns),pf\$y) coef(campbel.ns) ```