NEWS
diveMove 1.6.4 (2024-10-13)
- The package now depends on R >= 4.4.0.
diveMove 1.6.0 (2021-05-12)
- Analyses for 2- and 3-process Poisson mixtures are now fully
implemented. The bout analysis module has a new API, which includes a
new S4 class ‘Bouts’ for representing Poisson process mixtures, and S4
methods and functions for performing related analyses. As a result,
most functions for bout analyses in previous diveMove versions have
been deprecated or are defunct. Please see
help("diveMove-deprecated") and help("diveMove-defunct") for details.
- New function rmixexp() for sampling from mixtures of exponential
distributions, as parameterized in Langton et al. (1990).
diveMove 1.5.4 (2021-04-20)
- Internal function .speedStats() now guarantees numeric matrix output,
even with missing values.
diveMove 1.5.3 (2021-02-26)
- Updated vignette to address CRAN check issues.
diveMove 1.5.2 (2020-09-20)
- plotTDR method now uses plotly for improved interactive graphics.
- The "visual" method for zero offset correction is deprecated.
- New tinytest testing suite.
- New html vignette.
diveMove 1.4.6 (2020-04-29)
- Update diveStats() to reflect changes in c.POSIXct() now coercing all
arguments.
diveMove 1.4.5 (2019-01-03)
- Incorporated runquantile() locally, removing dependency on caTools, as
the latter has been orphaned.
diveMove 1.4.4 (2017-12-16)
- Fixed bug in internal .cutDive() whereby descent and ascent critical
rates were not being computed for certain dives in corner cases using
very slow sampling frequencies.
- Unimodal regression on dives with less than five samples is replaced
with smoothing spline, which provides the same fit much more
efficiently. Otherwise, an upper bound is also introduced on the 'g'
parameter for unimodal regression when this model is requested. This
reduces processing time by at least 50%.
diveMove 1.4.3 (2017-03-06)
- Fixed bug in diveStats() causing inclusion of summaries for NA values
when there were any, and consequently differing number of elements in
summary() output.
diveMove 1.4.2 (2017-02-23)
- New method for dive phase detection in calibrateDepth(). By default,
a new unimodal cubic spline is now available to model dives, which
removes the burden of selecting the amount of smoothing in the
previous smoothing spline model, although the latter is still
available. The new model is fitted via unireg() from the uniReg
package.
- Use na.rm=TRUE to remove missing values from defining quantiles.
diveMove 1.4.1 (2016-02-06)
- Updated CITATION to reflect new person() arguments.
diveMove 1.4.0 (2015-08-23)
- Packages lattice and tcltk are no longer attached, but their
namespaces are required, thus resolving check warnings. Package
namespace is now fully specified. No visible changes for the user.
diveMove 1.3.9 (2014-02-20)
- Declared global variable 'x' for satisfying package checking
mechanism. No visible changes for the user.
diveMove 1.3.8
- Moved locations of vignettes in source to follow changes in R Core.
- Removed triple colon use for objects in diveMove, which was
unnecessary and discouraged.
diveMove 1.3.7 (2013-06-20)
- Default value for argument concurrentData in createTDR() is a
data.frame with the same number of rows as time stamps provided, to
keep consistency with readTDR() and getCCData() functionality.
- The package now requires caTools, KernSmooth, quantreg, and geosphere
to be available. However, they are not attached; only parts of their
namespaces are imported, so diveMove now makes more efficient use of
system's resources.
- distSpeed() now uses algorithms from package 'geosphere' for distance
calculations.
- Removed dependence on the 'RColorBrewer' package, and use hsv() for
generating colors.
diveMove 1.3.6 (2013-03-28)
- Fixed show method for 'TDRcalibrate', which should display that the
units are determined by the instrument.
- More accurate calculation of data range in plotDiveModel().
diveMove 1.3.5 (2012-08-16)
- New argument (logical) 'wet.cond' for .detPhase() and calibrateDepth()
to designate a condition for identifying wet/dry conditions.
Previously, this was done assuming that depth was recorded only when
wet (i.e. when a salt-water switch is available and used accordingly).
This assumption holds if new argument 'wet.cond' is not supplied.
- Improved documentation.
diveMove 1.3.4 (2012-05-08)
- New argument 'diveNo' for .derivStats() to extract derivative
statistics only for requested dives. Duplicates are ignored.
- Better resolution when zooming in plotTDR().
- Elements 'trip.no' and 'trip.type' in value returned by stampDive()
are now named 'phase.no' and 'activity', respectively, for
consistency. Similarly, element 'phaseno' in timeBudget() is now
named 'phase.no'.
- Improved documentation.
diveMove 1.3.3 (2012-04-05)
- Duplicate time stamps are no longer allowed in 'TDR' objects.
diveMove 1.3.2 (2012-03-28)
- Datasets in data/ are now compressed with bzip2.
- Improved documentation.
diveMove 1.3.1 (2012-03-12)
- Improved formatting of code in vignette. Figure resolution reduced to
satisfy package check requirements.
- At least R 2.13.0 is required.
diveMove 1.3.0
- Dives occurring in "trivial wet" periods are now identified.
- Improved validity checking for 'TDRcalibrate' objects.
- 'TDRcalibrate' accessor methods now explicitly check and report
that requested dives exist.
- plotTDR() now conditionally generates initial plot, after preparing
Tcl/Tk widgets, to accomodate for changes in R 2.14.2. Legend is
plotted only if there is at least one level in the phase factor.
diveMove 1.2.9 (2012-02-06)
- plotTDR() now subsets data based on the zoom scale, so plotting is
much faster.
diveMove 1.2.8
- Ensure that 'locations' argument in readLocs() is a string, if not a
connection.
diveMove 1.2.7 (2011-10-06)
- Prepare inst/doc/Makefile for R 2.14.0; Rd2dvi will be deprecated, so
use Rd2pdf.
- Removed .onLoad() since it was only needed for require() calls that
are no longer needed.
diveMove 1.2.6 (2011-05-27)
- New generic plotZOC() with methods for plotting ZOC procedure and
visually assess performance.
diveMove 1.2.5 (2011-04-04)
- New methods for models consisting of three Poisson processes for
detection of dive bouts. For now, only log-frequency NLS procedure is
supported. Corresponding maximum likelihood approach or better might
be available later.
- readTDR() and readLocs() now accept reading from text-mode
connections, as allowed in read.csv().
- New ellipsis argument for boutfreqs() and boutinit() for more
flexibility in plots.
- NAMESPACE now uses an empty exportClassPattern() to over-ride
exportPattern(), and keep using the explicit exportClasses().
diveMove 1.2.4 (2011-03-01)
- Updated reference for "filter" method in zero offset correction.
diveMove 1.2.3 (2010-11-29)
- If smooth.par is NULL, then then the smoothing parameter is determined
by Generalized Cross-validation (GCV) when fitting spline dive model
for determining dive phases. This approach is only useful when
studying individual dives, hence it is not the default in
calibrateDepth() for TDR objects, which may contain multiple dives.
diveMove 1.2.2 (2010-10-07)
- New argument plot.points in plotTDR() methods allows plotting points
when plotting basic TDR objects.
diveMove 1.2.1 (2010-10-06)
- Implemented new plotTDR() generic, providing more consistent interface
for all classes.
- diveStats() provides more dive summary statistics, including
derivative summaries.
- When interp.wet=TRUE and there are no missing depth observations,
calibrateDepth() no longer performs interpolation.
diveMove 1.2 (2010-09-15)
- Improved procedure for defining dive phases. The method uses smoothing
splines and their derivatives to find the end of descent and the
beginning of ascent, which form the basis for the identification of
the rest of the phases. This prompted the creation of a new S4 class
to hold the details of the dive modelling process. New plotting and
accessor methods are also provided to examine the process. Additional
methods are being developed to take full advantage of the information
available in objects of this class.
- Removed /data objects 'divesTDRcalibrate' and 'divesSummary' because
it is better to generate and inspect them in examples in help files.
- New slot 'call' for 'TDRcalibrate' class recording the matching call
to the corresponding generator calibrateDepth().
diveMove 1.1 (2010-08-05)
- New method for zero-offset correction based on sequential running
quantile smoothing/filtering. Thanks to Roland Fried for suggesting
this approach. Although still under development, it already produces
reliable results. This has made it necessary to change how
calibrateDepth() is used, so that the old 'offset' argument is now
passed as part of the ellipsis ('...') argument, and a new argument
'zoc.method' is required to choose among the three available methods.
Function zoc() has been relegated to an internal function (.zoc()) to
avoid duplication of arguments.
- New argument 'interp.wet' (logical) in calibrateDepth() that controls
whether a spline interpolation method should be used to impute missing
data during periods coded as wet. This is useful to rectify problems
with some instruments or on-board software that produce incomplete
dive traces, where observations near or at the surface are often
missing.
- Removed unnecessary default in .detDive().
- Removed unused arguments 'interval' and ellipsis from .labDive() and
.detDive(), respectively.
- Replaced ellipsis argument with 'interval' in .detPhase().
- The package now depends on caTools (for new ZOC method) and
RColorBrewer (for better coloring of points in plot methods).
diveMove 1.0 (2010-06-13)
- Fixed bug in "[" method for TDR objects with empty 'concurrentData'
'data.frame'.
- Minor documentation fixes.
diveMove 0.9.9 (2010-06-08)
- readLocs() now accepts a string for a path or an existing 'data.frame'
to read data from.
diveMove 0.9.8 (2010-04-25)
- New function .POSIXct() is used for assignments to S4 time slots,
in preparation for 2.12.0.
diveMove 0.9.7 (2010-02-05)
- New argument '...' to readTDR for more flexibility in formats of input
files. This is passed to read.csv().
- Comma-delimited files (*.csv) under data/ are now delimited by
semi-colon so they load as proper 'data.frame' objects with data().
diveMove 0.9.6 (2009-10-21)
- Fixed .cutDive() to behave as intended: wiggles above wiggle.tol
should not be allowed to terminate descent phase.
- Better documentation explaining the basics of dive phase detection.
diveMove 0.9.5 (2009-02-13)
- Documentation fixes in preparation for new release. New parser has
more strict rules for syntax.
diveMove 0.9.4 (2008-11-04)
- More helpful help pages, particularly in readTDR(), to indicate that
problems in input text files are better dealt with outside GNU R.
- Vignette now includes introduction to the bout detection functions.
diveMove 0.9.3 (2008-10-23)
- Fixed bug that avoided vignette to be built.
diveMove 0.9.2 (2008-10-23)
- New vignette now builds up on R News article.
- Fixed bug in diveStats() so that a warning regarding duplicate
row.names is no longer given.
diveMove 0.9.1 (2008-06-13)
- Use the 'grid' manager rather than 'pack', and rearrange widgets for a
better fit in plotTD().
diveMove 0.9.0 (2008-01-29)
- Minor package-building improvements.
diveMove 0.8.9 (2008-01-27)
- Fixed bug in rmsDistFilter() causing the filter to fail with very
small data sets with message warning that window size is larger than
available data, because locations at ends were not being counted.
diveMove 0.8.8
- The root-mean-square filter in rmsDistFilter() now works as described
in Freitas et al. (2008), rather than as in the original McConnell et
al. (1992). The latter may not have been the actual implementation,
although other studies may have followed it (e.g. Austin et al. 2003).
diveMove 0.8.7 (2008-01-11)
- Fixed citations in *.Rd files and CITATION.
diveMove 0.8.6 (2008-01-07)
- Fixed bug in grpSpeedFilter() whereby the test to fail if any speed >
threshold, rather than if ALL speeds > threshold.
diveMove 0.8.5 (2007-11-09)
- Improved validity check for input in distFilter().
diveMove 0.8.4 (2007-11-08)
- Fixed bug in rmsDistfilter() to intercept an error due to the number
of rows being exactly equal to the test window size. The dimensions
of internal objects are now handled properly.
diveMove 0.8.3 (2007-10-18)
- Better explanation of location filtering procedures in man pages.
diveMove 0.8.0 (2007-07-07)
- New methods for identification and analysis of bouts of behaviour
(mostly diving, but apply to others too).
diveMove 0.7-8 (2007-02-17)
- Better arrangement of widgets in plotTD() and its methods.
diveMove 0.7-7 (2007-02-13)
- S4 documentation bug fix.
diveMove 0.7-6 (2007-02-12)
- Fixes bug in plotTD() to work with stricter object class management in
R devel.
diveMove 0.7-5 (2007-01-25)
- Full examples for movement functions.
diveMove 0.7-4 (2007-01-10)
- distSpeed() no longer uses 'id' argument.
- Complete examples for location filtering functions.
- createTDR() now provides useful default for 'concurrentData', and test
for missing 'dtime'. Completed example accordingly.
- Improved show() method for 'TDRcalibrate' objects.
- plotTD(), and hence the plotTDR() methods now accept an ellipsis
argument to pass to par() for more flexibility drawing the plot. They
also now accept a new argument 'cex.pts' to set the relative size of
points.
diveMove 0.7-3 (2007-01-08)
- detPhase() and detDive() are now private functions (renamed with a
preceding dot), and should only be used through calibrateDepth().
- Rearranged documentation, reflecting the higher importance of
calibrateDepth() and calibrateSpeed() functions.
- distSpeed() no longer uses 'speed' and 'subset' arguments, and always
returns a matrix. All location filtering functions are now adapted to
this change.
diveMove 0.7-2 (2007-01-06)
- More examples for important functions.
diveMove 0.7-1 (2007-01-05)
- 'TDRcalibrate' method for plot() now plots correctly if no dives were
identified. New argument 'interact' to allow for static plots,
without 'tcltk' interaction.
- plot method replaced by 'plotTDR', to avoid unusual introduction of
arguments in methods and simplify code. This method is now based on
the new function plotTD(), which replaces plotDive(). This system now
makes the relationships between functions much more clear.
- Function getAct() renamed to rleActivity() to make it clearer that it
calculates statistics from running series of readings with the same
activity.
diveMove 0.7-0 (2006-12-28)
- Arguments 'seaerr', 'landerr', and 'divethres' were renamed to
'wet.thr', 'dry.thr', and 'dive.thr'. Likewise, slots
'land.threshold', 'sea.threshold', and 'dive.threshold' in class
TDRcalibrate were renamed to 'dry.thr', 'wet.thr', and 'dive.thr',
respectively, for consistency/appropriateness.
- The argument 'contours' to rqPlot() should now be a list with 2
components.
diveMove 0.6-9 (2006-12-27)
- New arguments for calibrateDepth(), offering improved control over
detection of descent, bottom, and ascent phases. We now use rates of
vertical movement for detection, with a further argument for defining
what determines a bottom wiggle.
- New arguments for plotDive() to decide whether to plot legend and to
set limits for depth plot.
- Documentation for formal classes and methods was split to make them
easier to read.
- attendance() has been renamed to timeBudget().