Title: | Implementation of Parametric Formulas for Soil Water Retention or Conductivity Curve |
---|---|
Description: | It is a set of R implementations of parametric formulas of soil water retention or conductivity curve. At the moment, only Van Genuchten (for soil water retention curve) and Mualem (for hydraulic conductivity) were implemented. See reference (<http://en.wikipedia.org/wiki/ Water_retention_curve>). |
Authors: | Emanuele Cordano, Daniele Andreis, Fabio Zottele |
Maintainer: | Emanuele Cordano <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.0.5 |
Built: | 2024-10-31 20:31:17 UTC |
Source: | https://github.com/ecor/soilwater |
Soil Water Retention Curve 'swc', Hydraulic Conductivity 'khy' , Soil Water Capacity 'cap' , Soil Water (Hydraulic) Diffusivity 'diffusivity'
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, ...)
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, ...)
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 |
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 |
lambda , b
|
lambda and b exponents in Brook and Corey formula. It is used in case |
saturation_index |
logical index, If |
type_swc |
type of Soil Water Retention Curve. Default is |
... |
further arguments which are passed to |
v |
exponent in Mualem Formula for Hydraulic Conductivity |
ksat |
saturated hydraulic conductivity |
type_khy |
type of Soil Hydraulic Conductivity Curve. Default is |
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))
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))
The water table recharge: the response unit
unitResponse(t, d = 1, D = 1, H = d, m = 100)
unitResponse(t, d = 1, D = 1, H = d, m = 100)
t |
time coordinate |
d |
depth of unsaturated zone along the slope-normal direction |
D |
soil water diffusivity |
H |
soil depth |
m |
maximum limit of summary truncation. Default is 100. |
This function calcletes the water-table recharge rate in a hillslope assuming:
1. Richards' Equation is linearized and reduced to the form of heat equation;
2. The diffusion water-table rate is connectedwith soil pressure head according with eq. 13 (Cordano and Rigon, 2008);
Cordano, E., and R. Rigon (2008), A perturbative view on the subsurface water pressure response at hillslope scale, Water Resour. Res., 44, W05407, doi:10.1029/2006WR005740. http://onlinelibrary.wiley.com/doi/10.1029/2006WR005740/pdf
library(soilwater) t <- seq(0,2,by=0.001) d <- c(1,0.75,0.5,0.25) val1 <- unitResponse(t, d = d[1], D = 1, H = 1, m = 500) val2 <- unitResponse(t, d = d[2], D = 1, H = 1, m = 500) val3 <- unitResponse(t, d = d[3], D = 1, H = 1, m = 500) val4 <- unitResponse(t, d = d[4], D = 1, H = 1, m = 500)
library(soilwater) t <- seq(0,2,by=0.001) d <- c(1,0.75,0.5,0.25) val1 <- unitResponse(t, d = d[1], D = 1, H = 1, m = 500) val2 <- unitResponse(t, d = d[2], D = 1, H = 1, m = 500) val3 <- unitResponse(t, d = d[3], D = 1, H = 1, m = 500) val4 <- unitResponse(t, d = d[4], D = 1, H = 1, m = 500)
Water volume in function of water-table depth or height 'swc', Hydraulic Conductivity 'khy' , Soil Water Capacity 'cap' , Soil Water (Hydraulic) Diffusivity 'diffusivity'
watervolume(d = H - h, H = 1, h = NA, nstep = 100, Gamma = 1, soilwaterretentioncurve = swc, ...)
watervolume(d = H - h, H = 1, h = NA, nstep = 100, Gamma = 1, soilwaterretentioncurve = swc, ...)
d |
water-table depth (under surface) |
H |
soil thickness |
h |
water-table heigth (over bedrock) |
nstep |
number of vertical spatial cells. Default is 100 |
Gamma |
liner coefficient for hydrostatic profile (Default is 1) |
soilwaterretentioncurve |
function describing the soil water retention curve. Default is |
... |
parametes for |
The water volume per topographical area unit obtained by vertical integration off soil water content profile