Calculate with spectral properties of light sources, materials, cameras, eyes, and scanners. Build complex systems from simpler parts using a spectral product algebra. For light sources, compute CCT, CRI, and SSI. For object colors, compute optimal colors and Logvinenko coordinates. Work with the standard CIE illuminants and color matching functions, and read spectra from text files, including CGATS files. Estimate a spectrum from its response. A user guide and 9 vignettes are included.
spacesXYZ
, which is now importedprobeOptimalColors()
, changed to zonohedral representation of the color solid.sectionOptimalColors()
plotOptimals3D()
plotOptimals2D()
planckSpectra()
changed constant c2
unit from nmK to mK to agree with the rest of the literaturespacesRGB
, which is now Suggestedminpack.lm
is no longer needed, or ImportedcomputeSSI()
, requested by Alex ForsytheACES.RGB
= ACES Reference Input Capture Device, from S-2008-001 Academy Color Encoding Specification.readSpectraCGATS()
plot()
. Spectra with NA values are now skipped.sprintf()
, changed %d
to %g
, unless obviously integral. Bug found by Dean Attali.invert()
plus new vignette Estimating a Spectrum from its Response - Inverse ColorimetryrectangularMaterial()
computeCCT()
etc., add new method
'mccamy'
rootSolve
actinometric()
as.data.frame()
atmosTransmittance()
CCTfromuv()
is.actinometric()
and is.radiometric()
ptransform()
, and use it to compute BT.709.RGB
and Adobe.RGB
emulate()
as.colorSpec()
luminsivity.1nm
moths.txt
and sunglasses.txt
Philips-HPS.txt
, solar-exposure.txt
, P4-phosphor-JEDEC.txt
, and Cree-LED.txt
power
is deprecated, and replaced by energy
. power
still works, but will eventually be removed.colorSpec()
, add argument specnames
resample()
, add arguments extrapolation
and clamp
photometric()
add arguments photopic
, scotopic
, and multiplier
cs.options()
, partial matching of the option name is enabledradiometric()
, add arguments multiplier
and warn
metadata()<-
add argument add
extradata()<-
add argument add
, and allow value
to be NULL
product()
, add argument integration
, and added an ambiguity warningsummary()
, the displayed Integral now works for irregular wavelengthssummary()
, print attribute ptransform
if presentplotPatchesRGB()
, allow background
to be linear RGB, fixed bug for shape
planckSpectra()
, added new argument c2
computeCCT()
and CCTfromXYZ()
and CCTfromuv()
, added new arguments method
, strict
, and c2
computeCRI()
, CCT is now computed with method='lm'
calibrate()
, fix special case when there is only 1 spectrumplot()
, fixed warning when ylab
is an expressionbind()
, fixed bug when binding the extradata
'colorSpec.'
minpack.lm
print.colorSpec()
and summary.colorSpec()
were sending output to stderr()
, instead of stdout()
interpolate()
plot.colorSpec()
, compute automatic margin line for ylab, depending on the width of y-axis labelsbind.colorSpec()
, add check for distinct specnames()
"extradata<-.colorSpec"
; specnames()
was not being preservedstdout()
to stderr()
, for better compatibility with RStudioreadCGATS()
, for easy access to non-spectral data in CGATS files