R/get.increase.matrix.R
get.increase.matrix.Rd
Computes pair-wise distance matrix to determine where an attribute increases within a specified vertical distance threshold.
get.increase.depths
performs the conversion of the square matrix
output of get.increase.matrix
back to horizon top depth for where
criteria were met.
get.increase.matrix(p, attr, threshold.fun, vertical.distance)
get.increase.depths(p, attr, threshold.fun, vertical.distance)
a SoilProfileCollection, containing a single profile
horizon attribute name to get the "increase" of
a function that returns the threshold (as a function of attr); may return a constant single value
the vertical distance (determined from difference SPC top depth variable) within which increase must be met
Returns a square logical matrix reflecting where the increase criteria were met.
get.increase.depths
converts to horizon top depth by using above
matrix output to determine depths where increase is met.
Returns a numeric vector of depths where the increase requirement is met. For the argillic, the first is the one of interest.
get.increase.depths()
converts to horizon top depth by using above
matrix output to determine depths where increase is met.
Uses matrix outer product to determine all pair-wise differences in attr
for the horizons of p
. Supplies attr
to threshold.fun
to determine the
minimum value criterion to return TRUE in output matrix for an "increase".
Also, computes all pair-wise distances in depth dimension to determine
whether the vertical distance criteria have been met simultaneously with
attr
increase.
This function assumes that the threshold.fun
supplied by the user returns
either a constant or a vector of equal length to its input.
Note that the threshold.fun
result is allowed to contain NA, but that will
result in no output for affected cells.
get.increase.depths()
performs the conversion of the square matrix
output of get.increase.matrix
back to horizon top depth for where
criteria were met.
Note that the threshold.fun
result is allowed to contain NA
, but that will
result in no output for affected cells.
data(sp1, package = 'aqp')
depths(sp1) <- id ~ top + bottom
site(sp1) <- ~ group
p <- sp1[1]
attr <- 'prop' # clay contents
foo <- get.increase.matrix(p, threshold.fun = crit.clay.argillic,
attr = attr, vertical.distance = 30)
foo
#> [,1] [,2] [,3] [,4] [,5] [,6]
#> [1,] FALSE FALSE FALSE FALSE FALSE FALSE
#> [2,] FALSE FALSE FALSE TRUE FALSE FALSE
#> [3,] FALSE FALSE FALSE TRUE TRUE FALSE
#> [4,] FALSE FALSE FALSE FALSE TRUE FALSE
#> [5,] FALSE FALSE FALSE FALSE FALSE FALSE
#> [6,] FALSE FALSE FALSE FALSE FALSE FALSE
data(sp1, package = 'aqp')
depths(sp1) <- id ~ top + bottom
#> This is already a SoilProfileCollection-class object, doing nothing.
site(sp1) <- ~ group
#> Error in eval(predvars, data, env): object 'group' not found
p <- sp1[1]
attr <- 'prop' # clay contents
foo <- get.increase.depths(p, threshold.fun = crit.clay.argillic,
attr = attr, vertical.distance = 30)
foo
#> [1] 49 57