Skip to content

FIAtools - Python ecosystem for USDA Forest Service forest inventory analysis | pyFIA, gridFIA, pyFVS, askFIA

Notifications You must be signed in to change notification settings

mihiarc/fiatools

Repository files navigation

FIAtools

FIAtools

Python ecosystem for forest inventory applications

Website License: MIT


FIAtools is a unified Python ecosystem for working with USDA Forest Service Forest Inventory and Analysis (FIA) data. From raw survey plots to growth projections to spatial analysis—all with consistent interfaces and proper statistical methods.

Affiliation

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

The Tools

pyFIA — Data Foundation

High-performance Python API for FIA survey data. DuckDB + Polars backend delivers 10-100x faster queries than EVALIDator with exact statistical compatibility.

from pyfia import FIA, biomass, tpa

with FIA("database.duckdb") as db:
    db.clip_by_state(37)  # North Carolina
    trees = tpa(db, tree_domain="STATUSCD == 1")
    carbon = biomass(db, by_species=True)

gridFIA — Spatial Analysis

Access BIGMAP raster data for 327 tree species at 30m resolution. Zarr-based storage for efficient spatial queries and diversity calculations.

from gridfia import GridFIA

api = GridFIA()
api.download_species(state="Oregon", species_codes=["0131"])
metrics = api.calculate_metrics(calculations=["shannon_diversity"])

pyFVS — Growth Modeling

Python implementation of the Forest Vegetation Simulator (Southern variant). Simulate growth and yield for loblolly, shortleaf, longleaf, and slash pine.

from pyfvs import Stand

stand = Stand.initialize_planted(species="LP", trees_per_acre=500, site_index=70)
stand.grow(years=30)

askFIA — AI Interface

Natural language queries for forest data. Ask questions in plain English and get answers powered by the entire FIAtools ecosystem.

from askfia import AskFIA

fia = AskFIA()
answer = fia.ask("What's the total forest area in Maine?")

How They Connect

┌─────────────────────────────────────────────────────────────┐
│                         askFIA                              │
│                  Natural Language Interface                 │
└─────────────────────────┬───────────────────────────────────┘
                          │
          ┌───────────────┼───────────────┐
          ▼               ▼               ▼
    ┌──────────┐    ┌──────────┐    ┌──────────┐
    │  pyFIA   │    │ gridFIA  │    │  pyFVS   │
    │  Survey  │◄──►│  Spatial │◄──►│  Growth  │
    │   Data   │    │   Data   │    │  Models  │
    └──────────┘    └──────────┘    └──────────┘
          │               │               │
          └───────────────┼───────────────┘
                          ▼
    ┌─────────────────────────────────────────────────────────┐
    │                    FIA Data Sources                     │
    │         DataMart  ·  BIGMAP API  ·  EVALIDator          │
    └─────────────────────────────────────────────────────────┘

Installation

Install individual tools as needed:

pip install pyfia        # Survey data analysis
pip install gridfia      # Spatial raster analysis
pip install pyfvs        # Growth simulation
pip install askfia       # AI interface

Or clone this monorepo with all submodules:

git clone --recurse-submodules https://github.com/mihiarc/fiatools.git

Use Cases

Use Case Tools Description
Carbon Accounting pyFIA State/county carbon stock estimates with uncertainty
Timber Supply pyFIA + pyFVS Project future timber availability
Biodiversity gridFIA Species richness and diversity indices
Site Analysis pyFIA + gridFIA Combine survey and spatial data
Research Queries askFIA Natural language data exploration

By the Numbers

Metric Value
Tree species covered 327
Raster resolution 30m
FIA plots integrated 212,000+
Query speedup 10-100x

Documentation

Repository Structure

fiatools/
├── pyfia/           # Survey data analysis (submodule)
├── gridfia/         # Spatial analysis (submodule)
├── pyfvs/           # Growth modeling (submodule)
├── askfia/          # AI interface (submodule)
├── logos/           # PNG logos for all tools
├── landing-page/    # fiatools.org source
├── marketing/       # Conference materials
└── docs-templates/  # README headers, citations, brand guide

Citation

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

Contributing

Contributions welcome! Each tool has its own issue tracker:

License

MIT License — see individual repos for details.


Built with 🌲 by Chris Mihiar · USDA Forest Service Southern Research Station

About

FIAtools - Python ecosystem for USDA Forest Service forest inventory analysis | pyFIA, gridFIA, pyFVS, askFIA

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published