Skip to main content

High-performance Python library for Forest Inventory and Analysis (FIA) data analysis

Project description

pyFIA

The Python API for forest inventory data

FIAtools Ecosystem PyPI PyPI Downloads Documentation License: MIT Python 3.11+

Part of the FIAtools Python Ecosystem
pyFIA · gridFIA · pyFVS · askFIA


A high-performance Python library for analyzing USDA Forest Inventory and Analysis (FIA) data. Built on DuckDB and Polars for speed, with statistical methods that match EVALIDator exactly.

Why pyFIA?

Feature pyFIA EVALIDator
Speed 10-100x faster Baseline
Interface Python API Web UI
Reproducibility Code-based Manual
Custom analysis Unlimited Limited options
Statistical validity ✓ Exact match ✓ Reference

Quick Start

pip install pyfia
from pyfia import FIA, biomass, tpa, volume, area

with FIA("path/to/FIA_database.duckdb") as db:
    db.clip_by_state(37)  # North Carolina
    db.clip_most_recent(eval_type="EXPVOL")

    # Core estimates
    trees = tpa(db, tree_domain="STATUSCD == 1")
    carbon = biomass(db, by_species=True)
    timber = volume(db, land_type="timber")
    forest = area(db, land_type="forest")

Core Functions

Function Description Example
tpa() Trees per acre tpa(db, tree_domain="DIA >= 5.0")
biomass() Above/belowground biomass biomass(db, by_species=True)
volume() Merchantable volume (ft³) volume(db, land_type="timber")
area() Forest land area area(db, grp_by="FORTYPCD")
mortality() Annual mortality rates mortality(db)
growth() Net growth estimation growth(db)

Statistical Methods

pyFIA implements design-based estimation following Bechtold & Patterson (2005):

  • Post-stratified estimation with proper variance calculation
  • Ratio-of-means estimators for per-acre values
  • EVALID-based filtering for statistically valid estimates
  • Temporal methods: TI, annual, SMA, LMA, EMA

Installation Options

# Basic
pip install pyfia

# With spatial support
pip install pyfia[spatial]

# Development
git clone https://github.com/mihiarc/pyfia.git
cd pyfia && pip install -e .[dev]

Documentation

📖 Full docs: pyfia.fiatools.org

Integration with FIAtools

pyFIA works seamlessly with other tools in the ecosystem:

# Use pyFIA data with gridFIA for spatial analysis
from pyfia import FIA
from gridfia import GridFIA

with FIA("database.duckdb") as db:
    species_list = db.get_species_codes()

api = GridFIA()
api.download_species(state="NC", species_codes=species_list)

The FIAtools Ecosystem

PyFIA is part of the FIAtools Python ecosystem - a unified suite of open-source tools for forest inventory applications:

Tool Purpose Key Features
pyFIA Survey & plot data DuckDB backend, 10-100x faster than EVALIDator
gridFIA Spatial raster analysis 327 species at 30m resolution, Zarr storage
pyFVS Growth simulation Chapman-Richards curves, yield projections
askFIA AI interface Natural language queries for forest data

Explore the full ecosystem at fiatools.org

Citation

@software{pyfia2025,
  title = {pyFIA: A Python Library for Forest Inventory Applications},
  author = {Mihiar, Christopher},
  year = {2025},
  url = {https://fiatools.org}
}

Affiliation

Developed in collaboration with USDA Forest Service Research & Development. pyFIA provides programmatic access to Forest Inventory and Analysis (FIA) data but is not part of the official FIA Program.


fiatools.org · Python Ecosystem for Forest Inventory Applications
Built by Chris Mihiar · USDA Forest Service Southern Research Station

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfia-1.2.0.tar.gz (196.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfia-1.2.0-py3-none-any.whl (233.8 kB view details)

Uploaded Python 3

File details

Details for the file pyfia-1.2.0.tar.gz.

File metadata

  • Download URL: pyfia-1.2.0.tar.gz
  • Upload date:
  • Size: 196.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyfia-1.2.0.tar.gz
Algorithm Hash digest
SHA256 5bb1d6218a0b9bbf43ea97024ebf5cd3a4240fcfc1b493cdd08a50998ea80db3
MD5 371c9504004b500c3ad829cc3893a2ba
BLAKE2b-256 94be00649418b6db14401e62d5c7e4a3b7318ac8e94ce9c3552fdf91e3f10888

See more details on using hashes here.

File details

Details for the file pyfia-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyfia-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 233.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyfia-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 55b4a94e5b15d23f27a0f1ca655719d4159ec1c7d432f416cca7e2239252f483
MD5 34115943f1b2c0be097ee53dd777bc00
BLAKE2b-256 cf2e23dd17a67026e4ac2e848a46b474f004c5a027e7d8f65faa8539c95e18e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page