Last data update: 2014.03.03

R: Limiting Rootability
LRIR Documentation

Limiting Rootability

Description

Derive Limiting Rootability using observed soil properties at at least three depths.

Usage

LRI(UHDICM, LHDICM, SNDPPT, SLTPPT, CLYPPT, CRFVOL, BLD,
   ORCDRC, ECN, CEC, ENA, EACKCL, EXB, PHIHOX, CRB, GYP, tetaS, 
   fix.values=TRUE, thresholds, print.thresholds=FALSE)

Arguments

UHDICM

numeric; upper horizon depth in cm

LHDICM

numeric; lower horizon depth in cm

SNDPPT

numeric; sand content in percent

SLTPPT

numeric; silt content in percent

CLYPPT

numeric; clay content in percent

CRFVOL

numeric; volume percentage of coarse fragments (> 2 mm)

BLD

numeric; bulk density in kg per cubic-meter for the horizon/solum

ORCDRC

numeric; soil organic carbon concentration in permille or g per kg

ECN

numeric; electrical conductivity in dS per m

CEC

numeric; Cation Exchange Capacity in cmol per kilogram

ENA

numeric; exchangable Na in cmol per kilogram

EACKCL

numeric; exchangable acidity in cmol per kilogram

EXB

numeric; exchangable bases in cmol per kilogram

PHIHOX

numeric; soil pH in water suspension

CRB

numeric; CaCO3 (carbonates) in g per kg

GYP

numeric; CaSO4 (gypsum) in g per kg

tetaS

numeric; volumetric percentage (optional; if not provided it will be derived using the AWCPTF Pedo-Transfer Function)

fix.values

logical; specifies whether to correct values of textures and bulk density to avoid creating nonsensical values

thresholds

data.frame; optional table containing threshold values for "CRFVOL", "tetaS" (volumetric percentage), "BLD.f" (clay-adjusted BLD), "SNDPPT", "CLY.d" (difference in clay between horizons), "SND.d" (difference in sand between horizons), "PHIHOX.L" (lower limits for pH), "PHIHOX.H" (upper limits for pH), "ECN", "ENA.f" (exchangable saturated Na), "ENA", "EACKCL.f" (exchangable saturated acidity), "CRB" (carbonates), and "GYP" (gypsum)

print.thresholds

logical; specifies whether to attach the threshold values to the output object

Value

Returns a vector with TRUE / FALSE values where FALSE indicates rooting not possible. Threshold values used to derive Limiting Rootability scores are set based on common soil agricultural productivity tresholds (e.g. in this case for maize), and can be adjusted via the thresholds argument. This functions also accounts for textural changes (sudden changes in sand and clay content) and saturated water content.

Note

Horizons need to be sorted by depth e.g. 0-5, 5-15, 15-30... For each soil property at least three depths are needed otherwise the function reports an error. Missing values are automatically replaced using smoothing splines.

Author(s)

Johan Leenaars and Maria Ruiperez Gonzalez

References

  • Driessen, P. M., & Konijn, N. T. (1992) Land-use systems analysis. Wageningen Agricultural University.

  • Rijsberman, F. R., & Wolman, M. G. (1985) Effect of erosion on soil productivity: an international comparison. Journal of soil and water conservation, 40(4), 349-354.

See Also

AWCPTF, ERDICM

Examples

## sample profile from Nigeria (ISRIC:NG0017):
UHDICM = c(0, 18, 36, 65, 87, 127)
LHDICM = c(18, 36, 65, 87, 127, 181)
SNDPPT = c(66, 70, 54, 43, 35, 47)
SLTPPT = c(13, 11, 14, 14, 18, 23)
CLYPPT = c(21, 19, 32, 43, 47, 30)
CRFVOL = c(17, 72, 73, 54, 19, 17)
BLD = c(1.57, 1.60, 1.52, 1.50, 1.40, 1.42)*1000
PHIHOX = c(6.5, 6.9, 6.5, 6.2, 6.2, 6.0)
CEC = c(9.3, 4.5, 6.0, 8.0, 9.4, 10.9)
ENA = c(0.1, 0.1, 0.1, 0.1, 0.1, 0.2)
EACKCL = c(0.1, 0.1, 0.1, NA, NA, 0.5)
EXB = c(8.9, 4.0, 5.7, 7.4, 8.9, 10.4)
ORCDRC = c(18.4, 4.4, 3.6, 3.6, 3.2, 1.2)
x <- LRI(UHDICM=UHDICM, LHDICM=LHDICM, SNDPPT=SNDPPT, 
   SLTPPT=SLTPPT, CLYPPT=CLYPPT, CRFVOL=CRFVOL, 
   BLD=BLD, ORCDRC=ORCDRC, CEC=CEC, ENA=ENA, EACKCL=EACKCL, 
   EXB=EXB, PHIHOX=PHIHOX, print.thresholds=TRUE)
x
## Most limiting: BLD.f and CRFVOL, but nothing < 20

## Effective Rootable Depth:
sel <- x==FALSE
if(!all(sel==FALSE)){ 
  UHDICM[which(sel==TRUE)[1]] 
} else {
  max(LHDICM)
}

xI <- attr(x, "minimum.LRI")
## derive Effective rooting depth:
ERDICM(UHDICM=UHDICM, LHDICM=LHDICM, minimum.LRI=xI, DRAINFAO="M")

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(GSIF)
GSIF version 0.5-2 (2016-06-25)
URL: http://gsif.r-forge.r-project.org/
> png(filename="/home/ddbj/snapshot/RGM3/R_CC/result/GSIF/LRI.Rd_%03d_medium.png", width=480, height=480)
> ### Name: LRI
> ### Title: Limiting Rootability
> ### Aliases: LRI
> 
> ### ** Examples
> 
> ## sample profile from Nigeria (ISRIC:NG0017):
> UHDICM = c(0, 18, 36, 65, 87, 127)
> LHDICM = c(18, 36, 65, 87, 127, 181)
> SNDPPT = c(66, 70, 54, 43, 35, 47)
> SLTPPT = c(13, 11, 14, 14, 18, 23)
> CLYPPT = c(21, 19, 32, 43, 47, 30)
> CRFVOL = c(17, 72, 73, 54, 19, 17)
> BLD = c(1.57, 1.60, 1.52, 1.50, 1.40, 1.42)*1000
> PHIHOX = c(6.5, 6.9, 6.5, 6.2, 6.2, 6.0)
> CEC = c(9.3, 4.5, 6.0, 8.0, 9.4, 10.9)
> ENA = c(0.1, 0.1, 0.1, 0.1, 0.1, 0.2)
> EACKCL = c(0.1, 0.1, 0.1, NA, NA, 0.5)
> EXB = c(8.9, 4.0, 5.7, 7.4, 8.9, 10.4)
> ORCDRC = c(18.4, 4.4, 3.6, 3.6, 3.2, 1.2)
> x <- LRI(UHDICM=UHDICM, LHDICM=LHDICM, SNDPPT=SNDPPT, 
+    SLTPPT=SLTPPT, CLYPPT=CLYPPT, CRFVOL=CRFVOL, 
+    BLD=BLD, ORCDRC=ORCDRC, CEC=CEC, ENA=ENA, EACKCL=EACKCL, 
+    EXB=EXB, PHIHOX=PHIHOX, print.thresholds=TRUE)
> x
[1] TRUE TRUE TRUE TRUE TRUE TRUE
attr(,"minimum.LRI")
[1] 35.0 29.5 47.0 54.5 73.0 61.5
attr(,"most.limiting.factor")
[1] "tetaS" "tetaS" "tetaS" "tetaS" "tetaS" "tetaS"
attr(,"thresholds")
attr(,"thresholds")$ERscore1
 [1] 100.0  80.0  50.0   0.0  95.0  40.0  40.0   5.5   7.8   1.5  10.0   1.0
[13]  35.0   2.5 150.0 150.0

attr(,"thresholds")$ERscore2
 [1]   0.000  90.000  30.000   0.350 100.000  60.000  60.000   3.625   9.050
[10]   6.750  25.000   5.000  85.000   6.500 750.000 750.000

attr(,"thresholds")$Trend
 [1]  0 -1  1 -1 -1 -1 -1  1 -1 -1 -1 -1 -1 -1 -1 -1

attr(,"thresholds")$Score
 [1] 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

attr(,"thresholds.names")
attr(,"thresholds.names")$variable
 [1] "range"    "CRFVOL"   "tetaS"    "BLD.f"    "SNDPPT"   "CLY.d"   
 [7] "SND.d"    "PHIHOX.L" "PHIHOX.H" "ECN"      "ENA.f"    "ENA"     
[13] "EACKCL.f" "EACKCL"   "CRB"      "GYP"     

> ## Most limiting: BLD.f and CRFVOL, but nothing < 20
> 
> ## Effective Rootable Depth:
> sel <- x==FALSE
> if(!all(sel==FALSE)){ 
+   UHDICM[which(sel==TRUE)[1]] 
+ } else {
+   max(LHDICM)
+ }
[1] 181
> 
> xI <- attr(x, "minimum.LRI")
> ## derive Effective rooting depth:
> ERDICM(UHDICM=UHDICM, LHDICM=LHDICM, minimum.LRI=xI, DRAINFAO="M")
[1] 100
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>