← Back to all sparks
F

forestTIME

INFRA · APIS
Velocity0.0

Generate Annualized Carbon and Biomass Estimates from FIA Data

A forest-inventory pipeline grew the strata machinery it needs to make population estimates.

forest-inventorycarbon-estimationfia-datainterpolationsurvey-estimation
Current state
forestTIME turns US Forest Inventory and Analysis data into annualized carbon and biomass estimates by interpolating between the years each plot is actually measured. Version 2.2.0 adds fia_assign_strata(), which matches every plot-year to an EVALID, estimation unit and stratum along with the values needed for population-level estimation with variance. The composite ID scheme also changed order, which breaks joins written against the old one.
Where it's heading
The arc runs from a duckDB-backed script to a package with a design-based estimation story. First the database layer was removed in favour of a single interpolated table; then the function surface was consolidated behind fia_ names and fia_annualize(); then expansion factors appeared; now the stratification the FIA estimators actually require. Each step moves closer to producing estimates users can put an error bar on rather than interpolated numbers.
Prediction
The notes name a temporary workaround for woodland species, whose carbon and biomass code is missing, and say fia_estimate() will eventually handle them directly. That, plus variance calculation built on the new strata columns, is the visible next work.

Recent moves

  1. 6mo ago

    Strata assignment opens the door to population-level estimates

    ⚡ SPARK

    The release where the package stops producing only annualized plot measurements and starts carrying what design-based population estimation needs. It also reorders the composite IDs, so downstream joins written against earlier versions will not match.

    View source ↗
  2. 11mo ago

    Renamed from forestTIME.builder, adds expansion factors

    The package drops the .builder suffix and starts carrying an EXPNS column computed as state land area over plot count, the first piece of the expansion machinery that 2.2.0 completes properly. fia_estimate() returns foliage biomass and two volume measures alongside carbon, and fia_download() gains options to extract only what forestTIME or rFIA need.

    View source ↗
  3. 1y ago

    Function surface consolidated behind fia_ names

    A breaking cleanup that gives the package one naming convention and one annualization entry point: prep_carbon() and estimate_carbon() collapse into fia_estimate(), fia_annualize() wraps the four-step expand, interpolate and mortality-adjust chain, and the remaining exported functions all take the fia_ prefix.

    View source ↗
  4. 1y ago

    Interpolation stops producing impossible trees

    A long correctness pass on the interpolation and mortality logic, most of it addressing values that were not physically sensible: negative heights and diameters now mark a tree as fallen and dead rather than propagating, single-measurement trees are carried forward instead of dropped, and trees in non-sampled conditions no longer get interpolated values.

    View source ↗
  5. 1y ago

    duckDB dropped for a single interpolated table

    The architectural reset the rest of the package is built on: the database layer is removed in favour of producing one table of interpolated data, and the main function chain from download through mortality adjustment is defined for the first time. The notes are candid that it does not yet run in an automated way.

    View source ↗
  6. 1y ago

    Snapshot before carbon estimation existed

    A state marker rather than a release: annualized estimates for all fifty states combined into a duckdb database, with no carbon or biomass code yet. It is the baseline the following refactor tore up.

    View source ↗