Changes in version 1.6.4:

   o The package now depends on R >= 4.4.0.

Changes in version 1.6.0:

   o 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.

   o New function rmixexp() for sampling from mixtures of exponential
     distributions, as parameterized in Langton et al. (1990).

Changes in version 1.5.4:

   o Internal function .speedStats() now guarantees numeric matrix output,
     even with missing values.

Changes in version 1.5.3:

   o Updated vignette to address CRAN check issues.

Changes in version 1.5.2:

   o plotTDR method now uses plotly for improved interactive graphics.

   o The "visual" method for zero offset correction is deprecated.

   o New tinytest testing suite.

   o New html vignette.

Changes in version 1.4.6:

   o Update diveStats() to reflect changes in c.POSIXct() now coercing all
     arguments.

Changes in version 1.4.5:

   o Incorporated runquantile() locally, removing dependency on caTools, as
     the latter has been orphaned.

Changes in version 1.4.4:

   o 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.

   o 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%.

Changes in version 1.4.3:

   o Fixed bug in diveStats() causing inclusion of summaries for NA values
     when there were any, and consequently differing number of elements in
     summary() output.

Changes in version 1.4.2:

   o 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.

   o Use na.rm=TRUE to remove missing values from defining quantiles.

Changes in version 1.4.1:

   o Updated CITATION to reflect new person() arguments.

Changes in version 1.4.0:

   o 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.

Changes in version 1.3.9:

   o Declared global variable 'x' for satisfying package checking
     mechanism.  No visible changes for the user.

Changes in version 1.3.8:

   o Moved locations of vignettes in source to follow changes in R Core.

   o Removed triple colon use for objects in diveMove, which was
     unnecessary and discouraged.

Changes in version 1.3.7:

   o 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.

   o 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.

   o distSpeed() now uses algorithms from package 'geosphere' for distance
     calculations.

   o Removed dependence on the 'RColorBrewer' package, and use hsv() for
     generating colors.

Changes in version 1.3.6:

   o Fixed show method for 'TDRcalibrate', which should display that the
     units are determined by the instrument.

   o More accurate calculation of data range in plotDiveModel().

Changes in version 1.3.5:

   o 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.

   o Improved documentation.

Changes in version 1.3.4:

   o New argument 'diveNo' for .derivStats() to extract derivative
     statistics only for requested dives.  Duplicates are ignored.

   o Better resolution when zooming in plotTDR().

   o 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'.

   o Improved documentation.

Changes in version 1.3.3:

   o Duplicate time stamps are no longer allowed in 'TDR' objects.

Changes in version 1.3.2:

   o Datasets in data/ are now compressed with bzip2.

   o Improved documentation.

Changes in version 1.3.1:

   o Improved formatting of code in vignette.  Figure resolution reduced to
     satisfy package check requirements.

   o At least R 2.13.0 is required.

Changes in version 1.3.0:

   o Dives occurring in "trivial wet" periods are now identified.

   o Improved validity checking for 'TDRcalibrate' objects.

   o 'TDRcalibrate' accessor methods now explicitly check and report
     that requested dives exist.

   o 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.

Changes in version 1.2.9:

   o plotTDR() now subsets data based on the zoom scale, so plotting is
     much faster.

Changes in version 1.2.8:

   o Ensure that 'locations' argument in readLocs() is a string, if not a
     connection.

Changes in version 1.2.7:

   o Prepare inst/doc/Makefile for R 2.14.0; Rd2dvi will be deprecated, so
     use Rd2pdf.

   o Removed .onLoad() since it was only needed for require() calls that
     are no longer needed.

Changes in version 1.2.6:

   o New generic plotZOC() with methods for plotting ZOC procedure and
     visually assess performance.

Changes in version 1.2.5:

   o 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.

   o readTDR() and readLocs() now accept reading from text-mode
     connections, as allowed in read.csv().

   o New ellipsis argument for boutfreqs() and boutinit() for more
     flexibility in plots.

   o NAMESPACE now uses an empty exportClassPattern() to over-ride
     exportPattern(), and keep using the explicit exportClasses().

Changes in version 1.2.4:

   o Updated reference for "filter" method in zero offset correction.

Changes in version 1.2.3:

   o 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.

Changes in version 1.2.2:

   o New argument plot.points in plotTDR() methods allows plotting points
     when plotting basic TDR objects.

Changes in version 1.2.1:

   o Implemented new plotTDR() generic, providing more consistent interface
     for all classes.

   o diveStats() provides more dive summary statistics, including
     derivative summaries.

   o When interp.wet=TRUE and there are no missing depth observations,
     calibrateDepth() no longer performs interpolation.

Changes in version 1.2:

   o 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.

   o Removed /data objects 'divesTDRcalibrate' and 'divesSummary' because
     it is better to generate and inspect them in examples in help files.

   o New slot 'call' for 'TDRcalibrate' class recording the matching call
     to the corresponding generator calibrateDepth().

Changes in version 1.1:

   o 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.

   o 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.

   o Removed unnecessary default in .detDive().

   o Removed unused arguments 'interval' and ellipsis from .labDive() and
     .detDive(), respectively.

   o Replaced ellipsis argument with 'interval' in .detPhase().

   o The package now depends on caTools (for new ZOC method) and
     RColorBrewer (for better coloring of points in plot methods).

Changes in version 1.0:

   o Fixed bug in "[" method for TDR objects with empty 'concurrentData'
     'data.frame'.

   o Minor documentation fixes.

Changes in version 0.9.9:

   o readLocs() now accepts a string for a path or an existing 'data.frame'
     to read data from.

Changes in version 0.9.8:

   o New function .POSIXct() is used for assignments to S4 time slots,
     in preparation for 2.12.0.

Changes in version 0.9.7:

   o New argument '...' to readTDR for more flexibility in formats of input
     files.  This is passed to read.csv().

   o Comma-delimited files (*.csv) under data/ are now delimited by
     semi-colon so they load as proper 'data.frame' objects with data().

Changes in version 0.9.6:

   o Fixed .cutDive() to behave as intended: wiggles above wiggle.tol
     should not be allowed to terminate descent phase.

   o Better documentation explaining the basics of dive phase detection.

Changes in version 0.9.5:

   o Documentation fixes in preparation for new release.  New parser has
     more strict rules for syntax.

Changes in version 0.9.4:

   o More helpful help pages, particularly in readTDR(), to indicate that
     problems in input text files are better dealt with outside GNU R.

   o Vignette now includes introduction to the bout detection functions.

Changes in version 0.9.3:

   o Fixed bug that avoided vignette to be built.

Changes in version 0.9.2:

   o New vignette now builds up on R News article.

   o Fixed bug in diveStats() so that a warning regarding duplicate
     row.names is no longer given.

Changes in version 0.9.1:

   o Use the 'grid' manager rather than 'pack', and rearrange widgets for a
     better fit in plotTD().

Changes in version 0.9.0:

   o Minor package-building improvements.

Changes in version 0.8.9:

   o 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.

Changes in version 0.8.8:

   o 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).

Changes in version 0.8.7:

   o Fixed citations in *.Rd files and CITATION.

Changes in version 0.8.6:

   o Fixed bug in grpSpeedFilter() whereby the test to fail if any speed >
     threshold, rather than if ALL speeds > threshold.

Changes in version 0.8.5:

   o Improved validity check for input in distFilter().

Changes in version 0.8.4:

   o 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.

Changes in version 0.8.3:

   o Better explanation of location filtering procedures in man pages.

Changes in version 0.8.0:

   o New methods for identification and analysis of bouts of behaviour
     (mostly diving, but apply to others too).

Changes in version 0.7-8:

   o Better arrangement of widgets in plotTD() and its methods.

Changes in version 0.7-7:

   o S4 documentation bug fix.

Changes in version 0.7-6:

   o Fixes bug in plotTD() to work with stricter object class management in
     R devel.

Changes in version 0.7-5:

	* Full examples for movement functions.

Changes in version 0.7-4:

   o distSpeed() no longer uses 'id' argument.

   o Complete examples for location filtering functions.

   o createTDR() now provides useful default for 'concurrentData', and test
     for missing 'dtime'.  Completed example accordingly.

   o Improved show() method for 'TDRcalibrate' objects.

   o 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.

Changes in version 0.7-3:

   o detPhase() and detDive() are now private functions (renamed with a
     preceding dot), and should only be used through calibrateDepth().

   o Rearranged documentation, reflecting the higher importance of
     calibrateDepth() and calibrateSpeed() functions.

   o distSpeed() no longer uses 'speed' and 'subset' arguments, and always
     returns a matrix.  All location filtering functions are now adapted to
     this change.

Changes in version 0.7-2:

   o More examples for important functions.

Changes in version 0.7-1:

   o 'TDRcalibrate' method for plot() now plots correctly if no dives were
     identified.  New argument 'interact' to allow for static plots,
     without 'tcltk' interaction.

   o 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.

   o Function getAct() renamed to rleActivity() to make it clearer that it
     calculates statistics from running series of readings with the same
     activity.

Changes in version 0.7-0:

   o 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.

   o The argument 'contours' to rqPlot() should now be a list with 2
     components.

Changes in version 0.6-9:

   o 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.

   o New arguments for plotDive() to decide whether to plot legend and to
     set limits for depth plot.

   o Documentation for formal classes and methods was split to make them
     easier to read.

   o attendance() has been renamed to timeBudget().
