The new features allowing measurement of time series of thousands of spectra at a very fast rate are easily affected by glitches in the USB connection. If the acquisition hangs from time to time, a high quality and short USB cable with ferrite beads is likely to help.

  • Edit menus used in acq_irrad_interactive() to be narrower and more informative.
  • Improve interactive input of numeric and period values, so that bad input is handled gracefully in acq_irrad_interactive().
  • Add activity messages to keep the user informed about time-consuming activities (several activity messages are shown only for long time series) in acq_irrad_interactive().
  • Decrease the default maximum number of spectra per plot to speed up user interaction in acq_irrad_interactive().
  • Revise function QC_dark() to use interpretable values as arguments to parameters. This is a potentially code-breaking change as the new defaults can alter the sensitivity of the quality control applied to dark spectra.
  • Revise function merge_cps() to accept a negative value as argument to tolerance to disable merging (= splicing) using only the primary scan.
  • Revise function beekd_nas() to improve performance (a lot).
  • Update in ‘photobiology’ 0.11.0 improves/fixes handling of metadata.
  • Update in ‘photobiology’ 0.11.1 improves the speed of plotting sampled time series.
  • Merge and expand the computation algorithms and calibration vignettes and move it on-line.
  • Track a small change in an indirect dependency on package ‘spacesXYZ’.
  • Make real-time display of plots optional (no change to default).
  • Implement adjustment of the step delay time in time series to be a multiple of the integration time for buffered acquisition and normal acquisition when not using HDR.
  • Implement multiple repeats of individual measurements including whole time series. As in earlier versions, repeats reuse ‘dark’ and ‘filter’ measurements from the most recent previous measurement.
  • Implement generation of sequentially “numbered” object names and file names. Available in all interface modes.
  • Fix bug: crash in “slow” series acquisition introduced in 0.4.2.
  • Fix bug: wrong estimate of duration of individual measurements for “fast” (buffered) series acquisition.
  • Fix bug in no_filter_correction(): stray light correction would be too easily skipped. This was causing problems only with the protocol that did not rely on a dark measurement to correct for stray light in those cases when the dark pixels in the spectrometer array returned unreliable readings. The new approach can be potentially disturbed by light sources strongly emitting at wavelengths shorter than about 240 nm.
  • Accept additional ways of inputting time periods in the menu for settings for acquisition of time series of spectra.
  • Minor fixes and tweaks to the user interface for selecting protocols.
  • Use R package ‘mirai’ to asynchronously save R data files and PDF files. Package ‘mirai’ is now in “suggests” and has to be installed to enable this feature. Experimental, by default not enabled, as it is unreliable under Windows 11 and not yet tested under Unix or Linux..
  • Check and update bad (hot) pixels in MAP11278 calibration (add one pixel).
  • Depend on ‘photobiology’ (>= 0.11.0).
  • Add QC_dark() and implement its use in acquisition and in s_irrad_corrected(). Aimed at detecting problems with raw-counts dark baseline, specifically, pixel-position dependent enhanced dark counts usually as a consequence of increased warming of the spectrometer.
  • In merge_cps() check consistency among data for different integration times before merge and avoid merges within 250-400 nm region.
  • EXPERIMENTAL!! Scale filter reference spectrum based on NIR readings (not enabled by default).
  • Interface mode "series" of function acq_irrad_interactive() is fully functional and quite well tested.
  • Tested working with OmniDriver 2.72 (2023-05-10), 2.71 and 2.56. Most other versions most likely also work.
  • Update acq_irrad_interactive() to measure spectral fluence in addition to spectral irradiance. Remove acq_fluence_interactive() and acq_fraction_pulsed_interactive().
  • Fix bug that made interface mode “series-attr” crash on attempts to change the step delay setting.
  • Improved estimate of measurement duration, and display message.
  • When possible, if series step delay is too short, set it to zero, and otherwise to the estimated duration.
  • Fix bug in high speed acquisition of series with protocols ld and lfd.
  • Tweaked menu texts and made it possible to select among types of collection summaries.
  • Moved UI for saving of collections to its own menu separate from that for quit/repeat/NEXT.
  • Export irrad_summary_table(), previously, an internal function. Also enhance this function.
  • Enhance support for different types of summaries in irrad_summary_table().
  • Update acq_irrad_interactive() adding menu option to repeat last measurement using same protocol, integration settings and “dark” and “filter” reference spectra.
  • Fix intermittent failure to initialize high-resolution-time API used for high speed time series acquisition of spectra.
  • Implement high speed acquisition of time series using special API functions through new wrappers in ‘rOmniDriver’ (>= 0.1.18).
  • Add new calibrations for MAYP11278 with cosine and hemispherical diffusers.
  • Add new calibration for MAYP112785 with cosine diffuser.
  • Calibration data missing in ‘ooacquire’ for NIR region even when available, fixed. For a couple of calibrations the UV end was slightly truncated.
  • Add support for multiple descriptors per instrument and optionally include a description of the entrance optics in the instrument descriptor.
  • Add a slot to the calibration field in the descriptor to store the source or identifier of the calibration to allow traceability.
  • Add “how.measured” attribute to acquired spectra.
  • Update code used for plot title, subtitle and caption. Date times were no longer formatted correctly.
  • Photsyntheticaly active radiation can be defined as a range of wavelengths (PhR) or as an effective or weighted quantitiy (PAR, as defined by McCree). When expressed as photons they are identical, but when expressed as energy they differ and the difference depends on the shape of the light spectrum. Previously, PhR as energy was incorrectly labelled PAR, as it frequently is. In ‘photobiologyWavebands’ (0.5.1), this has been corrected. This version uses the correct labeling in plots and quantities and makes it possible to choose between PAR and PhR, with PhR as default, so that the numbers returned remain the same, but are correctly labeled.
  • Tested working with OmniDriver 2.71, 2.56 and 2.46, under current R 4.2.3 and coming R 4.3.0.
  • Tested working with OmniDriver 2.71 and 2.56, under current R 4.2.3 and coming R 4.3.0. (Maya and Flame recognized by 2.71 and 2.56. USB2000 supported in 2.56 but not in 2.71. USB2000 requires update to firmware 2.41 for recent MS-Windows to recognize it.)
  • Tolerate missing values returned by functions removed from recent versions of OmniDriver. (API changes in OmniDriver 2.71 and 2.70!)
  • Automatic acquisition of time series of spectra: implementation functional.
  • New interface.mode "full" combines “manual” and “auto”.
  • Several messages updated to better accommodate time series acquisition.
  • Add to default protocols “dl” and “dfl”, better suited to measurement of time series.
  • Fix bugs related to dates and times caused by changes in ‘lubridate’.
  • Function s_irrad_corrected() updated to work with multiple “light” measurements as created by measurement of time series.
  • Versions of packages imported from are updated.
  • Track changes in ‘photobiology’ >= 0.10.14.
  • Fix for deprecated functions in ‘dplyr’ >= 1.0.0.
  • Revise UI of acq_irrad_interactive() to avoid accidental overwrite of data files, and really do not save any data for discarded spectra.
  • Tested working with OmniDriver 2.56. Fails with OmniDriver 2.70.
  • Implement an off-line mode in which data acquisition is disabled but computations are still possible. The off-line mode is automatically entered if package ‘rOmniDriver’ is not installed or if its initialization fails. This change removes the need to install Java, drivers from Ocean Insight and R packages ‘rOmniDriver’ and ‘rJava’ when data to be processed have been acquired using another computer or with software from Ocean Insight.
  • Fix bug in the generation of the .CSV file with summaries from collections of spectra.
  • Function acquire_continuous_interactive() gains three new parameters that make it possible to override defaults and gets several small tweaks to the user interface including dynamic default for protocol.
  • Function acquire_continuous_interactive() now sets defaults for user/operator name, session name and folder used for output based on logged-in user’s name, current day and time and spectral quantity returned.
  • Revise the user interaction in set_folder_interactive() and add check for success of new folder creation.
  • Support in acq_raw_mspct() the acquisition of a timed sequence of spectra.
  • Improve summary for collection of spectra in acq_continuous_interactive().
  • Fix bug in reading of raw data from files possibly caused by changes in ‘readr’.
  • Fix bug in which_descriptor() that resulted in wrong text in warnings.
  • Fix bug in which_descriptor() that resulted in failure to handle well gaps between the validity of calibrations or dates before the earliest calibration.
  • Expand description of algorithms.
  • Test with OmniDriver 2.56 and 2.68.
  • Implement support for on-the-fly retrieval of instrument descriptor and calibration data from EEPROM when calibration is not available as R objects.
  • Retrieval of instrument descriptor and wavelength calibration from spectrometer EEPROM tested.
  • Bugs fixed in retrieval of irradiance calibration factors as they would have been used without proper conversion into the format used in the package. (Testing with a factory-calibrated spectrometer with data in EEPROM pending!!)
  • Updated only acq_irrad_interactive(). Similar tests and FIXES are needed in the other data acquisition functions.
  • Update calibration data for MAYP11278 and MAYP112785.
  • Test with old USB2000 spectrometer and fix the problems detected.
  • Revise raw2corr_cps() and uvb_corrections() so as to remove duplicated code, adding also support for despiking.
  • Revise trim_counts() so that it handles gracefully data acquired with “correct for electrical dark” enabled in OO software.
  • Revise raw2cps() so that it tolerates a bug in photobiology::msmsply().
  • Revise acq_irrad_interactive() so that when a collection is created a plot with all the spectra in the collection and a summary table are also created. The plot is saved as a PDF file and the table is saved as a CSV file.
  • Revise menues in acq_irrad_interactive() to make the prompts shorter, and the defaults more obvious.
  • Attempting to use a calibration after its end-of-life issues a warning instead of an error.
  • Replace white LED data (old data was bad) and add data for sunlight, which is a better example for the algorithms.
  • Update for new versions of packages ‘tibble’ and ‘photobiology’.
  • Bug fix in calibration date checks (dates before start of validity of oldest available calibration did not trigger an error).
  • Add pre-built calibration and methods for one Maya 2000 Pro instrument using calibration data from Ocean Optics.
  • Update acq_irrad_interactive() adding alternative user-interface modes, allowing users to set comment and what.measured attributes, and to constructing collections of spectra.

  • Add utility functions collect_spct_files() and plot_spct_file().

  • Add pre-built calibrations and methods for three additional FLAME-S instruments.

  • Improve algorithm for automatic tuning of integration time.

  • Fix various minor bugs.

  • Update vignettes.

  • Test against OmniDriver 2.56

  • Update for ‘readr’ >= 1.3.0 which is now required

Measurement of pulsed light sources (under development)

The new features described below are under development, subject to change and not yet well tested!! (double-check any results and please raise issues if you find any bugs!)

Implement support for measuring output from xenon flashes, including use of such flashes as light sources for measurement of spectral transmittance and reflectance. Use of multiple exposures per integration is also supported and the number of exposures stored as metadata is used during later processing. In the case of pulsed light sources the first conversion of RAW spectra is into counts per exposure, and instead of spectral irradiance spectral fluence per exposure is computed. All changes are backwards compatible with raw data acquired with earlier versions of ‘ooacquire’.

  • Add function acq_fluence_interactive() for measuring spectral fluence of pulsed light sources.
  • Add acq_fraction_pulsed_interactive() for measuring transmittance and reflectance using a pulsed light source.
  • Add example scripts for these new functions.
  • Fix serious design bug that triggered a fatal error with current version of ‘Rcpp’.
  • Add functions choose_sr_interactive() and choose_ch_interactive() and edit acq_irrad_interactive() and acq_fraction_interactive() to make use of them.
  • Add fields to the instrument descriptor to store the numeric coefficients in addition to functions for non-linearity and wavelength calibrations.
  • Add pre-built calibrations and methods for our Jaz instrument.
  • Add support for irradiance calibrations done by Ocean Optics.
  • Add pre-built calibrations and methods for two FLAME-S instruments.
  • Test transmittance and reflectance acquisition functions against a different MayaPro spectrometer and a Jaz spectrometer with no irradiance calibration, and fix the bugs that became apparent.

Test irradiance acquisition functions against a different MayaPro spectrometer, and fix the bugs that became apparent. Tested against latest OmniDriver 1.4.6.

  • Add support for OceanView files, and a second set of calibration data.
  • Rewrite much of the uv_corrections() and s_irrad_corrected() code, and add support for remapping names of raw_mspct members’ to "light", "filter" and "dark". Rewrite s_fraction_corrected(), and add support for remapping names of raw_mspct members’ to "sample", "reference" and "dark". In the process fixed bug that was causing over-correction for stray light in the UVA region.
  • Add additional data to the descriptor. Changed test for too low signal for original filter correction to be more permissive, and instead of skipping the filter correction we use newly added method "simple".
  • Rename parameter "method" to "correction.method" for clarity.
  • Add warning for cases when users supply spectra with negative values for raw-detector counts (electrical dark correction set to true).
  • Add two new vignettes: Quick Start Guide, and Algorithms.
  • Remove old sample scripts and rename the remaining ones.
  • Add function bleed_nas() to be used to discard data from sensor pixels adjacent to saturated/clipped pixels.
  • Add function for reading data from SpectraSuite raw data files.
  • Add functions for reading metadata from SpectraSuite raw data files. Parsing is quite flexible, so hopefully robust across versions of the software and spectrometer models and their possible configurations.
  • Add generic s_irrad_corrected() with methods for raw_mspct objects and for lists of file names.
  • Add generic s_fraction_corrected() with methods for raw_mspct objects and for lists of file names.
  • Add automatic support for different protocols including bracketing based on the the raw spectral data passed as argument.
  • Add function compute_irrad_calibration() accepting measurements of both D2 and FEL lamps and the coefficients for reconstructing the emission of the lamps.
  • Add functions acq_irrad_interactive(), and acq_trans_interactive().
  • Ensure that all metadata is copied and at all processing steps.
  • Add example data.

First version.