Rdistance v4.5.0 on CRAN now
New transect survey-design tools for Rdistance are on CRAN
R
Distance Analysis
A new version of Rdistance, version 4.5.0, is on CRAN now (published 18-Sep-2026). The headline addition is a new suite of functions for designing random line-transect surveys inside study-area polygons, before you ever go to the field. This post summarizes the changes since v4.4.3 (May 2026).
Functionality Changes
- Transect Survey Design: Added a family of functions for designing random line-transect surveys inside study-area polygons.
drawTransects()is the main entry point. It callsfindSpacing()to compute the spacing that yields a target survey length, thenmakeLines()to place transects with a random start.calcLineLength()converts a target number of detected groups into a target transect length. Both parallel (“rectangular”) and “zigzag” layouts are supported, transects can be drawn across one or several polygons at once, and random replicates can be generated (parameterR). Transects can be returned as one continuous route (combine = TRUE) or as individual legs (combine = FALSE), and the target length can refer to the total route length or on-effort length only (parametertarget). Spacing is computed by an optimization routine in the newOSCARSpackage. See the Designing Line Transect Surveys tutorial for a walk-through. - Concave Polygons: Added
convexPartition(), which splits a strongly concave polygon into a handful of more-convex pieces using Approximate Convex Decomposition (Lien and Amato 2006). Splitting a bent, arc-, or L-shaped study area before callingdrawTransects()improves coverage of “zigzag” transects. - OSCARS Optimization: Fitting the non-smooth distance functions (
oneStep,triangle, andhuber) is now performed byOSCARS::oscars, a true global optimizer. It starts near the likelihood’s maximum and runs up to 10,000 iterations by default (options("Rdistance_oscarEvals")), and usually finds a higher maximum than the previous optimizer. It is also noticeably slower, so estimated run times are now printed to the console during fitting. abundEstim()on an Existing Fit:abundEstim()now accepts a previously fitted abundance object, in addition to a distance function. This lets you fit withci = NULLfirst and add (or extend) bootstrap iterations later, without redoing the whole analysis.- New Data Sets: Added
exampleSurveyPoly(two non-convex Alaska coastal survey strata, used to demonstrate the new survey-design functions), andpronghornDf/pronghornAreas(an aerial line-transect survey of pronghorn in southeast Wyoming, 2012-2019, with associated herd-unit polygons). - New Dependencies: Added
sf,grDevices, andOSCARSto Imports, required by the new survey-design functions.
Documentation Changes
Many documentation updates throughout, aimed at clarifying the survey-design routines and the optimization changes above.
