Generate a color signature for each soil profile in a collection.

soilColorSignature(spc, r = "r", g = "g", b = "b",
method='colorBucket', RescaleLightnessBy = 1, useProportions=TRUE,
pigmentNames=c('.white.pigment', '.red.pigment', '.green.pigment',
'.yellow.pigment', '.blue.pigment'))

Arguments

spc
a SoilProfileCollection object
r
horizon level attribute containing soil color (sRGB) red values
g
horizon level attribute containing soil color (sRGB) green values
b
horizon level attribute containing soil color (sRGB) blue values
method
algorithm used to compute color signature, `colorBucket`, `depthSlices`, or `pam`
RescaleLightnessBy
rescaling factor for CIE LAB L-coordinate
useProportions
use proportions or quantities, see details
pigmentNames
names for resulting pigment proportions or quantities

Details

details pending...

Value

For the `colorBucket` method, a data.frame object containing:

id column
set according to idname(spc)
.white.pigment
proportion or quantity of CIE LAB L-values
.red.pigment
proportion or quantity of CIE LAB positive A-values
.green.pigment
proportion or quantity of CIE LAB negative A-values
.yellow.pigment
proportion or quantity of CIE LAB positive B-values
.blue.pigment
proportion or quantity of CIE LAB negative B-values

Column names can be adjusted with the pigmentNames argument.

For the `depthSlices` method ...

For the `pam` method ...

References

https://en.wikipedia.org/wiki/Lab_color_space

See also

munsell2rgb

Examples

# trivial example, not very interesting
data(sp1)
depths(sp1) <- id ~ top + bottom

# convert Munsell -> sRGB triplets
rgb.data <- munsell2rgb(sp1$hue, sp1$value, sp1$chroma, return_triplets = TRUE)
sp1$r <- rgb.data$r
sp1$g <- rgb.data$g
sp1$b <- rgb.data$b

# extract color signature
pig <- soilColorSignature(sp1)