PurpleAir
The R client for PurpleAir sensors keeps finding its time-averaging was wrong.
A side-by-side editorial comparison of invasimapr and rATTAINS — release velocity, themes, recent moves, and the top alternatives to consider.
invasimapr halved its install size and became citable; the science stayed put.
invasimapr estimates species invasiveness and site invasibility from trait, environmental and resident-community data, exposing a traits → competition → invasion-fitness pipeline behind seven high-level wrappers. Its three releases are all packaging and standards work: a first citable archive in June 2026, then a maturity release bringing it in line with the B-Cubed software development guide. The one behavioral addition in that release is an opt-in standardise_inputs argument on compute_invasion_fitness(), off by default.
The R client for EPA water quality data spent two releases undoing its own promises about data shape.
rATTAINS wraps the EPA's ATTAINS API, which holds state water quality assessments and impaired-waters listings. The package reached 1.0.0 by promising stable, consistently rectangled return structures, then walked that promise back in 1.1.0 when it dropped the dependency doing the rectangling. As of 1.2.0 it also requires an API key, because ATTAINS itself began requiring one in May 2026.
invasimapr estimates species invasiveness and site invasibility from trait, environmental and resident-community data, exposing a traits → competition → invasion-fitness pipeline behind seven high-level wrappers. Its three releases are all packaging and standards work: a first citable archive in June 2026, then a maturity release bringing it in line with the B-Cubed software development guide. The one behavioral addition in that release is an opt-in standardise_inputs argument on compute_invasion_fitness(), off by default.
The pressure is toward being installable and auditable rather than more capable — install slimmed from roughly 100 MB to 56 MB, R CMD check warnings and notes resolved, sp moved to Suggests, a Darwin Core-aligned data dictionary added, and a Zenodo concept DOI with CITATION.cff, codemeta.json and .zenodo.json. The package moves in lockstep with its B-Cubed sibling dissmapr, tagged within minutes of each other at both 0.1.0 and 0.2.1, which points at project-level standards deadlines rather than independent release decisions. Trait dispersion metrics and scenario exploration remain on the roadmap.
Standards compliance is now complete and the roadmap names functional trait dispersion metrics and scenario exploration tools, so the next release is the first that can plausibly be about invasion ecology rather than packaging.
rATTAINS wraps the EPA's ATTAINS API, which holds state water quality assessments and impaired-waters listings. The package reached 1.0.0 by promising stable, consistently rectangled return structures, then walked that promise back in 1.1.0 when it dropped the dependency doing the rectangling. As of 1.2.0 it also requires an API key, because ATTAINS itself began requiring one in May 2026.
The direction is toward a thinner, lower-maintenance wrapper. Caching went in 0.1.4 when hoardr was archived, tidyjson and janitor went earlier, tibblify went in 1.1.0, and each removal handed a little more data-shaping responsibility back to the user — the current advice is to pass .unnest = FALSE and rectangle the results with whatever tidying package you prefer. Release cadence is slow and mostly reactive: upstream API terms, archived dependencies, and compatibility with test tooling account for most of the log. The package's centre of gravity is staying installable and honest about what ATTAINS returns rather than smoothing it over.
Given the pattern, the next release is likelier to be a compatibility or upstream-driven fix than new endpoint coverage; how the API key requirement affects users in scripted and CI contexts is the obvious open question the entries do not yet answer.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either invasimapr or rATTAINS.
The R client for PurpleAir sensors keeps finding its time-averaging was wrong.
A board game graphics package runs one of the most disciplined deprecation cycles in R.
The explainable-ensemble-tree package now measures whether its own explanations are faithful.
The discrete-data FDR package is being pared into one piece of a larger multiple-testing suite.
A scientific-text analysis package moved from counting citations to classifying argument structure.
The teaching arm of an R reliability suite keeps pace with whatever its analysis siblings ship.
See all invasimapr alternatives → · See all rATTAINS alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. invasimapr and rATTAINS are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. invasimapr and rATTAINS are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top invasimapr alternatives in Analytics are ranked by recent ship velocity. Browse the "invasimapr alternatives" section above for the current picks, or visit /alternatives/invasimapr for the full list with editorial commentary on each.
Top rATTAINS alternatives in Analytics are ranked by recent ship velocity. Browse the "rATTAINS alternatives" section above for the current picks, or visit /alternatives/rattains for the full list with editorial commentary on each.