Simplify multiple Munsell color observations associated with each horizon.
This function is mainly intended for the processing of NASIS pedon/horizon
data which may or may not contain multiple colors per horizon/moisture
status combination. simplifyColorData
will "mix" multiple colors
associated with horizons in d
, according to IDs specified by
id.var
, using "weights" (area percentages) specified by the wt
argument to mix_and_clean_colors
.
Note that this function doesn't actually simulate the mixture of pigments on a surface, rather, "mixing" is approximated via weighted average in the CIELAB colorspace.
The simplifyColorData
function can be applied to data sources other
than NASIS by careful use of the id.var
and wt
arguments.
However, d
must contain Munsell colors split into columns named
"colorhue", "colorvalue", and "colorchroma". In addition, the moisture state
("Dry" or "Moist") must be specified in a column named "colormoistst".
The mix_and_clean_colors
function can be applied to arbitrary data
sources as long as x
contains sRGB coordinates in columns named "r",
"g", and "b". This function should be applied to chunks of rows within which
color mixtures make sense.
Examples:
simplifyColorData(d, id.var = "phiid", wt = "colorpct", bt = FALSE)
a data.frame
object, typically returned from NASIS, see
details
character vector with the name of the column containing an ID
that is unique among all horizons in d
a character vector with the name of the column containing color weights for mixing
logical, should the mixed sRGB representation of soil color be
transformed to closest Munsell chips? This is performed by aqp::col2Munsell()
D.E. Beaudette