FIA Technical Context for API Documentation Enhancement¶
Overview¶
This document compiles authoritative FIA technical information gathered from official USDA Forest Service sources to enhance pyFIA's API documentation.
Key References¶
Primary Methodological Reference¶
Bechtold, W.A. and Patterson, P.L. (Editors). 2005. The enhanced forest inventory and analysis program - national sampling design and estimation procedures. General Technical Report SRS-80. U.S. Department of Agriculture, Forest Service, Southern Research Station, Asheville, NC. 85 p.
- Foundational document for FIA's enhanced program methodology
- Describes transition to annual inventory system
- Details three-phase sampling design
- Presents core estimators for National Information Management System (NIMS)
- Available at: https://www.srs.fs.usda.gov/pubs/gtr/gtr_srs080/gtr_srs080.pdf
- DOI: 10.2737/SRS-GTR-80
Key Chapters (with page references)¶
| Chapter | Title | Authors | Pages |
|---|---|---|---|
| 3 | The Forest Inventory and Analysis Plot Design | Bechtold, W.A.; Scott, C.T. | 27-52 |
| 4 | Sample-based estimators used by FIA NIMS | Scott, C.T.; Bechtold, W.A.; Reams, G.A.; Smith, W.D.; Westfall, J.A.; Hansen, M.H.; Moisen, G.G. | 53-77 |
Critical Equations (Chapter 4)¶
| Equation | Page | Description |
|---|---|---|
| Eq. 4.1 | 47 | Domain indicator function (Φ_hid) for condition attributes |
| Eq. 4.2 | 49 | Adjustment factor (1/p_mh) for non-sampled plots |
| Eq. 4.8 | 53 | Tree attribute estimation (y_hid) |
| Section 4.2 | 55-60 | Stratification and EXPNS expansion factor |
Key Sections¶
- Section 3.4.3 (pg. 40-42): Nonsampled Plots and Plot Replacement - handling inaccessible plots
- Section 4.2 (pg. 55-60): Post-stratified estimation procedures and variance formulas
Additional Key References¶
- Woudenberg, S.W. et al. 2010. The Forest Inventory and Analysis Database: Database description and users manual version 4.0 for Phase 2. Gen. Tech. Rep. RMRS-GTR-245. Fort Collins, CO: U.S. Department of Agriculture, Forest Service, Rocky Mountain Research Station.
- Westfall, J.A. et al. 2023. National scale volume and biomass (NSVB) estimators. Adopted by FIA program September 2023.
FIA Sampling Design¶
Three-Phase Design¶
- Phase 1: Remote sensing for stratification and identification of forested land
- Phase 2: Field plots - one per 6,000 acres of forest land
- Forest type, site attributes, tree species, tree size, tree condition
- Spatially explicit tree compositional data
- Phase 3: Subset of Phase 2 plots with expanded measurements
- Tree crown conditions, lichen composition, understory vegetation
- Down woody debris, soil attributes
Plot Configuration¶
FIA uses a nested plot design with specific radii:
Plot Components and Sizes¶
- Microplot:
- Radius: 2.073 m (6.8 ft)
- Trees measured: DBH < 12.446 cm (4.9 in)
-
Area: 13.5 m² (145 ft²)
-
Subplot:
- Radius: 7.315 m (24.0 ft)
- Trees measured: DBH ≥ 12.446 cm (4.9 in)
-
Area: 168.3 m² (1,809 ft²)
-
Macroplot:
- Radius: 17.953 m (58.9 ft)
- Trees measured: Large trees based on regional breakpoint diameter
- Area: 1,012 m² (10,890 ft²)
Total Sample Area¶
- Each plot represents approximately 2.47 acres
- Data extrapolated to represent ~6,000 acres
Evaluation System (EVALID)¶
EVALID Structure¶
Format: SSYYTT (6-digit code) - SS: State FIPS code (e.g., 48 for Texas) - YY: Evaluation year (last 2 digits, e.g., 23 for 2023) - TT: Evaluation type code
Evaluation Types (EVAL_TYP)¶
- EXPALL (typically TT=00): All area estimation plots - most comprehensive
- EXPVOL (typically TT=01): Volume/biomass plots with tree measurements
- EXPGROW: Growth estimation plots
- EXPMORT: Mortality estimation plots
- EXPREMV: Removal estimation plots
- EXPCHNG (typically TT=03): Change estimation plots
- EXPDWM (typically TT=07): Down woody materials plots
- EXPINV (typically TT=09): Inventory plots
Critical Rules¶
- Never mix EVALIDs - use only ONE per estimation
- EXPALL required for unbiased area estimates
- Evaluation year represents complete statistical estimate, not individual plot measurements
Volume Calculations¶
Volume Variables in FIA Database¶
VOLCFNET (Net Cubic-Foot Volume)¶
- Net volume after deducting defects and cull
- Used for growing stock calculations
- Formula: TPACURR × VOLCFNET × EXPVOL
VOLCFGRS (Gross Cubic-Foot Volume)¶
- Total stem volume (1-ft stump to 4-in top)
- Trees ≥ 5.0 inches DBH
- No deductions for defects
VOLCFSND (Sound Cubic-Foot Volume)¶
- Volume excluding rotten or missing cull
- Used for merchantable bole biomass when available
VOLBFNET (Net Board-Foot Volume)¶
- Sawlog volume in board feet
- Different size thresholds:
- Softwoods: ≥9" DBH, 1-ft stump to 6" top
- Hardwoods: ≥11" DBH, 1-ft stump to 8" top
Growing Stock Definition¶
- Live trees ≥5" DBH
- Tree class code (TREECLCD) = 2
- No serious defects affecting merchantability
- Volume: 1-ft stump to 4-inch top diameter
Expansion Factors and Adjustments¶
Tree-Level Expansion¶
TPA_UNADJ (Trees Per Acre Unadjusted) - Base expansion factor before plot-level adjustments - Varies by plot component: - Microplot: 74.965282 trees/acre - Subplot: 6.018046 trees/acre - Macroplot: Varies by region
Plot-Level Adjustments¶
ADJ_FACTOR_MICR, ADJ_FACTOR_SUBP, ADJ_FACTOR_MACR - Adjustment factors from POP_STRATUM table - Applied based on tree diameter: - DIA < 5.0": ADJ_FACTOR_MICR - 5.0" ≤ DIA < MACRO_BREAKPOINT_DIA: ADJ_FACTOR_SUBP - DIA ≥ MACRO_BREAKPOINT_DIA: ADJ_FACTOR_MACR
Stratum-Level Expansion¶
EXPNS (Expansion Factor) - From POP_STRATUM table - Expands plot to population level - Accounts for stratification design
Complete Expansion Formula¶
Biomass and Carbon¶
Biomass Variables (DRYBIO_*)¶
- DRYBIO_AG: Aboveground biomass (pounds)
- DRYBIO_BG: Belowground biomass (coarse roots)
- DRYBIO_BOLE: Main stem wood and bark
- DRYBIO_STUMP: Stump biomass
- DRYBIO_SAPLING: Sapling biomass
- DRYBIO_TOP: Top and branches above merchantable height
Carbon Calculation¶
- Standard factor: 47% of dry biomass (IPCC guidelines)
- Formula: Carbon = Biomass × 0.47
Unit Conversions¶
- Pounds to tons: Divide by 2,000
- Cubic feet to cords: Divide by 79
Land Classification¶
Forest Land (COND_STATUS_CD = 1)¶
- At least 10% stocked with forest trees
- At least 1 acre in size
- At least 120 feet wide
Timberland¶
- Forest land that is:
- Not reserved (RESERVCD = 0)
- Capable of producing ≥20 ft³/acre/year (SITECLCD < 7)
- Available for timber harvest
Growth-Removal-Mortality (GRM) Tables¶
Key GRM Tables¶
- TREE_GRM_COMPONENT: Component-level data for each tree
- TREE_GRM_MIDPT: Tree measurements at remeasurement midpoint
Component Types¶
- SURVIVOR: Trees alive at both measurements
- MORTALITY1, MORTALITY2: Trees that died between measurements
- CUT: Trees removed through harvest
- INGROWTH: New trees growing into measurable size
GRM Column Naming Pattern¶
- Metrics: TPAMORT_UNADJ, TPAREMV_UNADJ, TPAGROW_UNADJ - Tree types: GS (growing stock), AL (all live) - Land types: FOREST, TIMBERAnnual vs. Periodic Inventory¶
Rotating Panel Design¶
- Each state divided into panels (typically 5-7)
- One panel measured annually
- Complete cycle every 5-7 years (10 years in western states)
Evaluation vs. Inventory Years¶
- INVYR: Year individual plot was measured
- EVALID Year: Reference year for complete statistical estimate
- Example: EVALID 482300 represents Texas 2023 conditions, though includes plots from 2019-2023
Common Grouping Variables¶
Ownership (OWNGRPCD)¶
- 10: National Forest
- 20: Other Federal
- 30: State and Local Government
- 40: Private
Stand Size Class (STDSZCD)¶
- 1: Large diameter
- 2: Medium diameter
- 3: Small diameter
- 4: Seedling/sapling
- 5: Nonstocked
Site Productivity Class (SITECLCD)¶
- 1: 225+ cu ft/ac/yr
- 2: 165-224 cu ft/ac/yr
- 3: 120-164 cu ft/ac/yr
- 4: 85-119 cu ft/ac/yr
- 5: 50-84 cu ft/ac/yr
- 6: 20-49 cu ft/ac/yr
- 7: 0-19 cu ft/ac/yr
Tree Status (STATUSCD)¶
- 1: Live tree
- 2: Dead tree
- 3: Removed (cut or dead)
Statistical Considerations¶
Design-Based Estimation¶
- Post-stratified estimation for improved precision
- Finite population correction factors
- Ratio-of-means estimators for per-acre values
Variance Calculation¶
Following Bechtold & Patterson (2005), Chapter 4, Section 4.2 (pp. 55-60):
Domain Total Variance Formula¶
For tree-based estimates (volume, biomass, tree count, growth, mortality, removals), pyFIA uses the stratified domain total variance formula:
Where: - Ŷ = estimated population total for the domain - w_h = EXPNS (expansion factor = acres/plot in stratum h) - s²_yh = sample variance of Y in stratum h (with ddof=1) - n_h = number of plots in stratum h
This formula matches EVALIDator's variance calculation methodology and produces SE estimates within 1-3% of official USFS estimates.
Key Implementation Details¶
-
All plots included: Variance calculations must include ALL plots in the evaluation, not just those with non-zero values. Plots without trees in the domain contribute zeros, which affects the variance calculation.
-
Per-acre SE derivation: SE per acre is calculated by dividing total SE by total area:
-
Single-plot strata: Strata with only one plot are excluded from variance calculation (variance is undefined with n=1).
-
Ratio vs. Domain Total: EVALIDator uses domain total variance (shown above) rather than ratio-of-means variance with covariance terms. The simpler formula is appropriate because tree attribute values (y_i) already incorporate the expansion to plot-level totals.
Area Variance¶
For area estimates, a slightly different approach is used that accounts for post-stratification variance components (V1/V2). pyFIA SE estimates for area are typically within 2-3% of EVALIDator.
Validation Results¶
pyFIA variance calculations have been validated against EVALIDator for Georgia (EVALID 132301, 132303):
| Estimator | pyFIA SE | EVALIDator SE | Difference |
|---|---|---|---|
| Forest Area | 138,928 | 136,048 | 2.1% |
| Volume (GS) | 545,617,192 | 549,272,904 | 0.67% |
| Biomass (AG) | 14,204,093 | 14,256,973 | 0.37% |
| TPA (Live) | 204,196,873 | 199,352,867 | 2.4% |
| Growth | 35,406,501 | 35,445,004 | 0.11% |
| Mortality | 18,549,971 | 18,517,419 | 0.18% |
| Removals | 58,202,325 | 58,906,897 | 1.2% |
Temporal Methods (FIA Methodology)¶
FIA supports multiple temporal estimation methods, though pyFIA currently implements only TI:
- TI: Temporally Indifferent (all available data) - implemented in pyFIA, matches EVALIDator default
- Annual: Single year estimates - not implemented
- SMA: Simple Moving Average - not implemented
- LMA: Linear Moving Average - not implemented
- EMA: Exponential Moving Average - not implemented
Data Quality Notes¶
Pre-1999 Periodic Inventories¶
- Variable plot designs by region/state
- Some attributes may not be populated
- Different calculation methods possible
NULL Value Handling¶
- Common in certain fields (e.g., PHYSCLCD ~18% NULL)
- Handle safely in grouping operations
- May appear as separate group in results
Implementation Recommendations for pyFIA¶
Documentation Enhancements¶
- Add Bechtold & Patterson (2005) as primary reference
- Include plot configuration details in Notes sections
- Document expansion factor hierarchy
- Explain EVALID vs INVYR distinction
- Add volume type definitions
- Include standard grouping variable descriptions
Code Improvements¶
- Validate EVALID selection to prevent overcounting
- Implement proper diameter-based adjustment factor selection
- Add warnings for pre-1999 data limitations
- Include unit conversion helpers
- Document GRM table requirements
User Guidance¶
- Emphasize single EVALID rule
- Explain land type classifications
- Provide grouping variable recommendations
- Include expansion factor examples
- Document regional variations