photobiology v0.9.25


Monthly downloads



Photobiological Calculations

Definitions of classes, methods, operators and functions for use in photobiology and radiation meteorology and climatology. Calculation of effective (weighted) and not-weighted irradiances/doses, fluence rates, transmittance, reflectance, absorptance, absorbance and diverse ratios and other derived quantities from spectral data. Local maxima and minima. Conversion between energy- and photon-based units. Wavelength interpolation. Astronomical calculations related solar angles and day length. Colours and vision. This package is part of the 'r4photobiology' suite, Aphalo P. J. (2015) <doi:10.19232/uv4pb.2015.1.14>.



version cran

Package ‘photobiology’ defines a system of classes for storing spectral data and accompanying metadata. For each of these classes specialised summary methods, maths operators and functions are provided. In addition, classes for storing collections of objects of the classes for individual spectra are defined as well as ‘apply’ functions. Extraction and replacement operators are also implemented. Functions for calculation of the position of the sun, times of sunrise and sunset, day length and night length are also provided.

The package supports storage and manipulation of data for radiation quantities and for optical properties of objects.

This package is the core of a suite of R packages for photobiological calculations described at the r4photobiology web site.


The first example shows you how to estimate solar irradiance in W/m2 under a filter. We use a measured solar spectrum and a measured filter transmission spectrum.

e_irrad(sun.spct * yellow_gel.spct)
#>    Total 
#> 146.5044 
#> attr(,"time.unit")
#> [1] "second"
#> attr(,"radiation.unit")
#> [1] "energy irradiance total"

The second example shows some simple astronomical calculations for the sun.

geocode <- data.frame(lon = 0, lat = 55)
date <- lubridate::today(tzone = "UTC")
sunrise_time(date, tz = "UTC", geocode = geocode)
#> [1] "2018-12-09 08:12:45 UTC"
day_length(date, tz = "UTC", geocode = geocode)
#> [1] 7.32331


Installation of the most recent stable version from CRAN:


Installation of the current unstable version from Bitbucket:

# install.packages("devtools")


HTML documentation is available at (, including a User Guide.

News on updates to the different packages of the ‘r4photobiology’ suite are regularly posted at (

Two articles introduce the basic ideas behind the design of the suite and its use: Aphalo P. J. (2015) ( and Aphalo P. J. (2016) (

A book is under preparation, and the draft is currently available at (

A handbook written before the suite was developed contains useful information on the quantification and manipulation of ultraviolet and visible radiation: Aphalo, P. J., Albert, A., Björn, L. O., McLeod, A. R., Robson, T. M., & Rosenqvist, E. (Eds.) (2012) Beyond the Visible: A handbook of best practice in plant UV photobiology (1st ed., p. xxx + 174). Helsinki: University of Helsinki, Department of Biosciences, Division of Plant Biology. ISBN 978-952-10-8363-1 (PDF), 978-952-10-8362-4 (paperback). PDF file available from (


Pull requests, bug reports, and feature requests are welcome at (


If you use this package to produce scientific or commercial publications, please cite according to:

#> To cite package 'photobiology' in publications, please use:
#>   Aphalo, Pedro J. (2015) The r4photobiology suite. UV4Plants
#>   Bulletin, 2015:1, 21-29. DOI:10.19232/uv4pb.2015.1.14
#> A BibTeX entry for LaTeX users is
#>   @Article{,
#>     author = {Pedro J. Aphalo},
#>     title = {The r4photobiology suite},
#>     journal = {UV4Plants Bulletin},
#>     volume = {2015},
#>     number = {1},
#>     pages = {21-29},
#>     year = {2015},
#>     doi = {10.19232/uv4pb.2015.1.14},
#>   }


© 2012-2018 Pedro J. Aphalo ( Released under the GPL, version 2 or greater. This software carries no warranty of any kind.

Functions in photobiology

Name Description
FEL.BN.9101.165 Data for typical calibration lamps
A2T Convert absorbance into transmittance
T2A Convert transmittance into absorbance.
T2Afr Convert transmittance into absorptance.
as.cps_spct Coerce to a spectrum
as.filter_mspct Coerce to a collection-of-spectra
Ler_leaf_trns_i.spct Green Arabidopsis leaf spectral transmittance.
D2.UV654 Data for typical calibration lamps
D2.UV586 Data for typical calibration lamps
as.filter_spct Coerce to a spectrum
as.calibration_spct Coerce to a spectrum
as.generic_mspct Coerce to a collection-of-spectra
D2_spectrum Calculate deuterium lamp output spectrum from fitted constants
D2.UV653 Data for typical calibration lamps
MathFun Miscellaneous Mathematical Functions
T2T Convert transmittance type.
as.chroma_mspct Coerce to a collection-of-spectra
Trig Trigonometric Functions
as.response_mspct Coerce to a collection-of-spectra
as.chroma_spct Coerce to a spectrum
as.response_spct Coerce to a spectrum
black_body.spct Theoretical black body
Ler_leaf_rflt.spct Green Arabidopsis leaf spectral reflectance.
c.generic_mspct Combine collections of spectra
Ler_leaf_trns.spct Green Arabidopsis leaf spectral transmittance.
ciexyzCMF2.spct Linear energy CIE xyz colour matching function (CMF) 2 deg data
absorptance Absorptance
as.cps_mspct Coerce to a collection-of-spectra
as.generic_spct Coerce to a spectrum
absorptance_spct Calculate absorptance from spectral absorptance.
as.reflector_mspct Coerce to a collection-of-spectra
class_spct Query which is the class of an spectrum
as.reflector_spct Coerce to a spectrum
as.raw_mspct Coerce to a collection-of-spectra
add_attr2tb Copy attributes from members of a generic_mspct
as.calibration_mspct Coerce to a collection-of-spectra
as.raw_spct Coerce to a spectrum
clear.spct Theoretical spectrum of a clear material
as.object_mspct Coerce to a collection-of-spectra
as.object_spct Coerce to a spectrum
as_tod Convert date to time-of-day in hours, minutes or seconds
auto_hinges Guess whether insertion of hinges is needed or not
as.solar_date Convert a solar_time object into solar_date object
as.source_mspct Coerce to a collection-of-spectra
clear_body.spct Theoretical clear body
cps2irrad Conversion from counts per second to physical quantities
as_quantum Convert spectral energy irradiance into spectral photon irradiance
calc_multipliers Spectral weights
average_spct Average spectral data.
as.matrix-mspct Coerce a collection of spectra into a matrix
beesxyzCMF.spct Honeybee xyz chromaticity colour matching function data
day_night Times for sun positions
ciev2.spct Linear energy CIE 2008 luminous efficiency function 2 deg data
as.source_spct Coerce to a spectrum
calc_source_output Scaled and/or interpolated light-source spectral output
ciexyzCC10.spct CIE xyz chromaticity coordinates (CC) 10 deg data
energy_irradiance Calculate (energy) irradiance from spectral irradiance
as_energy Convert spectral photon irradiance into spectral energy irradiance
color_of Color of an object
as_quantum_mol Convert spectral energy irradiance into spectral photon irradiance
ccd.spct Spectral response of a back-thinned CCD image sensor.
check_w.length Sanity check of wavelengths (internal function).
checkMspctVersion Check that the "mspct.version" attribute is set
energy_ratio Energy:energy ratio
find_wls Find wavelength values in a spectrum
ciev10.spct Linear energy CIE 2008 luminous efficiency function 10 deg data
ciexyzCC2.spct CIE xyz chromaticity coordinates 2 deg data
fluence Fluence
clean Clean (=replace) off-range values in a spectrum
getInstrDesc Get the "instr.desc" attribute
ciexyzCMF10.spct Linear energy CIE xyz colour matching function (CMF) 10 deg data
checkSpctVersion Check that the "spct.version" attribute is set
checkTimeUnit Check the "time.unit" attribute of an existing source_spct object
clip_wl Clip head and/or tail of a spectrum
getInstrSettings Get the "instr.settings" attribute
clear_photobio.cache Clear the spectral weights cache
check_spct Check validity of spectral objects
clean_spct Clean a spectrum
getScaled Get the "scaled" attribute
convertTimeUnit Convert the "time.unit" attribute of an existing source_spct object
e2quantum_multipliers Calculate energy to quantum multipliers
e2q Convert energy-based quantities into photon-based quantities.
div-.generic_spct Arithmetic Operators
e_fluence Energy fluence
e_irrad Energy irradiance
check_spectrum Sanity check a spectrum
div_spectra Divide two spectra, even if the wavelengths values differ
getSpctVersion Get the "spct.version" attribute
get_peaks Get peaks and valleys in a spectrum
copy_attributes Copy attributes
convolve_each Convolve function for collections of spectra
defunct Defunct functions and methods
e_ratio Energy:energy ratio
green_leaf.spct Green birch leaf reflectance.
dim.generic_mspct Dimensions of an Object
eq_ratio Energy:photon ratio
irrad Irradiance
f_dispatcher_spct Math function dispatcher for spectra
e2qmol_multipliers Calculate energy to quantum (mol) multipliers
irradiance Photon or energy irradiance from spectral energy or photon irradiance.
e_response Energy-based photo-response
join_mspct Join all spectra in a collection
julian_day Solar astronomy using Meeus' algorithm
energy_as_default Set spectral-data options
merge2object_spct Merge into object_spct
Extract Extract or replace parts of a spectrum
merge_attributes Merge and copy attributes
Extract_mspct Extract or replace members of a collection of spectra
filter_cps.mspct Counts per second from a measurement of a plastic film
format.solar_time Encode in a Common Format
normalized_diff_ind Calculate a normalized index.
fscale Rescale a spectrum using a summary function
formatted_range Compute range and format it
generic_mspct Collection-of-spectra constructor
opaque.spct Theoretical spectrum of an opaque material
print Print a spectral object
spread Expanse
getMspctVersion Get the "mspct.version" attribute
print.solar_time Print solar time and solar date objects
getAfrType Get the "Afr.type" attribute
getWhereMeasured Get the "where.measured" attribute
findMultipleWl Find repeated w.length values
fshift Shift the scale of a spectrum using a summary function
fscale_spct fscale a spectrum
getMultipleWl Get the "multiple.wl" attribute
find_peaks Find peaks in a spectrum
fshift_spct fshift a spectrum
prod_spectra Multiply two spectra, even if the wavelengths values differ
getTfrType Get the "Tfr.type" attribute
getBSWFUsed Get the "bswf.used" attribute
getTimeUnit Get the "time.unit" attribute of an existing source_spct object
getNormalized Get the "normalized" attribute
integrate_xy Gives irradiance from spectral irradiance.
getIdFactor Get the "idfactor" attribute
q2e Convert photon-based quantities into energy-based quantities
getRfrType Get the "Rfr.type" attribute
interpolate_spct Map a spectrum to new wavelength values.
is.generic_spct Query class of spectrum objects
is.generic_mspct Query class of spectrum objects
getWhatMeasured Get the "what.measured" attribute
is_tagged Query if it is an spectrum is tagged
is_scaled Query whether a generic spectrum has been scaled
wl_midpoint Midpoint
get_attributes Get the metadata attributes
interpolate_spectrum Calculate spectral values at a different set of wavelengths
wl_min Wavelength minimum
na.omit.source_spct Handle Missing Values in Objects
normalization Normalization of an R object
head_tail Return the First and Last Part of an Object
photons_energy_ratio Photon:energy ratio
getWhenMeasured Get the "when.measured" attribute
interpolate_wl Map spectra to new wavelength values.
isValidInstrDesc Check the "instr.desc" attribute
insert_hinges Insert wavelength values into spectral data.
plus-.generic_spct Arithmetic Operators
isValidInstrSettings Check the "instr.settings" attribute
l_insert_hinges Insert wavelength values into spectral data.
s_e_irrad2rgb Spectral irradiance to rgb color conversion
insert_spct_hinges Insert new wavelength values into a spectrum
setAfrType Set the "Afr.type" attribute
labels Find labels from "waveband" object
integrate_spct Integrate spectral data.
setMultipleWl Set the "multiple.wl" attribute
setInstrSettings Set the "instr.settings" attribute
is.summary_generic_spct Query class of spectrum summary objects
is.waveband Query if it is a waveband
is.old_spct Query if an object has old class names
log Logarithms and Exponentials
q_ratio Photon:photon ratio
is_normalized Query whether a generic spectrum has been normalized.
is_photon_based Query if a spectrum contains photon- or energy-based data.
wl_max Wavelength maximum
setWhenMeasured Set the "when.measured" attribute
q_response Photon-based photo-response
setWhereMeasured Set the "where.measured" attribute
oper_spectra Binary operation on two spectra, even if the wavelengths values differ
wl_stepsize Stepsize
subset2mspct Convert 'long' or tidy spectral data into a collection of spectra Daily solar spectral irradiance (simulated)
peaks Peaks or local maxima
is_absorbance_based Query if a spectrum contains absorbance or transmittance data
is.solar_time Query class
sun.daily.spct Daily solar spectral irradiance (simulated)
polyester.spct Transmittance spectrum of clear polyester film
minus-.generic_spct Arithmetic Operators
^.generic_spct Arithmetic Operators
trimInstrSettings Trim the "instr.settings" attribute
is_effective Is an R object "effective"
mod-.generic_spct Arithmetic Operators
msmsply Multi-spct transform methods
reflectance_spct Calculate reflectance from spectral reflectance
trim_spct Trim (or expand) head and/or tail of a spectrum
relative_AM Relative Air Mass (AM)
qe_ratio Photon:energy ratio
mspct_classes Names of multi-spectra classes
wl_range Wavelength range
valleys Valleys or local minima
verbose_as_default Set error reporting options
normalize Normalize spectral data
photobiology-package photobiology: Photobiological Calculations
setScaled Set the "scaled" attribute
normalize_range_arg Normalize a range argument into a true numeric range
setTfrType Set the "Tfr.type" attribute
photodiode.spct Spectral response of a GaAsP photodiode
resp_spct Calculate response from spectral response
response Integrated response
print.summary_generic_spct Print spectral summary
slash-.generic_spct Arithmetic Operators
photon_irradiance Photon irradiance
smooth_spct Smooth a spectrum
print.waveband Print a "waveband" object
setBSWFUsed Set the "bswf.used" attribute
split_bands List-of-wavebands constructor
photon_ratio Photo:photon ratio
split_energy_irradiance Energy irradiance for split spectrum regions
white_led.source_spct White led bulb spectrum
rbindspct Row-bind spectra
wls_at_target Find wavelengths values corresponding to a target spectral value
reflectance Reflectance
setGenericSpct Convert an R object into a spectrum object.
rgb_spct RGB color values
q_fluence Photon fluence Solar spectral irradiance (simulated)
sun.spct Solar spectral irradiance (simulated)
tz_time_diff Time difference between two time zones
solar_time Local solar time
source_spct Spectral-object constructor
q_irrad Photon irradiance
spct_classes Function that returns a vector containing the names of spectra classes.
split2mspct Convert a 'wide' or untidy data frame into a collection of spectra
untag Remove tags
rmDerivedSpct Remove "generic_spct" and derived class attributes.
round Rounding of Numbers
rmDerivedMspct Remove "generic_mspct" and derived class attributes.
using_Tfr Use photobiology options
setNormalized Set the "normalized" attribute
setRfrType Set the "Rfr.type" attribute
times-.generic_spct Arithmetic Operators
v_insert_hinges Insert wavelength values into spectral data.
transmittance Transmittance
wb2spct Create spectrum from wavebands
wb2tagged_spct Create tagged spectrum from wavebands
trim_wl Trim head and/or tail of a spectrum
setIdFactor Set the "idfactor" attribute
setInstrDesc Set the "instr.desc" attribute
setTimeUnit Set the "time.unit" attribute of an existing source_spct object
setWhatMeasured Set the "what.measured" attribute
twilight2angle twilight argument check and conversion
split_irradiance Energy or photon irradiance for split spectrum regions
split_photon_irradiance Photon irradiance for split spectrum regions
w_length_range2rgb Wavelength range to rgb color conversion
w_length2rgb Wavelength to rgb color conversion
summary Summary of a spectral object
shared_member_class Classes common to all collection members.
sign Sign
summary_spct_classes Function that returns a vector containing the names of spectral summary classes.
subt_spectra Subtract two spectra
white_led.cps_spct White led bulb spectrum
white_led.raw_spct White led bulb spectrum
trim_tails Trim (or expand) head and/or tail
trim_waveband Trim (or expand) head and/or tail
yellow_gel.spct Transmittance spectrum of yellow theatrical gel.
sum_spectra Add two spectra
upgrade_spct Upgrade one spectral object
upgrade_spectra Upgrade one or more spectral objects
sun_angles Solar angles
tag Tag a spectrum
wb_trim_as_default Set computation options
trimInstrDesc Trim the "instr.desc" attribute
transmittance_spct Calculate transmittance from spectral transmittance.
water_vp_sat Water vapour pressure
white_body.spct Theoretical white body
waveband Waveband constructor method
waveband_ratio Photon or energy ratio
wb2rect_spct Create tagged spectrum from wavebands
FEL_spectrum Incandescent "FEL" lamp emission spectrum
Ler_leaf.spct Green Arabidopsis leaf reflectance and transmittance.
D65.illuminant.spct CIE D65 illuminant data
A.illuminant.spct CIE A illuminant data
absorbance Absorbance
absorbance_spct Calculate absorbance from spectral absorbance.
No Results!

Vignettes of photobiology

No Results!

Last month downloads


Type Package
Date 2018-12-11
License GPL (>= 2)
LazyLoad yes
LazyData yes
ByteCompile true
Encoding UTF-8
RoxygenNote 6.1.1
VignetteBuilder knitr
NeedsCompilation no
Packaged 2018-12-11 06:17:29 UTC; aphalo
Repository CRAN
Date/Publication 2018-12-11 06:40:03 UTC

Include our badge in your README