`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)
```

- p
a SoilProfileCollection, containing a single profile

- attr
horizon attribute name to get the "increase" of

- threshold.fun
a function that returns the threshold (as a function of attr); may return a constant single value

- vertical.distance
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
```