Skip to content

v1.0.0 (CRAN)

Latest
Compare
Choose a tag to compare
@mcol mcol released this 21 Feb 15:20
· 1 commit to master since this release
v1.0.0
602a84b

Changes in version 1.0.0 (2024-02-21)

New functions

  • apply_Crosstalk(), calc_MoransI(), plot_SingleGrainDisc() and
    plot_MoranScatterplot() were contributed by Anna-Maartje de Boer and Luc
    Steinbuch (#560). An introductory example on how to use these functions
    is available by executing vignette("crosstalk").

  • calc_EED_Model() models incomplete and heterogeneous bleaching of
    mobile grains after Guibert et al. (2017). Along with the function, the
    new ExampleData.MortarData data set was added.

  • fit_DoseResponseCurve() and plot_DoseResponseCurve() are two new
    functions derived from plot_GrowthCurve(): the first only performs the
    fitting of a dose-response curve, while the second plots it. This brings
    greater flexibility and increased speed, as plotting is now independent of
    fitting (#141, fixed in #318).

  • melt_RLum(): Creates a new flat data.frame that can be used for instance
    in combination with 'ggplot2'. It works only on RLum.Data.Curve-class
    and RLum.Analysis-class objects and lists of such objects.

  • merge_RLum.Data.Spectrum(): This new function allows to merge two or
    more RLum.Data.Spectrum objects in different ways (#368, fixed in #419).

  • add_metadata(), rename_metadata(), replace_metadata():
    These function allow to manipulate the metadata of
    Risoe.BINfileData, RLum.Analysis and RLum.Data objects (#480, fixed
    in #514, #524, #525, #527, #534, #545).

  • sort_RLum(): Allows to sort the records of RLum.Analysis and
    Risoe.BINfileData objects according to a given slot or info element
    (#528, fixed in #571 and #576).

  • view(): Provides a shortcut to the utils::View() spreadsheet-like data
    viewer tailored to the objects in the package (#489, fixed in #490).

Breaking changes

  • We have dropped our dependency on the readxl package: functions
    analyse_baSAR() and use_DRAC() now do not accept XLS files anymore but
    CSV files instead (#237, fixed in #270). CSV files can be easily generated
    from XLS files by Excel or similar applications, or by reading them with
    readxl::read_excel() and saving them with write.csv().

  • The plot.single option, which was available for several functions,
    sometimes under a slightly different name, has now been renamed to
    plot_singlePanels for overall consistency and clarity. Function
    scale_GammaDose() used that option but gave it the opposite meaning: now
    also this function conforms to the rest of the package. The use of the
    older names is now deprecated and will produce a warning (#351, fixed in #408).

  • The NumberIterations.MC option of plot_GrowthCurve() has now been
    renamed to n.MC for consistency with other functions. Potentially affected
    are also analyse_Al2O3C_ITC(), analyse_baSAR(), analyse_SAR.CWOSL(),
    analyse_SAR.TL(), calc_Huntley2006(), calc_Lamothe2003(),
    as they may pass that option plot_GrowthCurve() via their ... argument.
    The use of the older name is now deprecated and will produce a warning (#546,
    fixed in #547).

Renamed functions and deprecations

  • Function Analyse_SAR.OSLdata() is now officially deprecated,
    analyse_SAR.CWOSL() should be used instead (#216, fixed in #264).

  • Functions CW2pHMi(), CW2pLM(), CW2pLMi() and CW2pPMi() have been
    renamed to convert_CW2pHMi(), convert_CW2pLM(), convert_CW2pLMi()
    and convert_CW2pPMi(), respectively. The use of the older names is now
    deprecated and will produce a warning (#499, fixed in #503).

  • Function Second2Gray() has been renamed to convert_Second2Gray()
    (#498, fixed in #500).

  • Function PSL2Risoe.BINfileData() has been renamed to convert_PSL2Risoe.BINfileData()
    (#555, fixed in #556).

New dependencies

  • We have added package ’vdiffr’ as dependency in suggests. The package
    enables us to automatically verify the consistency of plot outputs generated
    by package functions against reference figures captured earlier. Although
    this new dependency does not have any user-visible impact, it is required
    when building ’Luminescence’ from source. The primary advantage lies in the
    developer's domain, as it ensures that modifications to functions do not
    inadvertently alter plot outputs.

Bugfixes

analyse_Al2O3C_CrossTalk()

  • The function doesn't crash anymore if option recordType is specified and
    none of the records in the data set is of that type (#487, fixed in #488).

analyse_baSAR()

  • Argument XLS_file has been replaced by CSV_file and, as mentioned
    above, the function now only accepts CSV files as input (#237, fixed in #270).
  • Add support for recordType passed to get_RLum in the additional arguments.
  • Option plot.single has been renamed to plot_singlePanels (#351, fixed
    in #408).
  • The function crashed if the number of MCMC iterations was set equal to the
    thinning interval; on the other hand, we saw errors reported from JAGS if the
    number of MCMC iterations was not at least double the thinning interval. To
    address this, we slightly retouched our automatic setting of the thinning
    interval (which was problematic only if the number of MCMC iterations was
    extremely low); on the other hand, if a user sets a thinning interval that
    is too high, we now reset it to a lower value and raise a warning (#407,
    fixed in #409).
  • The function crashed if a Risoe.BINFileData object was provided and the
    argument irradiation_times was set; fixed.
  • The function was supposed to remove non-OSL curves from the dataset, but
    it almost never did; fixed.
  • The function is more robust against input that may have been subset
    inconsistently (#517, fixed in #518).
  • The function doesn't crash but reports more helpful messages in case the
    user overrides the default set of monitored variables using variable.names
    within the method_control argument (#521, fixed in #522).

analyse_SAR.CWOSL()

  • The function crashed for a list input that led to NULL for various
    reasons (e.g., unsuitable set of curves). Here the self-call attempted to
    extract information from the results that did not exist in the first place
    instead of returning NULL; fixed.
  • The produced RLum.Results object now also contains a column for the
    grain (#553, fixed in #554).

analyse_FadingMeasurement()

  • The function now checks for the version of the BIN-file that originated the
    RLum.Analysis object given as input, and reports a message if a version
    older than 5 was used (#281, fixed in #282).
  • The function doesn't crash anymore on some RLum.Analysis input files
    (#283, fixed in #288).
  • Option plot.single has been renamed to plot_singlePanels (#351, fixed
    in #408).
  • The function doesn't crash anymore if no record is left after removal of
    records with negative time since irradiation (#454, fixed in #456).
  • The function has been made more robust in the calculation of rho' (#558,
    fixed in #559).

analyse_IRSAR.RF()

  • The performance of this function has been improved for the "SLIDE" and
    "VSLIDE" methods, thanks both to tweaks in the C++ implementation of the
    sliding algorithm and in how that is managed on the R side. In particular,
    the default number of sliding windows tested in the algorithm has been
    reduced from 10 to 3: this value is no longer hardcoded, but can be tuned
    through the new num_slide_windows setting (part of the method.control
    option), thus allowing to find a balance between computation time and
    quality of fit (#372, fixed in #388, #398 and #399).
  • The function is more robust against sequence_structure misspecifications
    (#393, fixed in #394).
  • Some data preparation steps where not correctly applied for method = "VSLIDE"
    (#396, fixed in #397).
  • Option method.control has been renamed to method_control for consistency
    with all other functions in the package (#411, fixed in #412).

analyse_pIRIRSequence()

  • Option plot.single has been renamed to plot_singlePanels (#351, fixed
    in #408).
  • The produced RLum.Results object now also contains a column for the
    grain (#553, fixed in #554).
  • The function now checks that the sequence.structure argument contains
    at least one IR step (#579, fixed in #580).

analyse_SAR.CWOSL()

  • Option plot.single has been renamed to plot_singlePanels (#351, fixed
    in #408).
  • The function shifted the curves correctly in cases where the first channel
    is zero and a log-transformation on the x-axis is requested (#580, fixed in
    #531).

apply_CosmicRayRamoval()

  • Support has been added for the internal function smooth_RLum that can
    be passed as new argument for method.

calc_AverageDose()

  • The function crashed if the data contained non-positive values: now these
    are removed before proceeding (#532, fixed in #533).

calc_CentralDose()

  • Argument na.rm is now deprecated: the function will now always remove
    missing values, as otherwise the presence of any NA would propagate and
    produce unusable results (all NAs) or buggy behaviour (#302, fixed in #304).
  • The function stops the fixed-point iteration for the computation of the
    profile log-likelihood as soon as sigma < 1e-16, as allowing sigma to
    become zero leads to infinities and buggy behaviour (also fixed in #304).

calc_FastRatio()

  • A number of crashes related to input validation have been fixed (#471,
    fixed in #472).

calc_FiniteMixture()

  • Arguments dose.scale and pdf.scale were not used and have been
    removed (#566, fixed in #567).

calc_gSGC()

  • The function crashed if the data contained negative errors: to avoid this,
    we now take the absolute values of errors (#479, fixed in #481).

calc_Huntley2006()

  • Some crashes in case of model misspecification have been solved (#538,
    fixed in #539).
  • Some details in the implementation of the function have been optimized, and
    now it is much faster than before. As part of this, we have changed the default
    setting of the rprime vector that is used in the calculation of the natural
    dose response and the field saturation, so that more points are concentrated
    in the bulk of the distribution: this previously depended incorrectly on the
    number of Monte Carlo iterations requested, so this change brings an additional
    speed boost. The default setting can be overridden via the rprime argument
    (#258, fixed in #541 and #542).
  • Fitting the "GOK" model on the unfaded data failed when the "EXP" model we
    use to find a good starting point failed: in such cases, we try again using
    the simulated fit (#549, fixed in #500; thanks to @SalOehl for reporting and
    providing data to reproduce the error).
  • The natural/simulated curve was not plotted in the negative quadrant for
    mode = "extrapolation", which made it harder to see where it extrapolated
    to (#551, fixed in #552; thanks to @SalOehl for reporting).

calc_IEU()

  • The code of this function has been consolidated to avoid duplication and
    make its debugging easier: this has uncovered a small coding error and also
    led to some speed up (#429, fixed in #430, #431 and #432).
  • Some crashes in the function have been solved (#424, fixed in #433).

calc_Lamothe2003()

  • We addressed a long-standing issue regarding the calculation of the Ln/Tn
    error after fading correction, which led to smaller than expected errors
    (#96, fixed in #296).

convert_RLum2Risoe.BINFileData()

  • The function could crash with a incompatible types (from raw to character)
    error under particular circumstances; fixed.
  • The function would fail in edge cases where different objects are mixed
    so that certain fields for METADATA are already available but in the wrong
    format; fixed.

extract_IrradiationTimes()

  • In some circumstances the function failed to update an existing BIN/BINX
    file due to an incorrect way of subsetting an intermediate data frame of
    results (#445, fixed in #446).
  • The function crashed if the info element startDate was missing in the
    irradiation curve; fixed.

fit_CWCurve()

  • The function crashed if the computation of the confidence intervals done
    in confint() failed. This has now been fixed, and in cases of failures we
    report the error message received from confint() (#509, fixed in #510).
  • Argument output.terminal has been renamed to verbose for consistency
    with other functions.
  • The function has gained the new method_control argument, which can be used
    to control the saving of the component contribution matrix in the RLum.Results
    object it returns. This is now disabled by default: to restore the previous
    behaviour, add method_control = list(export.comp.contrib.matrix = TRUE) to
    the function call (fixed in #573).
  • In case of plot failure the function now is able to recover gracefully and
    produce an output object (#574, fixed in #578).

fit_EmissionSpectra()

  • The function can now return a data frame with the values of all curves
    plotted, so that it's much easier to produce alternative plots, by setting
    option export.plot.data = TRUE within the method_control argument (#569,
    fixed in #570 and #573).

fit_LMCurve()

  • The function has gained the new method_control argument, which can be used
    to control the saving of the component contribution matrix in the RLum.Results
    object it returns. This is now disabled by default: to restore the previous
    behaviour, add method_control = list(export.comp.contrib.matrix = TRUE) to
    the function call (fixed in #573).
  • In case of plot failure the function now is able to recover gracefully and
    produce an output object (#574, fixed in #578; thanks to @LumTKO for
    reporting).

get_RLum()

  • If the subset option was used on info elements of an RLum.Analysis
    object, it would return wrong results if the info element was not present in
    all records; fixed.

import_Data()

  • The function automatically determines the available import functions and ensures
    that formats supported by the package are tested and used.
  • A minor change in the code enables the support of character vectors of
    length > 1 as input (e.g., different file names). Furthermore, the function
    received more testing against a mixture of input formats. Therefore you can
    provide many different files formats and the function will try to import them
    all in one go.

plot_AbanicoPlot()

  • If negative values were provided, the function sometimes produced wrong plots
    for z.log = TRUE (the default); fixed.
  • Support for tcl and tck arguments via ... was removed as they were
    never used internally.

plot_DetPlot()

  • Option plot.single has been renamed to plot_singlePanels (#351, fixed
    in #408).

plot_DRTResults()

  • The function crashed if option na.rm was used alongside the preheat
    option but the data set contained no missing values (#474, fixed in #475).

plot_GrowthCurve()

  • The function is now implemented as a wrapper around fit_DoseResponseCurve()
    and plot_DoseResponseCurve(). There should be no visible user-facing
    changes (#319, fixed in #322).
  • Support new ... arguments for plotting (implementation in plot_DoseResponseCurve()) for
    legend (turn on/off legend) and reg_points_pch for fine grained control over the point shape.
  • Add density_polygon, density_polygon_col, density_rug, box as ...
    arguments to plot and add respective plot options
  • The function crashed for single grain data that sometimes caused a lot of
    NaN values during log conversions required for estimating the start
    parameters. The result was the error object 'b.MC' not found
    (#374; fixed)
  • For the non-linear choices of fit.method ("EXP+LIN", "EXP+EXP",
    "GOK" and "LambertW"), the function could get stuck in an endless
    loop when the number of parameters was larger than or equal to the number of
    data points. This is now checked, and in those cases the method is changed
    to "LIN" (#381, fixed in #465).
  • We replaced nls() with minpack.lm::nlsLM() as it's more robust and can
    find a fit in cases where nls() would fail. Please keep in mind that it
    does not mean that fit results in those cases make any sense,
    it just helps to avoid uncontained events in the R session (addresses #381).
  • Option output.plotExtended.single has been renamed to plot_singlePanels
    (#351, fixed in #408).
  • The function now supports a list of data frames as input, in which case it
    calls itself on each element of the list and produces a list of RLum.Results
    as output (#405, fixed in #434).
  • The function reported negative dose values in the MC runs plot when using
    fit.method = "QDR" and mode = "extrapolation" (#504, fixed in #505).
  • Argument NumberIterations.MC has been renamed to n.MC (#546, fixed in #547).

plot_RLum.Analysis()

  • Option plot.single has been renamed to plot_singlePanels (#351, fixed
    in #408).

plot_RLum.Data.Curve()

  • Argument norm is now better validated so that specifying an incorrect
    value returns an error instead of silently skipping curve normalisation (#250,
    fixed in #263).

plot_RLum.Data.Spectrum()

  • The gradient between colours when plot.type = "persp" is now more
    consistent and doesn't produce artefacts in the regions of transition
    between colours (#371, fixed in #380).
  • The function would crash if the bin.rows or bin.cols value was set
    too high or if xlim and ylim were set too tight (#415, fixed in #416).

read_BIN2R()

  • The function is now much faster: we have recorded an overall improvement
    of over 60% on a 46M file, with potentially bigger time savings for larger
    files (#298, fixed in #333, #355 and #360).
  • Argument n.records is now better supported for BIN files v3 and v4 and
    doesn't lead to a crash when used in conjunction with the fastForward
    option (#343, fixed in #344).
  • Argument zero_data.rm was not correctly propagated if the input object
    was provided as a list (#342, fixed in #345).
  • The METADATA fields that are not actually read from the BINX file in
    case of a ROI record are now set to NA rather than being assigned the
    value from the previous record (#336, fixed in #360).
  • The .RESERVED slot is now kept in sync with the rest of the object
    when records are dropped from the input BIN/BINX file (#337, fixed in #348).
  • The function doesn't crash anymore when reading a file that contains a
    record with an unrecognised version after other records with a valid version
    have been read (#352, fixed in #353).
  • The function doesn't crash anymore when reading a file that contains a
    ROI record while using fastForward = TRUE (#356, fixed in #360).

read_HeliosOSL2R()

  • If the function encounters problems in the provided list of files, it shows
    a more relaxed handling; throws an error but continues reading.

read_XSYG2R()

  • The new n_records argument now enables to control the number of records
    to import, which can be useful in case the file is faulty.
  • The function failed to import files when a directory name was provided;
    this was a regression introduced in v0.9.25 and it has now been fixed.
  • The function truncated the terminal output under certain circumstances; fixed.

scale_GammaDose()

  • Option plot_single has been renamed to plot_singlePanels and was changed
    so that plot_singlePanels = TRUE will produce one plot per panel, for
    consistency with other functions (#351, fixed in #408).

template_DRAC()

  • The function gained a new argument file_input that enables the creating of a DRAC template
    based on an existing DRAC CSV file. This way, already available DRAC files
    can be conveniently modified without having to call use_DRAC() first.
  • The template contained a couple of minor mistakes that got fixed along with a
    more strict enforcement of the class of each field, which is now set as an attribute;
    the change should have no user-visible effect.
  • The function now supports the conversion factors by Cresswell et al. (2018)
    (Cresswelletal2018).
    Please ensure that the server supports that option.

trim_RLum.Data()

  • The function has been made more robust against misspecifications of its
    trim_range argument that could lead to crashes (#460, fixed in #461).

use_DRAC()

  • Support for DRAC v1.1 XLS/XLSX files has been dropped, users should use
    CSV files according to the DRAC v1.2 CSV template.
  • The function gained support for three new ... arguments: version_ignore
    to ignore the DRAC version check, user and password to access password
    protected websites.
  • The identifiers submitted to the DRAC server are now better randomized to
    to guarantee more confidentiality of the data transmitted (#435, fixed in #438).

verify_SingleGrainData()

  • Potentially breaking old code!: if cleanup = TRUE the result was not
    consistent and produced a mixture of RLum.Results and
    RLum.Analysis/Risoe.BINFileData objects in particular when run over a
    list, this was not what stated in the manual. Now the function indeed cleans
    up the object, hence if a list of RLum.Analysis objects is provided, the
    result is a cleaned list of that object. If the clean-up ends up removing
    everything, the result is NULL.
  • The function doesn't crash anymore when applied to an empty list (#365,
    fixed in #366).
  • Silence the very talkative terminal output even if nothing was removed
    from a record for cleanup = TRUE.
  • The function now provides better terminal feedback if the selection results
    in an empty record.
  • Add a new logical argument use_fft that will apply an additional Fast
    Discrete Fourier Transform (FFT) verification on the data if wanted.

write_R2BIN()

  • The function now supports the verbose argument, which can be used to
    suppress output to the terminal (#442, fixed in #444).

What's Changed

  • Post release version bump by @mcol in #240
  • Don't use the bbmle::profile() try_harder option in calc_MinDose() by @mcol in #241
  • Remove the windows-2019 (oldrel) instance from the CI actions by @mcol in #242
  • Add the expect_snapshot_RLum() test helper and start using it by @mcol in #244
  • Correct the rejection.criteria data frame created by analyse_SAR.TL() by @mcol in #246
  • Fix crashes in analyse_SAR.TL() by @mcol in #247
  • Silence notes raised by R CMD check by @mcol in #249
  • Use add = TRUE with on.exit() by @mcol in #255
  • Replace the implementation of .throw_error() and .throw_warning() by @mcol in #256
  • Set calc_Kars2008() as defunct by @mcol in #257
  • Improve validation of choices for character arguments by @mcol in #259
  • Ignore emacs backup and temporary files by @mcol in #260
  • Add some more tests for functions that call .smoothing() by @mcol in #261
  • Remove the dependency on the zoo package by @mcol in #262
  • Validate the norm argument in plot_RLum.Data.Curve() by @mcol in #263
  • Remove deprecated arguments in plot_KDE() by @mcol in #266
  • Deprecate Analyse_SAR.OSLdata() in favour of analyse_SAR.CWOSL() by @mcol in #264
  • Extract curve normalisation code into an internal helper function by @mcol in #267
  • Increase coverage in analyse_pIRIRSequence.R by @mcol in #268
  • Complete coverage for .import_ThermochronometryData.R by @mcol in #269
  • Remove the dependency on the readxl package by @mcol in #270
  • Some small coverage increases by @mcol in #271
  • Add the .collapse() helper function by @mcol in #272
  • Add a snapshot test for analyse_baSAR() by @mcol in #274
  • Don't fail in analyse_baSAR() if no record is selected and other code cleanup by @mcol in #275
  • Add a batch of snapshot tests by @mcol in #276
  • Add the .validate_class() internal helper function by @mcol in #279
  • Fix minor losses of coverage by @mcol in #280
  • Fix crash in analyse_FadingMeasurement() with BIN version older than 05 by @mcol in #282
  • Add the .require_suggested_package() helper function by @mcol in #284
  • Don't crash in calc_AverageDose() on some RLum.Results objects by @mcol in #286
  • Rename .match_args() to .validate_args() and improve its error message by @mcol in #287
  • Fix crash in analyse_FadingMeasurement() on an RLum.Analysis object with plot = TRUE by @mcol in #288
  • Add snapshot tests for analyse_SAR.CWOSL() and increase its coverage by @mcol in #289
  • Add the .get_keyword_coordinates() helper function by @mcol in #291
  • small improvements to .validate_positive_scalar() by @mcol in #292
  • Add snapshot tests and consolidate code in Second2Gray() by @mcol in #293
  • Consolidate code and increase coverage in plot_RLum.Analysis() by @mcol in #295
  • Remove unexplained term from error calculation in calc_Lamothe2003() by @mcol in #296
  • Fix crash in fit_OSLLifeTimes() by @mcol in #301
  • Add the .listify() internal helper function by @mcol in #303
  • Various fixes to calc_CentralDose() and snapshot tests by @mcol in #304
  • Validate input data to plot_RLum() by @mcol in #306
  • Add snapshot tests for plot_GrowthCurve() by @mcol in #308
  • Address some problems in plot_GrowthCurve() by @mcol in #309
  • Consolidate code for the QDR method in plot_GrowthCurve() by @mcol in #310
  • Replace uses of stop() and warning() with throwing functions by @mcol in #311
  • Adapt the plot_GrowthCurve() snapshot tests to run on R 4.3.3 by @mcol in #313
  • Add snapshot tests for calc_CosmicDoseRate() by @mcol in #314
  • Consolidate code in calc_CosmicDoseRate() by @mcol in #315
  • Consolidate code for the EXP methods in plot_GrowthCurve() by @mcol in #316
  • more code consolidation in plot_GrowthCurve() by @mcol in #317
  • split fit_GrowthCurve() from plot_GrowthCurve() by @mcol in #318
  • Store the fit_DoseResponseCurve() arguments in RLum.Results by @mcol in #321
  • Redesign plot_GrowthCurve() by @mcol in #322
  • fix warning in the analyse_portableOSL() tests by @mcol in #324
  • Resolve note about multiple local function definitions by @mcol in #325
  • Add the verbose argument to .download_file() by @mcol in #327
  • Don't crash when coercing an empty list to RLum.Data objects by @mcol in #328
  • Small cleanups in read_BIN2R() by @mcol in #331
  • Uniform the messages reported when importing files by @mcol in #332
  • Speed up the reading of BIN/BINX files by @mcol in #333
  • Use seek() to move forward in the connection in read_BIN2R() by @mcol in #335
  • Fix checks on field sizes in read_BIN2R() by @mcol in #339
  • Return also the computed De without abs() from fit_DoseResponseCurve() by @mcol in #341
  • Always recompute the record index at the end of read_BIN2R() by @mcol in #344
  • deal better with zero-data records by @mcol in #345
  • Further increase coverage in read_BIN2R.R by @mcol in #347
  • Update the .RESERVED slot when records are dropped in read_BIN2R() by @mcol in #348
  • Fix warning message and restore coverage in analyse_pIRIRSequence() by @mcol in #350
  • Don't crash when reading a corrupt BIN file by @mcol in #353
  • some more coverage in read_BIN2R.R by @mcol in #354
  • Use data.table operations before generating the output object by @mcol in #355
  • Deals with NAs when computing densities in plot_DoseResponseCurve() by @mcol in #359
  • Consolidate the reading of the first few BIN/BINX fields by @mcol in #357
  • Create the METADATA data.table by columns instead of by rows by @mcol in #360
  • Return empty objects from read_BIN2R() when no records are kept by @mcol in #361
  • Recalculate the record index only once at the end of read_BIN2R() by @mcol in #363
  • Don't let verify_SingleGrainData() crash on an empty list input by @mcol in #366
  • Improve terminal feedback in fit_DoseResponseCurve() by @mcol in #367
  • Add snapshot tests for calc_OSLLxTxDecomposed() and calc_OSLLxTxRatio() by @mcol in #370
  • Streamline the reading of strings in read_BIN2R() by @mcol in #375
  • Extract shared code to calculate the LxTx error to an internal helper by @mcol in #376
  • Add snapshot tests for merge_RLum.Data.Curve() by @mcol in #378
  • Ensure to get a unique channel resolution in merge_RLum.Data.Curve() by @mcol in #379
  • Fix the colour ramps in plot_RLum.Data.Spectrum() by @mcol in #380
  • Check if the originator is not NA before using it in a comparison by @mcol in #383
  • Don't listify the method.control argument when the input object is a list by @mcol in #384
  • Add more coverage to the DRAC functions by @mcol in #385
  • Add snapshot tests for read_BIN2R() by @mcol in #387
  • improve performance of src_analyse_IRSARRF_SRS() by @mcol in #388
  • Eliminate code in methods_DRAC.R that shouldn't be required anymore by @mcol in #389
  • Increase coverage in analyse_IRSAR.RF() by @mcol in #392
  • Better validation of sequence_structure in analyse_IRSAR.RF() by @mcol in #394
  • Use bquote() inside expression() as 'expression' may show in the title by @mcol in #391
  • Code cleanup and validation of RF_nat.lim and RF_reg.lim by @mcol in #395
  • Consider also VSLIDE when preparing some arguments for method = SLIDE by @mcol in #397
  • Allow tuning the number of windows created while sliding by @mcol in #398
  • Improve performance of src_analyse_IRSARRF_SRS() with optimization at -O2 by @mcol in #399
  • Add some extra checks after limitations to the curves are applied by @mcol in #402
  • Clean up some of the code in analyse_IRSAR.IR() and increase coverage by @mcol in #403
  • Clarify code for the computation of algorithm_error in analyse_IRSAR.RF() by @mcol in #406
  • Rename the plot.single option to plot_singlePanels by @mcol in #408
  • Fix crash in analyse_baSAR() if n.MCMC is equal to the thinning interval by @mcol in #409
  • Rename method.control to method_control in analyse_IRSAR.RF() by @mcol in #412
  • Integrate the new_features/dev_calc_EED_ model branch by @mcol in #410
  • Clean up calc_EED_Model() and increase coverage by @mcol in #413
  • Add an internal helper function to validate the expected length of an input by @mcol in #414
  • Fix crashes in plot_RLum.Data.Spectrum() with bin.rows/bin.cols too high by @mcol in #416
  • Improve input validation in plot_RLum.Data.Spectrum() by @mcol in #417
  • Implement merge_RLum.Data.Spectrum() by @mcol in #419
  • Add a batch of snapshot tests by @mcol in #420
  • Add a bunch of snapshot tests by @mcol in #425
  • Introduce the .throw_message() helper by @mcol in #426
  • Don't compute a confidence interval when only one observation is available by @mcol in #428
  • Use correct variable name when rounding in calc_IEU.R by @mcol in #430
  • Remove unnecessary loops in calc_IEU() and improve validation by @mcol in #431
  • Consolidate code in calc_IEU() by @mcol in #432
  • Fix various crashes in calc_IEU() by @mcol in #433
  • Make fit_DoseResponseCurve() accept a list as input by @mcol in #434
  • Add option to control the largest acceptable temperature difference by @mcol in #437
  • Make the pattern in the identifiers submitted to DRAC not discoverable by @mcol in #438
  • Improve input validation for a logical input by @mcol in #441
  • Add the verbose option to write_R2BIN() by @mcol in #444
  • Fix subset expression in extract_IrradiationTimes() by @mcol in #446
  • Generate automatically the list of functions supported by import_Data() by @mcol in #447
  • Improve input validation against an empty RLum.Results object by @mcol in #449
  • Consolidate code and increase coverage in plot_KDE() by @mcol in #450
  • Complete coverage for fit_LMCurve.R by @mcol in #451
  • Replace uses of any(is.na(x)) with anyNA(x) by @mcol in #452
  • Increase coverage in fit_OSLLifeTimes.R by @mcol in #453
  • More coverage by @mcol in #455
  • Fix crash in analyse_FadingMeasurement() if all records get removed by @mcol in #456
  • Improve input validation against a list with an empty RLum.Results object by @mcol in #458
  • Fix crashes in trim_RLum.Data() caused by misspecifications in trim_range by @mcol in #461
  • Improve input validation against an empty list by @mcol in #463
  • More coverage by @mcol in #464
  • Improve input validation against an empty data frame by @mcol in #467
  • Check that we have enough data to fit the non-linear models in fit_DoseResponseCurve() by @mcol in #465
  • More coverage and code consolidation by @mcol in #469
  • Fix crashes in calc_FastRatio() by @mcol in #472
  • Fix bounds in fit_DoseResponseCurve() by @mcol in #473
  • Fix crash in plot_DRTResults() due to wrong subsetting by @mcol in #475
  • Improve input validation against an empty RLum.Analysis object by @mcol in #477
  • Ensure errors are non-negative in calc_gSGC() by @mcol in #481
  • Fix how test_parameters is listified in analyse_Al2O3C_Measurement() by @mcol in #482
  • Rename the 'sample' argument to 'object' in fit_DoseResponseCurve() by @mcol in #484
  • Improve input validation against and empty character vector by @mcol in #486
  • Stop if using recordType returns no records in analyse_Al2O3C_CrossTalk() by @mcol in #488
  • Add view() for RLum objects by @mcol in #490
  • Remove unused setGeneric() for view() by @mcol in #491
  • Improve input validation against an empty RLum.Data.Image object by @mcol in #493
  • A bit more coverage by @mcol in #494
  • More coverage by @mcol in #495
  • Improve input validation against an empty RLum.Data.Curve object by @mcol in #497
  • Rename Second2Gray() to convert_Second2Gray() and set it to defunct by @mcol in #500
  • Improve validation against an empty RLum.Data.Spectrum object by @mcol in #502
  • Rename the CW2p*() functions to convert_CW2p*() and deprecate them by @mcol in #503
  • Fix computation of the natural dose for QDR/LIN extrapolation in fit_DoseResponseCurve() by @mcol in #505
  • Code consolidation in fit_DoseResponseCurve() by @mcol in #506
  • Improve validation against a list with an empty RLum.Data.Curve by @mcol in #508
  • Catch failures from confint() in fit_CWCurve() by @mcol in #510
  • Improve validation against an empty matrix by @mcol in #512
  • Add explicit support for disabling the fitting in analyse_IRSAR.RF() by @mcol in #513
  • Improve validation against an Risoe.BINfileData object by @mcol in #516
  • Add the replace_metadata<-() method for the Risoe.BINfileData class by @mcol in #514
  • Check that data size is compatible with the number of positions in analyse_baSAR() by @mcol in #518
  • Improve validation against a list of RLum.Analysis objects by @mcol in #520
  • Fix crashes and messages when setting variable.names in analyse_baSAR() by @mcol in #522
  • Add the replace_metadata<-() method for the RLum.Data class by @mcol in #524
  • Add the replace_metadata<-() method for the RLum.Analysis class by @mcol in #525
  • Add the add_metadata<-() generic and methods by @mcol in #527
  • Reorganize the generics into a single file by @mcol in #530
  • Fix shifting of the curve away from zero in analyse_SAR.CWOSL() by @mcol in #531
  • Fix crash when non-positive values are given to calc_AverageDose() by @mcol in #533
  • Add functionality to remove metadata using replace_metadata() by @mcol in #534
  • Import of thermochronometry code and tests by @mcol in #535
  • Allow to control the ITL_model argument from analyse_ThermochronometryData() by @mcol in #536
  • Increase coverage in plot_RLum.Results.R by @mcol in #537
  • Fix crashes in calc_Huntley2006() if the model is misspecified by @mcol in #539
  • Add some snapshot tests by @mcol in #540
  • Speed up calc_Huntley2006() by @mcol in #541
  • Restore the dose response curve plots in calc_Huntley2006() by @mcol in #544
  • Speed up calc_Huntley2006(): set a more consistent default for rprime by @mcol in #542
  • Add the rename_metadata<-() generic and methods by @mcol in #545
  • Finish renaming of NumberIterations.MC to n.MC in plot_GrowthCurve() by @mcol in #547
  • Handle failure of the unfaded EXP model in calc_Huntley2006() by @mcol in #550
  • Plot the natural curve for extrapolation also in the negative quadrant by @mcol in #552
  • Add grain to the RLum.Results object produced by analyse_SAR.CWOSL() by @mcol in #554
  • Rename PSL2Risoe.BINfileData() to convert_PSL2Risoe.BINfileData() by @mcol in #556
  • Fix rho_prime resulting in NaN in analyse_FadingMeasurement() by @mcol in #559
  • fit_IsothermalHolding(): define the models as functions rather than strings by @mcol in #557
  • New: functions underlaying paper "A novel tool to access crosstalk in luminescence detection" Anna-Maartje de Boer, Luc Steinbuch by @LucSteinbuch in #560
  • Improve fitting of the BTS model in fit_IsothermalHolding() by @mcol in #561
  • Produce a data frame with the fitted parameters from fit_IsothermalHolding() by @mcol in #564
  • Fix warnings from fit_IsothermalHolding() when processing multiple samples by @mcol in #565
  • Remove unused dose.scale and pdf.scale arguments from calc_FiniteMixture() by @mcol in #567
  • Use fully-qualified names to reduce some explicit imports by @mcol in #568
  • Return data.frame of curve points from fit_EmissionSpectra() by @mcol in #570
  • Implement sort_RLum() for RLum.Analysis objects by @mcol in #571
  • Make the export additional data optional in fit_EmissionSpectra(), fit_CWCurve() and fit_LMCurve() by @mcol in #573
  • Fix single page layout of SAR.CWOSL plots from analyse_pIRIRSequence() by @mcol in #575
  • Implement sort_RLum() for Risoe.BINfileData objects by @mcol in #576
  • Make fit_LMCurve() and fit_CWCurve() more resilient to plot failures by @mcol in #578
  • Ensure that sequence.structure contains at least one IR step by @mcol in #580

New Contributors

Full Changelog: v0.9.25...v1.0.0