← Back to all sparks
A

aniprocess

ANALYTICS
Velocity3.8

R package aniprocess by animovement — release notes from GitHub.

aniprocess rebuilt its filter API into three tiers and removed the old one outright.

animal trackingsignal processingbreaking changesapi designr package
Current state
aniprocess is the signal-processing half of the animovement ecosystem for animal movement data — smoothing, outlier flagging and gap handling for tracking coordinates. Version 0.3.0 restructured the entire public interface into three tiers: bare functions over a vector or a frame of coordinate columns, *_with() to select a method by name, and *_across() to apply one to a whole aniframe. Two functions were removed rather than deprecated, and argument names were normalized across the package.
Where it's heading
The redesign pushes aniframe metadata into the processing layer — *_across() reads sampling rate and the time column off the object instead of asking the caller, which is the division of labour aniframe's own class work assumes. Defaults are shifting toward not destroying information: filters preserve gaps unless inferring across them is the point, and a missing confidence score now warns rather than being read as a poor one. The bug fixes tell a consistent per-group story, with speed computed within each track so a step never forms across a track boundary.
Prediction
With the across-style API landed and issue #29 (filter_by_pose) still open, the next release most likely extends the same three-tier pattern to pose data rather than adding more filters.

Recent moves

  1. 2d ago

    Three-tier filter API; filter_aniframe() removed

    ⚡ SPARK

    A full interface restructure: every filter now exists as a bare function, a *_with() selector and an *_across() applier, with filter_aniframe() and replace_na() removed. The One Euro adaptive low-pass arrives alongside, and filter_ccma() and filter_na_excursion() stop scaling quadratically in group count — roughly 8x and 3.5x faster at 3,000 groups.

    View source ↗
  2. 3mo ago

    CCMA, excursion and Gaussian filters; FFT passband fix

    Adds four filters — curvature-corrected moving average, multi-frame excursion flagging, Gaussian and triangular smoothers — and fixes an asymmetric frequency-domain mask that halved the passband amplitude, so lowpass and highpass at one cutoff now reconstruct the input exactly. data.table moves from Suggests to Imports, and the package reaches full line coverage.

    View source ↗