Wahoo is a Julia package for tracking the movement of marine animals
using probabilistic state-space models. The inference is based on a
spatial discretization and employs a convolution-based algorithm
instead of particle filters. This allows Wahoo to perform well even
for benthic animals in areas with very rugged bathymetry.
For more information, please see the documentation.
Note
Besides the released version, Wahoo has two experimental branches that may be of interest for you:
- Branch
speed_optim: A version heavily optimized for speed, mainly tested on Metal GPUs. - Branch
two_state_activity: Implements a hidden Markov model that allows the animal to switch between aslow(resting) and afaststate.
The experimental branches must be installed from GitHub:
Pkg.add(url = "https://github.com/scheidan/Wahoo.jl", rev = "branch-name")
Lavender, E., Albert, C., Scheidegger, A., 2026. Animal geolocation with convolution algorithms in Julia and R via Wahoo.jl. Methods in Ecology and Evolution 17, 497–504. https://doi.org/10.1111/2041-210x.70185
The filter and smoother implementation is based on:
Thygesen, Uffe Høgsbro, Martin Wæver Pedersen, and Henrik Madsen. 2009. “Geolocating Fish Using Hidden Markov Models and Data Storage Tags.” In Tagging and Tracking of Marine Animals with Electronic Devices, 277–93. Dordrecht: Springer Netherlands. https://doi.org/10.1007/978-1-4020-9640-2_17.
The example bathymetry data is derived from the following survey:
Howe JA, Anderton R, Arosio R, et al. The seabed geomorphology and geological structure of the Firth of Lorn, western Scotland, UK, as revealed by multibeam echo-sounder survey. Earth and Environmental Science Transactions of the Royal Society of Edinburgh. 2014;105(4):273-284. https://doi.org/10.1017/S1755691015000146
