First stable release of the TERN data API client. 11 exports covering 14 TERN datasets via a unified read_tern() dispatcher and the batch primitive collect_tern_data(), plus the audit-driven polish accumulated during pre-CRAN review.
Highlights
- Unified dispatcher:
read_tern(dataset_id, ...)covers SMIPS, ASC, AET, eight SLGA soil attributes (AWC, CLY, SND, SLT, BDW, PHC, PHW, NTO), Soil Beta Diversity, Canopy Height, and Land Surface Phenology — via short aliases or full TERN keys. - Batch primitive:
collect_tern_data()extracts values from any combination of datasets at any number of locations over any date range. Vectorised across locations (one COG open per work item, not per point). - Configurable retry:
options(nert.max_tries = ..., nert.initial_delay = ...)set globally; per-call overrides still honoured.
Breaking changes
read_smips()argumentdayrenamed todateto match the unified argument naming across allread_*()functions. Replaceday =withdate =.
Test surface
- 310 deterministic offline tests; package coverage 83%, every
read_*()reader at 100%. - URL-construction
expect_snapshot()pins every TERN bucket path/version/filename template. - Mocking via
testthat::local_mocked_bindings()on.read_cog(); no network inR CMD check.
Quality gates
R CMD check --as-cran: 0 errors / 0 warnings / 3 NOTEs (all intrinsic/environmental; itemised incran-comments.md).lintr::lint_package(),spelling::spell_check_package(),urlchecker::url_check(): clean.
See NEWS.md for the full change log.