← Back to all sparks
R

rnpn

ANALYTICS
Velocity0.0

R package rnpn by usa-npn — release notes from GitHub.

The USA phenology data client rebuilt its entire stack and stopped handing users -9999 as a number.

phenologyapi-clientecological-datadata-cleaningdependency-migrationr-package
Current state
rnpn is the R client for the USA National Phenology Network, retrieving observation records, phenometrics and gridded model layers. Version 1.3.0 in March 2025 replaced nearly all of its infrastructure at once — sp and raster dropped, terra made optional, XML swapped for xml2, plyr for dplyr, httr and curl for httr2 — and changed what functions return, with tibbles in place of data.tables and empty tibbles in place of NULL on error. The two releases since have completed the missing-value handling and restored performance lost in the transition.
Where it's heading
The package is being brought onto the current R stack and made honest about missing data, and those are the same project. Converting the -9999 sentinel to NA started in 1.3.0 for download functions and was extended to all columns in 1.4.1; the string "emptyvalue" got the same treatment. Beyond the migration, the feature additions are modest and specific to the domain, such as custom start and end dates for defining a phenometrics season.
Prediction
With the dependency migration finished and sentinel handling now applied across all columns, the next releases most likely return to domain features and to fixes surfaced by the server side, which has already prompted work through migrations and backend moves. The removed progress indicator is an acknowledged regression that may come back.

Recent moves

  1. 11mo ago

    Sentinel -9999 now converted to NA across all columns

    Finishes what 1.3.0 started: the -9999 missing-value sentinel is now converted in every column rather than only in the download functions covered before. The remaining fixes address functions erroring on partially NA data and returning an empty tibble instead of an uninformative error when a query matches nothing.

    View source ↗
  2. 1y ago

    Custom season windows for phenometrics, and a speed regression fixed

    period_start and period_end let users define their own season window rather than accepting the default, which matters for phenology work spanning hemispheres or non-calendar cycles. The release also repairs the download time and memory blowup introduced by the 1.3.0 phenometrics changes, at the acknowledged cost of the progress indicator.

    View source ↗
  3. 1y ago

    Dependency stack and return types replaced wholesale

    ⚡ SPARK

    The pivot point in the package's history: the release that moved it onto current R infrastructure and changed what every function hands back. The two releases since have been consequences of it, finishing the missing-value work and repairing the performance it cost.

    View source ↗
  4. 1y ago

    Backfilled notes for seven earlier maintenance releases

    A single entry collecting release notes going back to 2021, and the collected content is almost entirely test repairs, server migrations and a maintainer handover. Useful as a record of how much of this package's history was spent keeping up with the backend rather than changing the client.

    View source ↗