Skip to content
/ pyfvs Public

FVS-Python is a Python implementation of the Southern variant of the Forest Vegetation Simulator (FVS). It simulates the growth and yield of four southern yellow pine species.

License

Notifications You must be signed in to change notification settings

mihiarc/pyfvs

Repository files navigation

pyFVS

Forest growth modeling in Python

FIAtools Ecosystem PyPI Documentation License: MIT Python 3.9+

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


A Python implementation of the Forest Vegetation Simulator (FVS) Southern variant. Simulate growth and yield for loblolly, shortleaf, longleaf, and slash pine from age 0 to 50 years.

Supported Species

Code Species Scientific Name
LP Loblolly Pine Pinus taeda
SP Shortleaf Pine Pinus echinata
LL Longleaf Pine Pinus palustris
SA Slash Pine Pinus elliottii

Quick Start

pip install pyfvs
from pyfvs import Stand

# Initialize a planted stand
stand = Stand.initialize_planted(
    species="LP",
    trees_per_acre=500,
    site_index=70
)

# Simulate 50 years of growth
stand.grow(years=50)

# Get results
metrics = stand.get_metrics()
print(f"Final volume: {metrics['volume']:.0f} ft³/acre")

Growth Models

pyFVS implements individual tree growth models from FVS documentation:

Height-Diameter (Curtis-Arney)

height = 4.5 + p2 × exp(-p3 × DBH^p4)

Large Tree Diameter Growth

ln(DDS) = β₁ + β₂×ln(DBH) + β₃×DBH² + β₄×ln(CR) + β₅×RH + β₆×SI + ...

Small Tree Height Growth (Chapman-Richards)

height = c1 × SI^c2 × (1 - exp(c3 × age))^(c4 × SI^c5)

Architecture

Tree Initial State
       │
       ▼
   DBH >= 3.0? ──No──► Small Tree Model
       │                    │
      Yes                   ▼
       │            Height Growth
       ▼                    │
  Large Tree Model          ▼
       │            Height-Diameter
       ▼                    │
  Predict ln(DDS)           ▼
       │              Update DBH
       ▼                    │
  Calculate DBH Growth      │
       │                    │
       └────────┬───────────┘
                ▼
        Update Crown Ratio
                │
                ▼
        Crown Competition
                │
                ▼
        Updated Tree State

Configuration

Species parameters are stored in YAML configuration files:

# cfg/species/lp_loblolly_pine.yaml
species_code: "LP"
common_name: "Loblolly Pine"
height_diameter:
  p2: 243.860648
  p3: 4.28460566
  p4: -0.47130185
bark_ratio:
  b1: -0.48140
  b2: 0.91413

Output

pyFVS generates yield tables with standard forest metrics:

Age TPA QMD Height BA Volume
0 500 0.5 1.0 0.7 0
10 485 4.2 28.5 47.2 892
20 420 7.8 52.1 139.8 3,241
30 310 10.4 68.3 182.5 5,128
... ... ... ... ... ...

Integration with pyFIA

from pyfia import FIA
from pyfvs import Stand

# Get current stand conditions from FIA
with FIA("database.duckdb") as db:
    db.clip_by_state(37)
    stand_data = db.get_stand_summary(plot_id="123")

# Initialize pyFVS with FIA data
stand = Stand.from_fia_data(stand_data)
stand.grow(years=30)

The FIAtools Ecosystem

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

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

References

Citation

@software{pyfvs2025,
  title = {pyFVS: Python Implementation of the Forest Vegetation Simulator},
  author = {Mihiar, Christopher},
  year = {2025},
  url = {https://fiatools.org}
}

Affiliation

Developed in collaboration with USDA Forest Service Research & Development. pyFVS is a Python implementation of the Forest Vegetation Simulator and is part of the FIA Python Ecosystem.


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

About

FVS-Python is a Python implementation of the Southern variant of the Forest Vegetation Simulator (FVS). It simulates the growth and yield of four southern yellow pine species.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •