Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl

preprint OA: closed
📄 Open PDF Full text JSON View at publisher
Full text 35,412 characters · extracted from preprint-html · click to expand
Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl | bioRxiv /* */ /* */ <!-- <!-- /*! * yepnope1.5.4 * (c) WTFPL, GPLv2 */ (function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0];var j=d.createElement(s);var dl=l!='dataLayer'?'&l='+l:'';j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;j.type='text/javascript';j.async=true;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-M677548'); Skip to main content Home About Submit ALERTS / RSS Search for this keyword Advanced Search New Results Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl View ORCID Profile Edward Lavender , View ORCID Profile Carlo Albert , View ORCID Profile Andreas Scheidegger doi: https://doi.org/10.1101/2025.09.19.677312 Edward Lavender 1 Department of Systems Analysis, Integrated Assessment and Modelling, Eawag Swiss Federal Institute of Aquatic Science and Technology Find this author on Google Scholar Find this author on PubMed Search for this author on this site ORCID record for Edward Lavender For correspondence: edward.lavender{at}eawag.ch Carlo Albert 1 Department of Systems Analysis, Integrated Assessment and Modelling, Eawag Swiss Federal Institute of Aquatic Science and Technology Find this author on Google Scholar Find this author on PubMed Search for this author on this site ORCID record for Carlo Albert Andreas Scheidegger 1 Department of Systems Analysis, Integrated Assessment and Modelling, Eawag Swiss Federal Institute of Aquatic Science and Technology Find this author on Google Scholar Find this author on PubMed Search for this author on this site ORCID record for Andreas Scheidegger Abstract Full Text Info/History Metrics Supplementary material Preview PDF Abstract Animal geolocation is the core of movement ecology. In aquatic ecosystems, electronic tagging and tracking technologies, such as passive acoustic telemetry systems and biologging sensors, are widely deployed. However, statistical estimation of individual locations from these datasets can be challenging and computationally expensive. Here, we introduce Wahoo.jl , a Julia package that fits state-space models to animal-tracking data via convolution algorithms. Wahoo.jl supports passive acoustic telemetry (detection/non-detection) and biologging (i.e., depth) datasets; implements grid-based filtering, smoothing and sampling of trajectories; and exploits GPU acceleration. Using simulations, we illustrate how to use Wahoo.jl from Julia and R to reconstruct movements for an example individual tagged with an acoustic transmitter and an archival depth tag. We also provide validation and sensitivity analyses. Wahoo.jl fills a key gap in the animal-tracking toolbox. The package provides an accessible, flexible and performant interface for an inference methodology that reliably handles multimodal inference problems that challenge other approaches. We discuss the approach’s pros and cons and provide guidance to readers on when to reach for Wahoo.jl . 1. Introduction Animal geolocation is a core activity in ecology ( Nathan et al., 2022 ). Studies of individual movements ( Shaw, 2020 ), habitat selection ( Florko et al., 2025 ) and conservation requirements ( Hays et al., 2019 ) all require reliable estimates of individual locations. Electronic tagging and tracking technologies are widely deployed for this purpose ( Hussey et al., 2015 ; Kays et al., 2015 ). In aquatic ecosystems, examples include satellite transmitters (which provide location fixes), passive acoustic telemetry systems (which record detections/non-detections of acoustic transmissions at static receivers) and biologging sensors (which record ancillary measurements, such as depths). Statistical animal geolocation leverages these data to infer individual locations ( Jonsen et al., 2013 ; Lavender, Scheidegger, Moor, et al., 2025 ). This comprises two steps. Step one is to formulate a state-space model for an individual’s locations ( s ) through time ( t ) ( Jonsen et al., 2013 ). Here, we consider discrete time models (where t ∈ {1, …, T }). Generically, a discrete-time state-space model is a representation of hierarchical system with (i) a process model that describes how the system’s underlying state evolves, denoted f ( s 1: T ), and (ii) an observation model, denoted f ( y 1: T | s 1: T ), that links the latent states to observations ( y ). If the latent states are discrete, the term hidden Markov model is often used ( Thygesen et al., 2009 ). In a geolocation context, the process model is the movement process by which the individual’s state (location) unfolds and the observation model is a description of how observations (such as detections) arise contingent upon the state. The second step is to infer the individual’s movement trajectories. Using Bayes Theorem, we can derive the joint probability of the states, given the observations, from the movement and observation processes as f ( s 1: T | y 1: T ) ∝ f ( s 1: T ) f ( y 1: T | s 1: T ). To perform inference, we need to identify a suitable algorithm to approximate f ( s 1: T | y 1: T ) or related quantities ( Lavender, Scheidegger, Moor, et al., 2025 ). Multiple inference approaches are available. Examples include filtering approaches ( Thygesen et al., 2009 ), Laplace approximation ( Jonsen et al., 2023 ) and Markov Chain Monte Carlo (MCMC) algorithms ( Hostetter & Royle, 2020 ). For a review, see Lavender, Scheidegger, Moor, & Albert (2025) . Filtering algorithms are a natural choice for geolocation ( Lavender, Scheidegger, Moor, et al., 2025 ). These algorithms consider the ‘partial’ marginal distribution f ( s t | y 1: t ) of the individual’s state s t at time t , given all data y 1: t up to that time. Filters exploit a recursive representation of f ( s t | y 1: t ) in which the distribution f ( s t −1 | y 1: t −1 ) is spread out by the movement process f ( s t | s t −1 ) and then updated by the data f ( y t | s t ); i.e., f ( s t | y 1: t ) ∝ ∫ f ( s t −1 | y 1: t −1 ) f ( s t | s t −1 ) f ( y t | s t ) d s t −1 . These two steps are termed the ‘prediction’ and ‘update’ ( Thygesen et al., 2009 ). With an additional smoothing step, the full marginal f ( s t | y 1: T ) can be computed. Trajectories can also be sampled from the joint distribution f ( s 1: T | y 1: T ). Inference focuses on the states (though it is possible to estimate static parameters in the movement and observation processes via the likelihood). Filtering approaches include Kalman filters ( Sibert et al., 2003 ), particle filters ( Lavender, Scheidegger, Albert, et al., 2025a ) and grid-based filters ( Thygesen et al., 2009 ). Kalman filtering is an efficient option in linear systems with Gaussian errors ( Sibert et al., 2003 ), but not directly applicable in passive acoustic telemetry systems (with binary observations). Particle filtering is a more general approach ( Doucet & Johansen, 2009 ). Particle filters approximate f ( s t | y 1: t ) using weighted samples termed particles. Given a sample of particles for time t − 1, particle filters recursively sample new particles for t from the movement model, weight them via the observation model and then resample them accordingly. The patter and Patter.jl packages implement this approach ( Lavender, Scheidegger, Albert, et al., 2025b ). While powerful, particle filters can be affected by particle degeneracy—the concentration of weights around a few particles, which can lead to poor approximations of complex probability distributions ( Doucet & Johansen, 2009 ). Extreme particle degeneracy was observed in a study integrating acoustic and depth observations from flapper skate ( Dipturus intermedius ) in a bathymetrically complex environment ( Lavender, Scheidegger, Albert, et al., 2025 ). Inference in this context is akin to finding a route through a bathymetric maze, which is a hard task for sampling methods (since particles simulated from the movement process are typically incompatible with the observations). Grid-based filtering is a solution ( Thygesen et al., 2009 ). In a grid-based filter, we discretise distribution f ( s t | y 1: t ) over the study area. Like a particle filter, the distribution is spread out in every time step (the prediction) and then corrected by observations (the update). However, unlike a particle filter, probabilities are computed for each cell directly, so particle degeneracy is not an issue. Grid-based filters were introduced by Pedersen et al. (2008) and Thygesen et al. (2009) for tidal geolocation of demersal fish. Subsequently, the approach was adapted for light-level and oceanographic data collected by pop-up satellite archival transmitters ( Braun et al., 2018 ). By avoiding sampling, the approach reliably represents multimodal distributions but can be computationally expensive. However, most computations can be parallelised and, for certain kinds of movement models, the prediction can be implemented as a two-dimensional convolution, for which optimised GPU routines are available. Here, we provide a performant Julia implementation of grid-based filtering for geolocation. Julia is a compiled programming language with strong GPU support that maintains a high-level experience ( Bezanson et al., 2017 ). Our package is designed for passive acoustic telemetry and biologging datasets (complementing the patter packages). We have implemented filtering, smoothing and sampling of trajectories and exploit convolution algorithms to alleviate the computational challenge of gridding. The package enables the acoustic telemetry community to exploit grid-based filtering and should support reliable geolocation analyses in many systems. In what follows, we formalise the geolocation model and the inference approach. We provide worked examples in Julia and R plus validation and sensitivity analyses. 2. Methodology This section outlines a Bayesian state-space model for the location of a tagged animal (following Lavender et al., 2025a ) and the inference procedure (following Thygesen et al., 2009 ). For full details, see Supporting Information §1. Table S1 provides a mapping between our and Thygesen et al.’s (2009) notation. 2.1 Model formulation Posterior Our goal is to estimate a tagged animal’s location through time, accounting for the movement process and the observations. The individual’s unknown trajectory is represented probabilistically by the joint distribution f ( s 1: T | y 1: T ) of the individual’s locations ( s = ( s x , s y )) and the observations ( y ); that is, where f ( s 1: T ) and f ( y 1: T | s 1: T ) denote the movement and observation processes, respectively. Movement We model f ( s 1: T ) with a probability distribution f ( s t= 1 ) for the individual’s initial location and a Gaussian random walk f ( s t | s t −1 ) for the movement process from s t −1 → s t , i.e., Where Observations We model the observation process f ( y 1: T | s 1: T ) as assuming independence. The term f ( y t | s t ) is data-specific ( Lavender, Scheidegger, Albert, et al., 2025a ). For example, for acoustic observations, a Bernoulli model in which the probability of a detection declines with distance from a receiver is appropriate. Other observations, such as depth measurements (together with knowledge of the bathymetry), can also be included in this term (see Supporting Information §1.1). 2.2. Inference Inference comprises grid-based filtering, smoothing and sampling (see Supporting Information §1.2). The filter targets f ( s t | y 1: t ). An approximation of f ( s t | y 1: t ) is achieved by discretisation. We represent the study area as a matrix and recursively estimate the probability P i,j,t ( y 1: t ) of the individual being in each grid cell S i , j with coordinates ( i, j ) at time t , conditional on the observations y 1: t (see Supporting Information §1.2.1). At each time step, the computation is a two-stage process: first, the movement process that diffuses the probability distribution is computed via convolution; then the probabilities are weighted based on the observations. The full marginal probabilities P i,j,t ( y 1: T ) are computed via smoothing (see Supporting Information §1.2.2). The overall occupancy distribution is defined across the grid by the normalised sum of all P i,j,t ( y 1: T ) values. Trajectories are sampled by a recursive algorithm that conditions on sampled positions and observations (see Supporting Information §1.2.3). Static parameters can be estimated over multiple filter runs via the likelihood (see Supporting Information §1.2.4). 3. Implementation Our package Wahoo.jl implements grid-based filtering, smoothing and sampling of trajectories ( Scheidegger, 2025 ). The package name draws inspiration from the wahoo ( Acanthocybium solandri ), a fast-swimming mackerel species. We designed the package to be lightweight, low-dependency and performant. Wahoo.jl focuses on inference and exports a single function, track() , for this purpose. To implement the function, users should provide a bathymetry raster ( GeoArray ) for the study area and a probability distribution for the individual’s initial location. The movement process ( eqn 3 ) is implemented as a two-dimensional convolution, representing a random walk with a user-defined standard deviation. Observations are provided as a Vector , with one element for each sensor (e.g., receiver) that contains the observation time series. Accompanying Vector s with Function s defining the observational models ( f ( y t | s t ) in eqn 4 ) and sensor positions (if applicable) should also be provided. We provide example models; custom functions are also supported. Using these inputs, track() performs inference using the CPU or CUDA -compatible GPUs. Outputs include filtered and/or smoothed probability distributions, the occupancy distribution, trajectories and a log-probability vector. To handle memory requirements, distributions are recorded at a subset of time ( tsave ) steps. Outputs are defined in Array s or Vector s, which can be analysed using standard routines in any programming language. Example analyses include analyses of centres of activity, occupancy, home ranges and habitat selection ( Lavender, Scheidegger, Moor, et al., 2025 ). For estimation of static parameters, users can plug the log-likelihood estimate into a grid-search or optimisation algorithm, or perform Bayesian inference using any dedicated Julia package. 4. Examples 4.1. Workflow We provide an example workflow using simulation ( Fig. 1 ). The example is motivated by previous skate research ( Lavender et al., 2021b , 2021a ; Lavender, Scheidegger, Albert, et al., 2025 ). On a 100 x 100 m bathymetry raster (557,568 cells), we simulated a movement trajectory at a time resolution of two minutes over a one month period (22,320 time steps), plus acoustic and depth observations for a hypothetical skate, following Fig. 1 (see Supporting Information §2.1 for the mathematics). Steps for inference with Wahoo.jl are below. The supporting materials provide complete workflows in Julia and R . Download figure Open in new tab Fig. 1. An example state-space model for animal geolocation. A shows a study area, including a simulated trajectory, coloured by time (yellow to red), and acoustic receivers. B–D depict model components: a Gaussian movement model; a Bernoulli acoustic observation model in which detection probability declines with distance from a receiver; and a truncated Gaussian depth observation model centred on the seabed (skate are predominantly benthic). In the example workflow, we simulated and analysed data using the same processes (black). In sensitivity analyses, we reimplemented algorithms with restricted (red) and flexible (green) model parameterisations. E shows simulated observations. A. Load packages First, we load necessary packages. Download figure Open in new tab B. Define inputs Second, we define inputs, including a bathymetry GeoArray ( bathy ), a time stamp Vector for the study period ( timeline ), receiver positions ( acoustic_pos ), a Vector of acoustic observation time series at each of 48 receivers ( acoustic_obs ) and a depth Vector ( depth_obs ). We also define a uniform distribution ( Matrix ) for the individual’s initial position ( p0 ). C. Formulate state-space model Third, we formulate our model ( Fig. 1 ) by defining the movement standard deviation and observation functions that evaluate for each data type ( q ). Download figure Open in new tab Download figure Open in new tab Download figure Open in new tab D. Run inference Finally, we perform inference. For the filter and smoother, we save every 60 th distribution. Download figure Open in new tab Hidden Markov models for geolocation Download figure Open in new tab The output is a NamedTuple that we can analyse as desired. Here, we visualise simulated and inferred movements. 4.2. Validation and sensitivity To further illustrate Wahoo.jl , we repeated the simulation for five hypothetical individuals. As a validation exercise, we reconstructed movements using data-generating parameters with both Wahoo.jl and patter (see Supporting Information §2.2). We also illustrate a sensitivity analysis that evaluates epistemic uncertainty by repeating our analysis with mis-specified parameters (see Supporting Information §2.3 and Table S2 for parameter settings). Code is available online ( Lavender, Scheidegger, & Albert, 2025 ). 5. Results In the example analysis, we inferred the individual’s locations across a 557,568-cell grid over 22,320 time steps. Simulated and inferred occupancy distributions matched closely ( Fig. 2 ). Inference, including filtering (6 min), smoothing (23 min) and sampling one trajectory (23 min), took approximately one hour on a 2018 consumer-grade NVIDIA GeForce RTX 2080 Ti GPU. On the CPU (2019 AMD EPYC 7742 server hardware), computation time was 3.0 hours (filter), 4.0 hours (smoother) and 3.9 hours (sampler). For comparison, a preliminary analysis with patter using 20,000/1,000 filter/smoother particles took approximately 1 hour (single-threaded on the CPU). The full analysis (100,000/2,000 particles) took 8.6 hours. Download figure Open in new tab Fig. 2. A comparison of simulated and inferred patterns for an example individual. A – B show occupancy distributions; C–D show the simulated trajectory versus a sampled trajectory. In the validation analysis, occupancy distributions reconstructed by Wahoo.jl and patter broadly aligned, providing high-level validation of the routines (Fig. S1). However, effective particle sample sizes were relatively low (indicating degeneracy). Particle algorithms were thus associated with somewhat patchier distributions. This effect was exaggerated in the simulation with the lowest sampling efficacy. In the sensitivity analysis, occupancy distributions were broadly robust to parameter misspecification (Fig. S2). Additionally, parameter misspecification appeared to degrade the numerical stability of patter , unlike Wahoo.jl (Fig. S3). 6. Discussion Wahoo.jl provides an accessible, flexible and efficient implementation of convolution algorithms for geolocation ( Thygesen et al., 2009 ). The inference methodology reliably handles geolocation problems in complex landscapes while exhibiting predictable computational performance. As a case study, we are deploying Wahoo.jl in a substantial analysis of our skate datasets. We hope Wahoo.jl will support integrative geolocation analyses in many other systems. To apply Wahoo.jl , users should formulate a state-space model for inference. The movement model implemented by Wahoo.jl is a Gaussian random walk, with a customisable standard deviation. For this model, the probability density of a movement depends only on the distance between states, which enables efficient implementation via convolution. From a Bayesian perspective, we also believe this is a widely applicable model for our belief about f ( s t | s t −1 ). The observation model design is flexible. We encourage users to leverage data, domain expertise and literature for model development ( Lavender, Scheidegger, Albert, et al., 2025a , 2025b ). In acoustic telemetry systems, observations are typically sparse and we prefer to focus inference on the latent states. Users seeking to estimate static parameters should evaluate data sufficiency and computational requirements via simulation. Wahoo.jl is one of the few model-based acoustic-telemetry packages suitable for direct use by practitioners ( Lavender, Scheidegger, Moor, et al., 2025 ). The key strength of the inference procedure is the use of spatial discretisation, which avoids the convergence issues that can affect particle filters. As a result, complex multimodal distributions can be inferred reliably. Unlike simulation approaches, computation time is also predictable. Wahoo.jl supports applications on both CPUs and GPUs (which is faster). Computation time is competitive with patter , even with half a million grid cells. Comparison with grid-based routines is difficult in the absence of standardisation, but it is noteworthy to estimate individual locations across more than 500,000 cells on over 20,000 time steps in less than one hour ( cf . Pedersen et al., 2008 ). This Julia implementation with GPU-acceleration should be highly competitive. Limitations of the inference methodology implemented by Wahoo.jl include restrictions on the movement model and computational requirements (notwithstanding GPU-acceleration). While filtering is fast, smoothing, sampling trajectories and estimating static parameters are comparably expensive. Memory demand (especially on the GPU) is another challenge (for long time series and large grids). For alternative approaches that make different trade-offs, we direct readers to the following review ( Lavender, Scheidegger, Moor, et al., 2025 ). For Wahoo.jl , community feedback will support package development. Research avenues include continued optimisation, enhanced flexibility (with support for more data and GPU types) and the development of wrappers for other languages. More generally, there is a need to benchmark available approaches to understand how problem complexity, algorithmic design and software implementations shape the suitability of different approaches in different settings ( Lavender et al., 2023 ; Lavender, Scheidegger, Moor, et al., 2025 ). Author contributions All authors conceived the project. Andreas Scheidegger developed the Wahoo.jl package. Carlo Albert developed the mathematical notation. Edward Lavender developed the manuscript. All authors shared expertise, provided inputs and approved publication. Data availability statement The Wahoo.jl package is available on GitHub ( Scheidegger, 2025 ). Data and code for this study are archived on Zenodo ( Lavender, Scheidegger, & Albert, 2025 ). Conflict of interest The authors declare no conflicts of interest. Funding information Edward Lavender was supported by postdoctoral researcher position at Eawag, funded by the Department of Systems Analysis, Integrated Assessment and Modelling. Acknowledgments We are grateful to Helen Moor for supporting this project. Funder Information Declared Department of Systems Analysis, Integrated Assessment and Modelling, Eawag References ↵ Bezanson , J. , Edelman , A. , Karpinski , S. , & Shah , V. B. ( 2017 ). Julia: A fresh approach to numerical computing . SIAM Review , 59 ( 1 ), 65 – 98 . doi: 10.1137/141000671 OpenUrl CrossRef PubMed ↵ Braun , C. D. , Galuardi , B. , & Thorrold , S. R. ( 2018 ). HMMoce: An R package for improved geolocation of archival-tagged fishes using a hidden Markov method . Methods in Ecology and Evolution , 9 ( 5 ), 1212 – 1220 . doi: 10.1111/2041-210X.12959 OpenUrl CrossRef ↵ D. Crisan & B. Rozovskii Doucet , A. , & Johansen , A. ( 2009 ). A Tutorial on Particle Filtering and Smoothing: Fifteen years later . In D. Crisan & B. Rozovskii (Eds.), In The Oxford Handbook of Nonlinear Filtering . Oxford University Press . ↵ Florko , K. R. N. , Togunov , R. R. , Gryba , R. , Sidrow , E. , Ferguson , S. H. , Yurkowski , D. J. , & Auger-Méthé , M. ( 2025 ). An introduction to statistical models used to characterize species-habitat associations with animal movement data . Movement Ecology , 13 , 27 . doi: 10.1186/s40462-025-00549-2 OpenUrl CrossRef PubMed ↵ Hays , G. C. , Bailey , H. , Bograd , S. J. , Bowen , W. D. , Campagna , C. , Carmichael , R. H. , Casale , P. , Chiaradia , A. , Costa , D. P. , Cuevas , E. , Nico de Bruyn , P. J. , Dias , M. P. , Duarte , C. M. , Dunn , D. C. , Dutton , P. H. , Esteban , N. , Friedlaender , A. , Goetz , K. T. , Godley , B. J. , … Sequeira , A. M. M. ( 2019 ). Translating marine animal tracking data into conservation policy and management . Trends in Ecology & Evolution , 34 ( 5 ), 459 – 473 . doi: 10.1016/j.tree.2019.01.009 OpenUrl CrossRef PubMed ↵ Hostetter , N. J. , & Royle , J. A. ( 2020 ). Movement-assisted localization from acoustic telemetry data . Movement Ecology , 8 ( 1 ), 15 . doi: 10.1186/s40462-020-00199-6 OpenUrl CrossRef PubMed ↵ Hussey , N. E. , Kessel , S. T. , Aarestrup , K. , Cooke , S. J. , Cowley , P. D. , Fisk , A. T. , Harcourt , R. G. , Holland , K. N. , Iverson , S. J. , Kocik , J. F. , Mills Flemming , J. E. , & Whoriskey , F. G. ( 2015 ). Aquatic animal telemetry: A panoramic window into the underwater world . Science , 348 ( 6240 ), 1255642 – 10 . doi: 10.1126/science.1255642 OpenUrl Abstract / FREE Full Text ↵ Jonsen , I. D. , Basson , M. , Bestley , S. , Bravington , M. V. , Patterson , T. A. , Pedersen , M. W. , Thomson , R. , Thygesen , U. H. , & Wotherspoon , S. J. ( 2013 ). State-space models for bio-loggers: A methodological road map . Deep Sea Research Part II: Topical Studies in Oceanography , 88–89 , 34 – 46 . doi: 10.1016/j.dsr2.2012.07.008 OpenUrl CrossRef ↵ Jonsen , I. D. , Grecian , W. J. , Phillips , L. , Carroll , G. , McMahon , C. , Harcourt , R. G. , Hindell , M. A. , & Patterson , T. A. ( 2023 ). aniMotum, an R package for animal movement data: Rapid quality control, behavioural estimation and simulation . Methods in Ecology and Evolution , 14 ( 3 ), 806 – 816 . doi: 10.1111/2041-210X.14060 OpenUrl CrossRef ↵ Kays , R. , Crofoot , M. C. , Jetz , W. , & Wikelski , M. ( 2015 ). Terrestrial animal tracking as an eye on life and planet . Science , 348 ( 6240 ), aaa2478 . doi: 10.1126/science.aaa2478 OpenUrl Abstract / FREE Full Text ↵ Lavender , E. , Aleynik , D. , Dodd , J. , Illian , J. , James , M. , Wright , P. J. , Smout , S. , & Thorburn , J. ( 2021a ). Environmental cycles and individual variation in the vertical movements of a benthic elasmobranch . Marine Biology , 168 ( 11 ), 164 . doi: 10.1007/s00227-021-03973-1 OpenUrl CrossRef ↵ Lavender , E. , Aleynik , D. , Dodd , J. , Illian , J. , James , M. , Wright , P. J. , Smout , S. , & Thorburn , J. ( 2021b ). Movement patterns of a Critically Endangered elasmobranch (Dipturus intermedius) in a Marine Protected Area . Aquatic Conservation: Marine and Freshwater Ecosystems , 32 ( 2 ), 348 – 365 . doi: 10.1002/aqc.3753 OpenUrl CrossRef ↵ Lavender , E. , Biber , S. , Illian , J. , James , M. , Wright , P. J. , Thorburn , J. , & Smout , S. ( 2023 ). An integrative modelling framework for passive acoustic telemetry . Methods in Ecology and Evolution , 14 ( 10 ), 2626 – 2638 . doi: 10.1111/2041-210X.14193 OpenUrl CrossRef ↵ Lavender , E. , Scheidegger , A. , & Albert , C. ( 2025 ). Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl (R code) . Zenodo . doi: 10.5281/zenodo.16086382 OpenUrl CrossRef Lavender , E. , Scheidegger , A. , Albert , C. , Biber , S. , Aleynik , D. , Dodd , J. , Cole , G. , Wright , P. J. , James , M. , Illian , J. , Smout , S. , Thorburn , J. , & Moor , H. ( 2025 ). Animal tracking with particle algorithms informs protected area design . bioRxiv . doi: 10.1101/2025.02.13.638042 OpenUrl Abstract / FREE Full Text ↵ Lavender , E. , Scheidegger , A. , Albert , C. , Biber , S. , Illian , J. , Thorburn , J. , Smout , S. , & Moor , H. ( 2025a ). Particle algorithms for animal movement modelling in receiver arrays . Methods in Ecology and Evolution , 16 , 1808 – 1819 . doi: 10.1111/2041-210X.70028 OpenUrl CrossRef ↵ Lavender , E. , Scheidegger , A. , Albert , C. , Biber , S. , Illian , J. , Thorburn , J. , Smout , S. , & Moor , H. ( 2025b ). patter: Particle algorithms for animal tracking in R and Julia . Methods in Ecology and Evolution , 16 , 1609 – 1616 . doi: 10.1111/2041-210X.70029 OpenUrl CrossRef ↵ Lavender , E. , Scheidegger , A. , Moor , H. , & Albert , C. ( 2025 ). State-space models and inference approaches for aquatic animal tracking with passive acoustic telemetry and biologging sensors . EcoEvoRxiv . doi: 10.32942/X2MP84 OpenUrl CrossRef ↵ Nathan , R. , Monk , C. T. , Arlinghaus , R. , Adam , T. , Alós , J. , Assaf , M. , Baktoft , H. , Beardsworth , C. E. , Bertram , M. G. , Bijleveld , A. I. , Brodin , T. , Brooks , J. L. , Campos-Candela , A. , Cooke , S. J. , Gjelland , K. Ø. , Gupte , P. R. , Harel , R. , Hellström , G. , Jeltsch , F. , … Jarić , I. ( 2022 ). Big-data approaches lead to an increased understanding of the ecology of animal movement . Science , 375 ( 6582 ), eabg1780 . doi: 10.1126/science.abg1780 OpenUrl CrossRef PubMed ↵ Pedersen , M. W. , Righton , D. , Thygesen , U. H. , Andersen , K. H. , & Madsen , H. ( 2008 ). Geolocation of North Sea cod (Gadus morhua) using hidden Markov models and behavioural switching . Canadian Journal of Fisheries and Aquatic Sciences , 65 ( 11 ), 2367 – 2377 . doi: 10.1139/F08-144 OpenUrl CrossRef Web of Science ↵ Scheidegger , A. ( 2025 ). Wahoo.jl: Animal geolocation with convolution algorithms (Version 1.2.0) [Julia] . https://github.com/scheidan/Wahoo.jl ↵ Shaw , A. K. ( 2020 ). Causes and consequences of individual variation in animal movement . Movement Ecology , 8 ( 1 ), 12 . doi: 10.1186/s40462-020-0197-x OpenUrl CrossRef PubMed ↵ Sibert , J. R. , Musyl , M. K. , & Brill , R. W. ( 2003 ). Horizontal movements of bigeye tuna (Thunnus obesus) near Hawaii determined by Kalman filter analysis of archival tagging data . Fisheries Oceanography , 12 ( 3 ), 141 – 151 . doi: 10.1046/j.1365-2419.2003.00228.x OpenUrl CrossRef Web of Science ↵ Thygesen , U. , Pedersen , M. , & Madsen , H. ( 2009 ). Geolocating Fish Using Hidden Markov Models and Data Storage Tags (Vol. 9 , pp. 277 – 293 ). doi: 10.1007/978-1-4020-9640-2_17 OpenUrl CrossRef View the discussion thread. Back to top Previous Next Posted September 21, 2025. Download PDF Supplementary Material Email Thank you for your interest in spreading the word about bioRxiv. NOTE: Your email address is requested solely to identify you as the sender of this article. Your Email * Your Name * Send To * Enter multiple addresses on separate lines or separate them with commas. You are going to email the following Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl Message Subject (Your Name) has forwarded a page to you from bioRxiv Message Body (Your Name) thought you would like to see this page from the bioRxiv website. Your Personal Message CAPTCHA This question is for testing whether or not you are a human visitor and to prevent automated spam submissions. Share Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl Edward Lavender , Carlo Albert , Andreas Scheidegger bioRxiv 2025.09.19.677312; doi: https://doi.org/10.1101/2025.09.19.677312 Share This Article: Copy Citation Tools Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl Edward Lavender , Carlo Albert , Andreas Scheidegger bioRxiv 2025.09.19.677312; doi: https://doi.org/10.1101/2025.09.19.677312 Citation Manager Formats BibTeX Bookends EasyBib EndNote (tagged) EndNote 8 (xml) Medlars Mendeley Papers RefWorks Tagged Ref Manager RIS Zotero Tweet Widget Facebook Like Google Plus One Subject Area Ecology Subject Areas All Articles Animal Behavior and Cognition (7622) Biochemistry (17645) Bioengineering (13867) Bioinformatics (41873) Biophysics (21420) Cancer Biology (18550) Cell Biology (25447) Clinical Trials (138) Developmental Biology (13361) Ecology (19866) Epidemiology (2067) Evolutionary Biology (24289) Genetics (15587) Genomics (22473) Immunology (17707) Microbiology (40322) Molecular Biology (17144) Neuroscience (88457) Paleontology (666) Pathology (2826) Pharmacology and Toxicology (4815) Physiology (7634) Plant Biology (15111) Scientific Communication and Education (2042) Synthetic Biology (4285) Systems Biology (9813) Zoology (2268)

Text is read by the "Ask this paper" AI Q&A widget below. Extraction quality varies by source — PMC NXML preserves structure cleanly, OA-HTML may include some navigation residue, and OA-PDF can have broken hyphenation. The publisher copy (via DOI) is the canonical version.

My notes (saved in your browser only)

Ask this paper AI returns verbatim quotes from the full text · source: preprint-html

Answers must be backed by verbatim quotes from this paper's full text. Hallucinated quotes are dropped automatically; if no verbatim passage answers the question, we say so. How this works

Citation neighborhood (no data yet)

We don't have any in-corpus citations linked to this paper yet. This is a recent paper (2025) — citers typically take a year or two to land, and the OpenAlex reference graph may still be filling in.

Source provenance

europepmc
last seen: 2026-05-20T01:45:00.602351+00:00