NEWS
Rdistance 4.4.2
- Bug Fix: 'outArea' was undefined when likelihood returned NA or Inf
or NaN and this stopped execution. 'outArea' is now always defined. This bug
only effected the non-smooth likelihoods 'oneStep', 'triangle', and 'huber'.
- Bug Fix: Fixed failing bootstraps. Base function 'rbind' mysteriously
began stripping attributes from its arguments. Rdistance relies on these
attributes for bootstrapping. Attributes restored now and bootstraps
run.
- Bug Fix: Fixed the width vector for smooth likelihoods that was too
small when expansions were present. Ill-sized W vector caused failure when
expansions > 0 and likelihood was halfnormal, hazrate, negexp, or Gamma.
- Documentation Updates: Updated and clarified sections of the
documentation of abundEstim and RdistanceControls.
Rdistance 4.4.0 (2026-04-22)
- Functionality change: Added
triangle distance function, a
mixture of triangle and uniform distributions. See help(triangle.like)
examples.
- Functionality change: Added
huber distance function, a
mixture of an inverted version of Huber loss and a uniform distribution.
See help(huber.like) examples.
- Functionality change: Changed bounds on the
oneStep Theta parameter
to the minimum and maximum of distances, thus ensuring the ledge lies within
the range of observed distances.
- Functionality change: Implemented use of
stats::optim for optimization.
Prior to this, the only non-gradient optimizer was HookeJeeves. Default
optimizer for oneStep, triangle, and huber is now the Nelder-Mead
implementation in optim.
- Update: Minor documentation updates and clarifications.
- Note: No bugs found that effect results produced by prior versions.
Rdistance 4.3.1 (2026-02-11)
- Version v4.3.1 contains a critical bug fix. The prior version, 4.3.0,
incorrectly reported ESW when scaling factors (
g.x.scl) were less than 1.0.
Versions <=4.1.0 reported correct ESW, and ESW reported by 4.3.0 was correct
when g.x.scl equaled 1.0 (the default).
- Default value for
w.lo changed in parseModel to suppress warning re
x.scl < w.lo.
Rdistance 4.3.0 (2026-01-09)
- Functionality change: Added parallel bootstrap processing for confidence
interval estimation. Bootstrap resampling to compute confidence intervals can
take considerable time and running in parallel, on multiple CPU cores, speeds
things up. Parallel processing is handled by
multidplyr. Default is to run
bootstraps in parallel on n-1 CPU cores, where n is the number of
cores available on the local machine .
No progress bar is produced during parallel processing. Disable parallel processing
by setting parallel = FALSE in call to abundEstim. Run on a specific number
of cores by setting parallel to that number (e.g., parallel = 3 uses three
cores).
- Functionality change: Added the Gamma likelihood back to the suite of
likelihoods available in Rdistance. The Gamma was removed during the big
re-vamp of version 4.0.3. The Gamma likelihood works for both lines and points.
It works with both covariates and expansions.
- Update: Substantial documentation updates and clarifications.
Rdistance 4.1.0
- Functionality change: Added
oneStep.like, a mixture of non-overlapping
uniform densities, as a distance function. Included associated print,
plot, summary, and expansion methods. This required inclusion of a new non-gradient
based optimizer.
- Functionality change: Implemented reporting of bootstrap coefficient
standard errors, after bootstrap resampling is complete. Prior to
bootstrapping, asymptotic se's are reported when known.
- Functionality change: Included unit assignment helpers. Units can
now be assigned with the
%#% operator (e.g., 3 %#% "m"), which makes unit
assignment easier than in prior versions (which used units::set_units).
Fixed unit assignment operators are included for all popular linear and
squared units (e.g., 3 %m%. assigns meters to 3). See help(unitHelpers).
- Functionality change: Included b-spline expansion factors for distance
functions. Expansion factors are now
cosine, hermite, simple,
and bspline.
- Functionality change: Added verbosity option. This prints intermediate
parameter estimates and likelihoods during maximization.
Set
options(Rdistance_verbocity = 1)
or higher to see progressively more detailed intermediate output.
- Update: Likelihood computation time was significantly
decreased relative to the prior version, greatly increasing speed of
maximizations. Now, all likelihoods for both lines and points that do not
contain expansions use exact integration, which is much quicker than
numerical integration. Numeric integration is used only when expansion
terms are included.
- Update: Substantial documentation updates and clarifications.
- Bug Fixes:
. Fixed bug in
plot.dfunc.para when w.lo > 0
. Fixed bug in point transect methods resulting in incorrect
likelihood scalings
. Fixed expansions hermite and simple that was causing
non-convergence issues
Rdistance 4.0.5 (2025-04-10)
Bug fixes:
- Fixed bug in
predict method when type = "density" causing NaN
estimates on transects with observations outside the strip.
- Fixed bug in
RdistDf when merge parameter by was named. When by
was named and merge was on different named variables, names and values
in by were reversed prior to the fix due to first nesting then merging.
This bug did not
affect merges on same-named variables.
- Non-bug change: Moved all the examples from README to tutorials
on the McDonald Data Science website
because we have more control,
they are indexed by date and keyword, and they look better.
Rdistance 4.0.3 (2025-03-29)
Methods and workflow in Rdistance versions >4.0.0 are substantially
different from prior versions.
- BIGGEST CHANGE: Input data frames are now nested tibbles with one
row per transect,
and detection information in a data frame contained within a list column.
Technically, the new data frame format is a grouped tibble with one row
per group, and each group is a transect.
Survey type, observer system, and name of the effort column are recorded
as attributes in the new data frame.
RdistDf constructs the new Rdistance data frames from separate
transect and detection data frames formatted for use in prior versions.
Use this function on old sets of site and detection data frames to
construct the new nested data frames. See examples in ?RdistDf.
is.RdistDf checks the validity of the new Rdistance data frames.
summary prints a summary of number of transects, number of groups seen,
number of individuals, etc.
- Temporary Functionality Removal: Versions >4.0.0 are a near
complete re-write of versions <3.1.3. I felt the re-write was necessary to
improve stability of the code and lay the ground work for future functionality
improvements. But, to keep from going insane, I am rolling out new versions
that build on one another, with core functions first (in
4.0.* versions). As such, I have temporarily removed the following functionality
from versions with numbers 4.0.*:
- Logistic distance function form.
- Smoothed distance functions.
- Gamma distribution distance functions.
- Double-observer methods.
- All vignettes.
print, summary, and plot methods have been improved.
- Documentation updated and improved.
- Rdistance options can now be assessed by the regular
options function.
All Rdistance options are prefixed with 'Rdistance_' to distinguish them
from other options.
- New data frame format is pipe-able through the estimation workflow. For
example, the basic workflow is
df |> dfuncEstim(dist~1) |> abundEstim(),
which will estimate a distance function and density in one go.
Rdistance 3.1.3
Version 3.1.3 contains three patches. Several updates to
documentation and one bug fix precipitated
by changes to the 'units' package.
Rdistance 3.1.0
Version 3.1.0 primarily addresses GitHub issues.
- Summary Methods Implemented: Issue #57. Rdistance did not implement
summary methods for dfunc and abund objects prior to version v3.1.0. This version implements both summary and print methods for the main outputs. print.dfunc and print.abund are modeled on print methods for lm and glm objects. New methods summary.dfunc and summary.abund are modeled on the summary methods for lm and glm and will produce fuller (relative to print) outputs.
- Documentation fixes:
- Added reference to general method in DESCRIPTION as suggested by CRAN editors.
- Updated and clarified Description field of DESCRIPTION file.
- Updated numerous links in README and NEWS.
- Bug Fixes:
- Fixed bug when
abundEstim was called with tibbles.
Rdistance 3.0.0 (2023-06-13)
Version 3.0.0 is a substantial change and upgrade.
- BIGGEST CHANGE: Measurement units are now required on all distances
(e.g., off-transect distances, strip widths, study area size, etc.),
and it is possible to specify output units.
Unit conversion makes use of the
units package, is internal, and automatic.
- One-sided Transects: Added the ability to analyze single-sided transects
by setting
singleSided = TRUE in call to abundEstim.
- User Requested: Added computation of bootstrap confidence intervals
for effective sampling distances (ESW and EDR).
- NA Length Transects: NA length transects are now allowed. Observations
on NA length transects are used to estimate distance functions, but are dropped
when estimating density. This allows, for example, off-transect distance observations
from one study area or year to estimate a distance function which is then applied
to the observations from another study area or year.
- Added calculation of target density (number per unit area)
to
abundEstim, and it is included in bootstrapping.
- Allowed expansion terms and covariates in the same distance function.
- Renamed
uniform likelihood to logistic. Uniform is now deprecated.
- Added covariates to Gamma likelihood estimation.
- Change in default parameter: Changed default value of
area in
abundEstim from 1 to NULL. NULL now translates to 1 square output
unit.
- Added color to print methods. Results are in green, if the R terminal
allows it (i.e., in Rstudio, but not R gui). Errors are in red.
- Reformatted default output to include target density and abundance when
printing an
abund object.
- Fixed bug in
F.gx.estim that occasionally popped up when sighting
function was monotonically decreasing.
- Updated starting values for faster estimation.
- Decreased lower limit of
negexp likelihood parameter to achieve more valid
fits.
- Warning messages now report which parameters are at their boundary,
and which boundary (lower or upper).
- Bug fixes:
- Fixed issue with contrasts in
model.matrix
- Fixed issue of no observations during bootstrapping
- Fixed issues with changing scale locations (i.e.,
x.scl and g.x.sxl)
- Fixed
ESW for w.lo > 0
- Restricted likelihood values to be positive
- Substantial documentation updates
- Substantial testing facilities added.
Rdistance 2.1.5
- Fixed bug when bootstrap iteration selects zero targets
- Many updates to vignettes
- Updates to testthat files
- Added descriptive error for case when bySite==T and detection level covariates are present (Issue #72)
Rdistance 2.1.4
- Fixed bug caused by empty factor levels
- Included automated testing (testthat)
Rdistance 2.1.3 (2019-01-02)
- Fixed scaling error in the Gamma likelihood causing mode to be less than 1.0
- Fixed inverted plots that occurred when w.lo > 0 (left-truncation)
- Fixed bug in 'autoDistSamp' when 'bySite=TRUE'
- Fixed bug causing bootstrap failure of point transect surveys when 'siteData' contained only one column
Rdistance 2.1.2 (2018-08-23)
- Included methods for point transects. Previous version (v1.3.2) allowed only line transects.
- Implemented covariates in the detection functions.
- Implemented non-parametric (smoothed) distance functions
- Enhanced plotting abilities
- Enhanced vignettes
- Many bug fixes