aggregateColor: Summarize Soil Colors

View source: R/aggregateColor.R

aggregateColorR Documentation

Summarize Soil Colors

Description

Summarize soil color data, weighted by occurrence and horizon thickness.

Usage

aggregateColor(
  x,
  groups = "genhz",
  col = "soil_color",
  k = NULL,
  profile_wt = NULL,
  mixingMethod = c("estimate", "exact")
)

Arguments

x

a SoilProfileCollection object

groups

the name of a horizon or site attribute used to group horizons, see examples

col

the name of a horizon-level attribute with soil color specified in hexadecimal (i.e. "#rrggbb")

k

single integer specifying the number of colors discretized via PAM (cluster::pam()), see details

profile_wt

the name of a site-level attribute used to modify weighting, e.g. area

mixingMethod

method used to estimate "aggregate" soil colors, see mixMunsell()

Details

Weights are computed by: w_i = sqrt(sum(thickness_i)) * n_i where w_i is the weight associated with color i, thickness_i is the total thickness of all horizons associated with the color i, and n_i is the number of horizons associated with color i. Weights are computed within groups specified by groups.

See the related tutorial for additional examples.

Value

A list with the following components:

  • scaled.data: a list of colors and associated weights, one item for each generalized horizon label with at least one color specified in the source data

  • aggregate.data: a data.frame of weighted-mean colors, one row for each generalized horizon label with at least one color specified in the source data

Author(s)

D.E. Beaudette

See Also

generalize.hz(), aggregateColorPlot()

Examples


# keep examples from using more than 2 cores
data.table::setDTthreads(Sys.getenv("OMP_THREAD_LIMIT", unset = 2))

# load some example data
data(sp1, package = 'aqp')

# upgrade to SoilProfileCollection and convert Munsell colors
sp1$soil_color <- with(sp1, munsell2rgb(hue, value, chroma))
depths(sp1) <- id ~ top + bottom
site(sp1) <- ~ group

# generalize horizon names
n <- c('O', 'A', 'B', 'C')
p <- c('O', 'A', 'B', 'C')
sp1$genhz <- generalize.hz(sp1$name, n, p)

# aggregate colors over horizon-level attribute: 'genhz'
a <- aggregateColor(sp1, groups = 'genhz', col = 'soil_color')

# check results
str(a)

# simple visualization
aggregateColorPlot(a)


aqp documentation built on April 4, 2025, 4:15 a.m.