photobiology v0.9.26


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

Vignettes of photobiology

No Results!

Last month downloads


Type Package
Date 2019-02-11
License GPL (>= 2)
LazyLoad yes
LazyData yes
ByteCompile true
Encoding UTF-8
RoxygenNote 6.1.1
VignetteBuilder knitr
NeedsCompilation no
Packaged 2019-02-12 08:47:24 UTC; aphalo
Repository CRAN
Date/Publication 2019-02-12 10:50:02 UTC

Include our badge in your README