Abstract
Abstract
1). Erroneous locations are ubiquitous in animal tracking data and prove notoriously difficult to remove, particularly so in an unsupervised manner. Whether caused by poor satellite geometry, atmospheric interference, tag malfunction, or deliberate GNSS spoofing or jamming, such outliers propagate into estimates of movement rates, home ranges, habitat selection, and behavioural states. Existing screening procedures rely on fixed speed threshold filtering, require regular sampling, or distance thresholds, or are based on smooth locations through model-based approaches which can prove difficult to fit to heterogeneous data, or they stop at producing diagnostic plots that leave the final decision to the analyst. Additionally, movement-metric outlier tests often share a structural blind spot: they catch points whose transitions to neighbours are extreme, but miss spatially-coherent block errors whose interiors look metrically normal. 2). I introduce mt_clean_track(), a function in the open-source R package move2utils that takes a movement track and returns the same track with outlier flags attached plus a categorical read-out of "what kind of evidence" triggered each flag. The method combines a cascade of outlier detection methods based on four ideas: data-driven thresholds that the user does not have to specify, four complementary detectors that each catch an error class the others structurally cannot (a Brownian-bridge geometric residual, a movement-metric probability test, a scale-invariant path-vs-displacement detour ratio, and a step-level physiological speed cap), and a graph-based block-expansion step that recovers coherent error trains that per-fix scoring cannot reach. Based on the flags raised by each of the underlying methods, I use an agreement-based heuristic combination rule that builds a consensus flag for a location based on the number of single method flags and their level of certainty, as well as other methods of consensus derivation. 3). I evaluate the method on a cohort of synthetic trajectories covering isolated spikes, drift segments, sustained spoofing blocks, stationary-halo GPS jitter, and multi-state migration anomalies, and compare against four established alternatives (a naive speed cap, atlastools, trip::sda, SDLfilter). The cascade recovers the injected outliers on every track, achieves the highest cross-cohort mean F1 (0.86 at zero user parameters; nearest competitor 0.80 at a hand-tuned threshold), and is the only tool that recovers the coherent spoofing block with usable precision (30/30 vs 1--3/30 for the per-fix competitors). On a clean reference track all tools except trip::sda produce low to zero false positives. A directional decomposition of the bridge residual additionally reframes outlier detection as error-classification: a flagged fix's position in a two-dimensional residual plane reveals whether the error is perpendicular drift, along-track jump, or magnitude-extreme on both axes. 4). Providing per-location outlier scores, data-driven thresholds, an error-morphology read-out, and a single cleaning-cascade entry point that requires no parameters in its default form is intended to make outlier screening of GPS-tracking data a routine and reproducible step in the movement-ecology analysis pipeline. The outlier removal cascade is part of the move2utils package and available at https://github.com/move2universe/move2utils.