pyfia.estimation.estimators.growth
Growth estimation for FIA data using GRM methodology.
Implements FIA’s Growth-Removal-Mortality methodology for calculating
annual tree growth using TREE_GRM_COMPONENT, TREE_GRM_MIDPT, and
TREE_GRM_BEGIN tables following EVALIDator approach.
Functions
growth
-
db: Database connection or path to FIA database. -
grp_by: Column name(s) to group results by. -
by_species: If True, group results by species code (SPCD). -
by_size_class: If True, group results by diameter size classes. -
size_class_type: Type of size class grouping to use (only applies when by_size_class=True): - “standard”: FIA numeric ranges (1.0-4.9, 5.0-9.9, etc.)
- “descriptive”: Text labels (Saplings, Small, Medium, Large)
- “market”: Timber market categories (Pulpwood, Chip-n-Saw, Sawtimber)
-
land_type: Land type to include in estimation. -
tree_type: Tree population to include (GRM tables): - ‘gs’: growing stock
- ‘al’ or ‘live’: all live trees at least 1 inch d.b.h., saplings on the microplot included (EVALIDator’s “trees at least 1 inch”)
- ‘sl’ or ‘sawtimber’: sawtimber-size trees
-
measure: What to measure in the growth estimation. -
tree_domain: SQL-like filter expression for tree-level filtering, e.g."SPCD == 131". As inremovals()andmortality(),DIA,SPCDandSTATUSCDare the GRM midpoint values (TREE_GRM_MIDPT),DIA_BEGIN/DIA_MIDPT/DIA_ENDare the GRM diameters, and other TREE columns come from the tree’s time-2 record. An expression naming a column that doesn’t exist raisesInvalidDomainError. -
area_domain: SQL-like filter expression for area/condition-level filtering. -
totals: If True, include population-level total estimates. -
variance: If True, also return variance columns (*_VARIANCE) alongside the standard errors (*_SE, always returned). Variance = SE squared. -
most_recent: If True, automatically filter to the most recent evaluation.
- Growth estimates with columns:
- GROWTH_ACRE: Annual growth per acre
- GROWTH_TOTAL: Total annual growth (if totals=True)
- GROWTH_ACRE_SE: Standard error of per-acre estimate
- GROWTH_TOTAL_SE: Standard error of total estimate (if totals=True)
- GROWTH_ACRE_VARIANCE, GROWTH_TOTAL_VARIANCE: Variance of the estimates, equal to the matching _SE squared (if variance=True)
- Additional grouping columns if specified
results = growth(db, measure=“volume”, land_type=“forest”) Growth by species (tree count): results = growth(db, by_species=True, measure=“count”)
Classes
GrowthEstimator
Growth estimator for FIA data using GRM methodology.
Estimates annual tree growth in terms of volume, biomass, or trees per acre
using the TREE_GRM_COMPONENT, TREE_GRM_MIDPT, and TREE_GRM_BEGIN tables.
Follows EVALIDator methodology with component-based calculations.
Methods:
component_type
load_data
apply_filters
calculate_values
- ONEORTWO=2: Add ending volumes (positive contribution)
- ONEORTWO=1: Subtract beginning volumes (negative contribution) Sum across ONEORTWO rows gives NET growth = ending - beginning
aggregate_results
- Bundle containing results, plot_tree_data, and group_cols for explicit variance calculation.
calculate_variance
agg_result: Bundle containing results, plot_tree_data, and group_cols from aggregate_results().
- Results with variance columns added.