knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) has_pavo <- requireNamespace("pavo", quietly = TRUE)
library(lightr)
This vignette has two goals:
lightr
parsers produce the same output as the official
softwarelightr
For this, we use spectral data of the beak of the atlantic puffin, Fratercula arctica. This data was collected by Dr Claire Doutrelant, using an OceanOptics spectrometer.
knitr::include_graphics("puffin-small.jpg")
By default, OceanInsight spectrometers produce .ProcSpec
files, which R
cannot readily import. To help with this, OceanInsight official software,
SpectraSuite has a conversion feature, which turns .ProcSpec
files into tab
separated values files (.txt
).
So, let's start by comparing the .ProcSpec
spectra imported by lightr
and
the .txt
files produced by OceanOptics.
raw_files <- lr_get_spec(file.path("data", "puffin"), ext = "ProcSpec") txt_files <- lr_get_spec(file.path("data", "puffin"), ext = "txt")
We can visually inspect these two file using the dedicated S3 function
pavo::plot.rspec()
:
library(pavo) plot(raw_files, main = "Raw ProSpec files") plot(txt_files, main = "Exported txt files")
Spectra imported by lightr
and converted by SpectraSuite look pretty similar
upon visual inspection and we can confirm this with
all.equal(raw_files, txt_files, tol = 1e-4)
One possibly biologically relevant question would be to look at the interspecific variability in beak colour. I.e., do all puffin individuals have roughly the same colour or are some individuals brighter, more colourful than others?
For this, we will look at the difference in hue and brightness on the red part
of the beak for two individuals, with pavo::summary.rspec()
function (after
smoothing with pavo::procspec()
):
beak <- procspec(raw_files, opt = "smooth") summary(beak, subset = c("B2", "H5"))
Okay, these two individuals seem to differ quite a lot in terms of hue and
brightness. Now, one might ask if these difference can be perceived in bird
vision. We can test this with the pavo::coldist()
function.
vis_beak <- vismodel(beak, visual = "avg.uv", achromatic = "ch.dc") tcs_beak <- colspace(vis_beak) coldist(tcs_beak, achromatic = TRUE)
The values of dS
and dL
are below the 1 JND (just noticeable differences)
threshold, which means that the colour of the two individuals, in spite of
their difference, looks the same to the birds.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.