← Back to all sparks
F

fluxnet-package

ANALYTICS
Velocity0.0

R package fluxnet-package by EcosystemEcologyLab — release notes from GitHub.

fluxnet keeps swapping its own plumbing — first a Python downloader, now a DuckDB backend.

eddy covarianceenvironmental dataduckdbdata accesspython interopr package
Current state
fluxnet gives R users access to FLUXNET eddy covariance data: listing sites, downloading, quality control and citation. Two releases in three months replaced the parts underneath the user-facing functions — 0.3.0 moved downloading off httr2 onto the fluxnet_shuttle Python library, and 0.6.0 added experimental DuckDB ingest so data can be queried with dplyr without being read into memory. The API around them has been churning in step, with site_ids='all' deprecated and max_gapfill renamed to threshold.
Where it's heading
The direction is toward handling data volumes that do not fit the read-it-all-into-R model, and toward borrowing rather than reimplementing — a Python library for transfers, DuckDB for storage. That comes with dependency weight the package now has to manage itself, which is what flux_install_shuttle() and its virtualenv handling exist for. Renames and deprecations in nearly every release suggest the interface is being fixed as the backend settles rather than the other way around.
Prediction
The DuckDB functions are marked experimental and cover connect, build and update only, so the next step is most likely stabilising them and routing the existing quality-control and extraction functions through the database rather than around it.

Recent moves

  1. 1mo ago

    Experimental DuckDB backend for out-of-memory queries

    ⚡ SPARK

    Adds experimental flux_db_connect(), flux_db_build() and flux_db_update() to ingest FLUXNET data into a local DuckDB database queryable through dplyr without loading it into memory, with a vignette demonstrating the workflow. This is a different access model from the read-and-hold approach the rest of the package assumes.

    View source ↗
  2. 1mo ago

    flux_qc() handles hourly data; max_gapfill renamed to threshold

    flux_qc() gains hourly data support through a threshold argument taking 0 to 3, and the previous max_gapfill argument is renamed to threshold to match. A small breaking rename in service of covering both temporal resolutions with one interface.

    View source ↗
  3. 2mo ago

    flux_citations() for site-level citation output

    Adds flux_citations() to generate site-level citations as plain text or BibTeX, closing a real gap for a package whose data carries attribution obligations. Also fixes hourly data not being extracted or read alongside half-hourly data.

    View source ↗
  4. 3mo ago

    Fix for multiple site_ids regression

    A single-line patch fixing a regression introduced in 0.3.1 when more than one site id is passed to site_ids.

    View source ↗
  5. 3mo ago

    site_ids='all' deprecated in favour of NULL

    Deprecates site_ids='all' in favour of site_ids=NULL across every function taking the argument. A vocabulary change with no behavioural effect, though it broke multi-site handling until 0.3.2.

    View source ↗
  6. 3mo ago

    Downloads move to the fluxnet_shuttle Python library

    ⚡ SPARK

    Moves downloading off httr2 onto the fluxnet_shuttle Python library, and adds flux_install_shuttle() to manage the virtualenv and shuttle version from environment variables. Ameriflux credentials gain a structured user_info argument and a flux_amf_credentials() helper.

    View source ↗