Learn R Programming

soilwater (version 1.0.5)

swc: Soil water Retantion Curve and Unsaturated Hydraulic Conductivity

Description

Soil Water Retention Curve 'swc', Hydraulic Conductivity 'khy' , Soil Water Capacity 'cap' , Soil Water (Hydraulic) Diffusivity 'diffusivity'

Usage

swc(psi = 0.5, alpha = 1, n = 1.5, m = 1 - 1/n, theta_sat = 0.4,
  theta_res = 0.05, psi_s = -1/alpha, lambda = m * n,
  saturation_index = FALSE, type_swc = c("VanGenuchten", "BrooksAndCorey"),
  ...)

khy(psi = 0.5, v = 0.5, ksat = 0.01, alpha = 1, n = 1.5, m = 1 - 1/n, theta_sat = 0.4, theta_res = 0.05, psi_s = -1/alpha, lambda = m * n, b = NA, type_swc = "VanGenuchten", type_khy = c("Mualem", "BrooksAndCorey"), ...)

cap(psi = 0.5, alpha = 1, n = 1.5, m = 1 - 1/n, theta_sat = 0.4, theta_res = 0.05, type_swc = "VanGenuchten", ...)

diffusivity(psi = 0.5, v = 0.5, ksat = 0.01, alpha = 1, n = 1.5, m = 1 - 1/n, theta_sat = 0.4, theta_res = 0.05, ...)

Arguments

psi

soil wwater pressure head

alpha

inverse of a length - scale parameters in Van Genuchten Formula

n

shape parameter in Van Genuchten Formula

m

shape parameter in Van Genuchten Formula. Default is 1-1/n

theta_sat

saturated water content

theta_res

residual water content

psi_s

psi_s value (capillary fringe) in Brook and Corey formula. It is used in case type_swc and/or type_khy are equal to BrooksAndCorey.

lambda, b

lambda and b exponents in Brook and Corey formula. It is used in case type_swc and/or type_khy are equal to BrooksAndCorey.

saturation_index

logical index, If TRUE (Default) the function swc() returns soil water content, otherwise a saturation index between 0 and 1.

type_swc

type of Soil Water Retention Curve. Default is "VanGenuchten" and actually the only implemented type

...

further arguments which are passed to swc() and khy()

v

exponent in Mualem Formula for Hydraulic Conductivity

ksat

saturated hydraulic conductivity

type_khy

type of Soil Hydraulic Conductivity Curve. Default is "Mualem" and actually the only implemented type

Examples

Run this code
# NOT RUN {
library(soilwater)
soiltype <- c("sand","silty-sand","loam","clay")
theta_sat <- c(0.44,0.39,0.51,0.48)
theta_res <- c(0.02,0.155,0.04,0.10)
alpha <- c(13.8,6.88,9.0,2.7) # 1/meters
n <- c(2.09,1.881,1.42,1.29) 
m <- 1-1/n
v <- array(0.5,length(soiltype))
ks <- c(1.5e-1,1e-4*3600,3.3e-2,4.1e-4)/3600   # meters/seconds

psi <- -(1:2000)/1000

D <- as.data.frame(array(0.1,c(length(psi),length(soiltype))))
names(D) <- soiltype
for (it in names(D)) {
  
  i=which(names(D)==it)
  D[,i] <- diffusivity(psi=psi,
            v=v[i],ksat=ks[i],alpha=alpha[i],
            n=n[i],m=m[i],theta_sat=theta_sat[i],
            theta_res=theta_res[i])
 
}
# plot diffusivity on log scale 
lty <- 1:length(names(D) )

plot(psi,D[,1],lty=lty[1],main="Diffusvity vs psi",xlab="psi [m]",
ylab="D [m^2/s]",type="l",ylim=range(D),ylog=TRUE)
for (i in 2:ncol(D)) {
  lines(psi,D[,i],lty=lty[i]) 
}
legend("topleft",lty=lty,legend=names(D))
Dinv <- 1/D 

# pot diffusivity on log scale 
lty <- 1:length(names(D) )

plot(psi,Dinv[,1],lty=lty[1],main="1/Diffusvity vs psi",
xlab="psi [m]",ylab="1/D [s/m^2]",type="l",ylim=range(Dinv),ylog=TRUE)
for (i in 2:ncol(Dinv)) {
  lines(psi,Dinv[,i],lty=lty[i]) 
}
legend("topright",lty=lty,legend=names(D))
# }

Run the code above in your browser using DataLab