ggspectra 0.3.10

This update to ‘ggspectra’ tracks changes in ‘photobiology’ 0.10.15, ‘photobiologyWavebands’ 0.5.1 and ‘ggplot2’ 3.4.0, as well as in R 4.1.0. These are mostly deprecations that would trigger warnings. Please, be aware that these versions or later are now required.

The corrected definition of PAR() in ‘photobiologyWavebands’ 0.5.1 is code breaking as this change will cause some plots, especially annotations in them to change, when PAR() has been explicitly called in users’ code for quantities that are not photon based, in most cases with a warning.

New x scales and new functions  for adding secondary x axes have been implemented.

Continue reading

photobiologyWavebands 0.5.1

PAR, or photosynthetically active radiation, as defined by McCree (1972) and used almost universaly in plant sciences is a biological spectral weighting function or BSWF that for spectral irradiance in photon based units takes one of two values for the weights: 0 or 1. So for computations of PAR photon irradiance (or PPFD) it is equivalent to integration over a range of wavelengths without application of a weighting function.

However, PAR, as defined by McCree, has a BSWF with weights that vary with wavelength when used to computed PAR (energy) irradiance, a quantity currently almost never used. Anyway the definition of the PAR()  waveband constructor in previous versions of the package was conceptually wrong, and has now been fixed. If anybody happened to compute PAR energy irradiance with earlier versions of the package, the results obtained were  not weighted. This non-weighted quantity has been in the old literature occasionally also called PAR, but is a “PAR” quantity based on a different defintion than McCree’s. In the new version the result from the same computation is weighted, and differs from the one computed using earlier versions to an extent that depends on the shape of the spectrum.

Continue reading

photobiology 0.10.15

One of the features of the package for a long time has been automatic wavelength interpolation when needed in computations involving two spectra. However, until the current version this behaviour did not extend to operations summarizing multiple spectra stored as members of the same collection, as inconsistent wavelength values triggered an error.

This update to ‘photobiology’ enhances the compatibility of ‘ggspectra’ with spct objects that have been reduced in size by removal or “thinning” of intermediate wavelength values in rectilinear regions.

Spectra containing data for multiple spectra in long form were not well suported as members of mspct collection objects, i.e., some operations available for collections without such members were unsupported.

These changes also enhance the compatibilty of package ‘ggspectra’ with the presence of inconsistent wavelengths across members of collections of spectra.

Continue reading

ggspectra 0.3.9

Some of the code in this package is rather complex and contained syntax and constructs that were known for some time to be on their way to deprecation and removal in different packages from the ‘tidyverse’. Updating the package to the syntax used in current ‘ggplot2’ versions had been in my to do list for some time. Now the update had to be done, and it is now done.

Continue reading

photobiology 0.10.14

COMPATIBILTY FIX: An update of package ‘tidyselect’ 1.2.0 now in CRAN deprecated syntax previously accepted. This change affected indirectly the syntax used in ‘dplyr’ and ‘tidyr’ resulting in lots of warnings and in a few odd behaviours in ‘photobiology’. To solve this I replaced several calls to dplyr::rename() and dplyr::select() with newly written code using only base R functions and operators.

Continue reading

photobiology 0.10.13

BUG FIX: Sometime during the early life of package ‘photobiology’ I decided that it was a good idea to support in collections of spectra the use of dimensions as a way of supporting spectral images and similar data. I never managed to buy a spectral camera and make use of this. So the code for dimensions was not much tested or used. As it happens, it contained a bug in the computation of dimensions that triggered odd and not easy to track errors when using negative numerical subscripts or logical subscripts with the extraction operator [ ] even with the default one-dimensional collections. I was bitten by this bug some days ago. Hopefully, you as many people usually do, have used only positive numerical values as subscripts and, thus, you have not been bitten by this nasty creature.

This bug is now squashed, and a new version of ‘photobiology’ ready to move to CRAN. It contains also a few enhancements.

Continue reading

photobiologyWavebands 0.5.0

The main changes from version 0.4.5 the previous CRAN release, are:

  • Minor edits to documentation.
  • Rebuilt manual to comply with HTML 5.
  • Recognize Landsat mission "L9" as equal to "L8" as wavelengths are the same.
  • On bad arguments to parameter std the returned value is no-longer NA (a logical value) but instead a waveband object with its wavelength fields set to NA_real_, as returned by a call to waveband(). This potentially code-breaking change ensures that the class of the returned objects is the same irrespective of the arguments passed in the call, and that missing values more easily propagate to downstream computations without triggering errors.

Package documentation web site at:

NOTE: The updated package is on its way to CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket at


photobiology 0.10.12

This release corrects problems triggered by recent updates to packages ‘lubridate’ and possibly ‘tibble’ (reported by putmanlab in issue #7 ).  It also adds some enhancements for class solute_spct, still under development.

BUG FIX: Conversions between Date and POSIXct objects are tricky because objects of the former class do not store information on the time zone. A change in ‘lubridate’ 1.8.0 made a previously working approach to these conversions silently fail to apply the shift to the hours.

If you use any of day_night(), sunrise_time(), noon_time() and sunset_time() either use ‘lubridate’ (< 1.8.0) or update a.s.a.p. to ‘photobiology’ (>= 0.10.12) from GitHub.

Continue reading

photobiologyLEDs 0.5.0

This is a major and code-breaking update. Naming conventions have been changed and several new spectra have been added. Previously included spectra have in most cases been recomputed and may slightly differ from earlier versions of the same data. In part this was done to reduce the size of the data objects, making it possible to include more spectra while keeping the size of the package reasonable. The number of spectra is more than 100, including several of the newest high CRI LEDs as well as some recent types for horticulture.

Continue reading