Learn R Programming

⚠️There's a newer version (0.13.1) of this package.Take me there.

photobiology

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.

Examples

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.

library(photobiology)
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

Installation of the most recent stable version from CRAN:

install.packages("photobiology")

Installation of the current unstable version from Bitbucket:

# install.packages("devtools")
devtools::install_bitbucket("aphalo/photobiology")

Documentation

HTML documentation is available at (http://docs.r4photobiology.info/photobiology/), including a User Guide.

News on updates to the different packages of the ‘r4photobiology’ suite are regularly posted at (http://www.r4photobiology.info/).

Two articles introduce the basic ideas behind the design of the suite and its use: Aphalo P. J. (2015) (https://doi.org/10.19232/uv4pb.2015.1.14) and Aphalo P. J. (2016) (https://doi.org/10.19232/uv4pb.2016.1.15).

A book is under preparation, and the draft is currently available at (https://leanpub.com/r4photobiology/).

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 (http://hdl.handle.net/10138/37558).

Contributing

Pull requests, bug reports, and feature requests are welcome at (http://bitbucket.org/aphalo/photobiology).

Citation

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

citation("photobiology")
#> 
#> 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},
#>   }

License

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

Copy Link

Version

Install

install.packages('photobiology')

Monthly Downloads

953

Version

0.9.25

License

GPL (>= 2)

Maintainer

Pedro Aphalo

Last Published

December 11th, 2018

Functions in photobiology (0.9.25)

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
sun.daily.data

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
sun.data

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.