Releases: mihiarc/pyfvs
Releases · mihiarc/pyfvs
v0.3.0 — Multi-Variant + Taper Volume
What's New
Taper-Based Volume System
Replaced combined-variable equations with NVEL taper models for accurate stem profile and merchandising calculations.
- Clark model — 3-segment profile with analytic integration for Eastern variants (SN, NE, CS, LS) using R8 and R9 coefficients
- Flewelling model — 4-segment variable-shape profile for Western variants (PN, WC, OP) covering Douglas-fir, Western Hemlock, and Western Red Cedar
- Merchandising — Scribner Decimal C, International 1/4", and Doyle board-foot rules with per-log bucking and variant-specific trim/stump rules
- Combined-variable equations retained as automatic fallback for species without taper coefficients
New Regional Variants (Full Infrastructure)
Seven variants now have complete variant-specific bark ratio, crown ratio, mortality, volume, and SDI models:
| Variant | Region | Species | Smoke Test (50yr) |
|---|---|---|---|
| SN | Southern US | 90 | 500 TPA LP SI=70 → 7,793 ft³/ac |
| LS | Lake States | 67 | 500 TPA RN SI=65 → 7,774 ft³/ac |
| PN | Pacific NW Coast | 39 | 400 TPA DF SI=120 → 15,029 ft³/ac |
| WC | West Cascades | 37 | 400 TPA DF SI=120 → 13,246 ft³/ac |
| NE | Northeast | 108 | 500 TPA RM SI=60 → 89 BA |
| CS | Central States | 96 | 500 TPA WO SI=70 → 2,743 ft³/ac |
| OP | ORGANON PNW | 18 | 400 TPA DF SI=120 → 28,395 ft³/ac |
Three additional variants (CA, OC, WS) have diameter growth models and species configs but use default SN infrastructure for other components.
Variant-Specific Models Added
- Bark ratio:
LSBarkRatioModel(constant, Raile 1982),PNBarkRatioModel(3 equation types, 16 groups),CSBarkRatioModel - Crown ratio:
LSCrownRatioModel(TWIGS),PNCrownRatioModel(Weibull + Redwood logistic),CSCrownRatioModel - Mortality:
LSMortalityModel/CSMortalityModel(4-group background + VARADJ), standard SDI model for PN/WC/OP with variant-specific maximums - SDI maximums: Per-species values for all 7 implemented variants
Bug Fixes
- Fixed RELHT propagation — stand now sets
tree._top_heightbeforegrow() - Fixed mortality probability — changed from additive to multiplicative
1-(1-mort)*(1-rip) - Fixed O(n²) PBAL calculation — now O(n) via cumulative sum
- Fixed WC/PN bark ratio parameter passing (was hardcoded 0.90)
- Fixed version mismatch between
__init__.pyandpyproject.toml
Other Changes
- Updated project description and keywords for multi-variant coverage
- Updated README with variant comparison tables, volume system docs, and multi-variant examples
- Python 3.12+ required (dropped 3.9-3.11)
- ~1,000 tests, ~21,000 lines of source
Install
pip install fvs-python==0.3.0