A C++ implementation of National Scale Volume and Biomass estimators (NSVB
)
The National Scale Volume and Biomass Estimators[^1] (NSVB
) were implemented in R[^2] by Virginia Tech. The performance of the code is hampered by the interpretive nature of R. To provide a higher performance API the Virginia Tech code is implemented in C++23.
The dry weight in pounds is estimated for the following tree components:
Additionally, above ground biomass (AGB) is computed.
Functions are included to compute total cubic foot volume inside and outside bark using the NSVB
system.
The following functions are exposed:
biomass_components()
: Computes biomass components in pounds given:
fia_spp
), division
), vtotib
), dbh
) in inches, and tht
) in feet.compute_green_tons()
: Compute green tons outside bark of a log given:
fia_spp
, cfvolob
),cfvolib
).compute_volib()
: Computes total cubic volume inside bark (vtotib
) (cubic feet) given:
fia_spp
,division
,dbh
,tht
.compute_volob()
: Computes total cubic volume outside bark (vtotob
) (cubic feet) given:
fia_spp
,division
,dbh
,tht
.biomass_components
returns a BIOMASS_COMP
structure defined in nsvb.hpp
.
If an fia_spp
is not found, the system uses 999
(other or unknown live tree).
A simple program is available to test your compilation. It accepts fia_spp
, dbh
, tht
, and optionally division
on the command line. The makefile
compiles and optionally executes the test program. A successful compilation following by running test
should result in:
species = 202, division = M240, dbh = 10, height = 60
Total Volume Inside Bark (cubic feet) = 12.22
Total Volume Outside Bark (cubic feet) = 15.83
Green Lbs = 652.2
Biomass
AGB = 518.6
Bark = 56.4
Branch = 94.35
foliage = 40.21
wood = 327.7
total = 478.4
A R package accessing the NSVB API is located in ./nsvbR
and the most recent Windows Binary and tarballs are in the root directory of this repository. Rcpp
is required
to install and run the package.
The package provides the following R equivalents to the C++ functions:
NSVB
makes a direct estimate of total biomass. A separate estimate of total biomass is computed as a sum of the biomass components of the tree. The component estimates are rebalanced to scale to the direct estimate.[^1]: Westfall , James A.; Coulston, John W.; Gray, Andrew N.; Shaw, John D.; Radtke, Philip J.; Walker, David M.; Weiskittel, Aaron R.; MacFarlane, David W.; Affleck, David L.R.; Zhao, Dehai; Temesgen, Hailemariam; Poudel, Krishna P.; Frank, Jereme M.; Prisley, Stephen P.; Wang, Yingfang; Sánchez Meador, Andrew J.; Auty, David; Domke, Grant M. 2024. A national-scale tree volume, biomass, and carbon modeling system for the United States. Gen. Tech. Rep. WO-104. Washington, DC: U.S. Department of Agriculture, Forest Service. 37 p. https://doi.org/10.2737/WO-GTR-104.
[^2]: R Core Team (2024). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. https://www.R-project.org/
[^3]: Ecological divisions specifically recognized are: 130, 210, 220, 230, 240, 260, 340, M210, M220, M230, M240, M260, M310, M330.
[^4]: Miles, Patrick D.; Smith, W. Brad. 2009. Specific gravity and other properties of wood and bark for 156 tree species found in North America. Res. Note NRS-38. Newtown Square, PA: U.S. Department of Agriculture, Forest Service, Northern Research Station. 35 p. https://doi.org/10.2737/NRS-RN-38.