#include <standgrowthcurve.h>
◆ ~StandGrowthCurve()
◆ StandGrowthCurve()
◆ addYieldTable()
◆ checkAndUpdateYieldTables()
| void checkAndUpdateYieldTables |
( |
| ) |
|
|
private |
StandGrowthCurve._softwoodYieldTables and StandGrowthCurve._hardwoodYieldTables should have valid volume data for each age up to the maximum stand age
Each yield table must have the same pairs of [age, volume] and the age should be up to the maximum stand age
If one yield table has less data of volume, repeatedly append the yield data with the last available volume.Use vector.push_back(lastAvailableVolume) instead of use resize() and then assign value
- Returns
- void
◆ getAnnualStandMaximumVolume()
| double getAnnualStandMaximumVolume |
( |
| ) |
const |
◆ getForestTypeConfiguration()
◆ getPERDFactor()
◆ getStandAgeWithMaximumVolume()
| int getStandAgeWithMaximumVolume |
( |
| ) |
const |
◆ getStandSoftwoodVolumeRatioAtAge()
| double getStandSoftwoodVolumeRatioAtAge |
( |
int |
age | ) |
const |
◆ getStandTotalVolumeAtAge()
| double getStandTotalVolumeAtAge |
( |
int |
age | ) |
const |
◆ hasYieldComponent()
◆ initStandYieldDataStorage()
| void initStandYieldDataStorage |
( |
| ) |
|
|
private |
◆ processStandYieldTables()
| void processStandYieldTables |
( |
| ) |
|
◆ resolveStandGrowthCurveMaxAge()
| void resolveStandGrowthCurveMaxAge |
( |
| ) |
|
|
private |
◆ setForestTypeConfiguration()
◆ setPERDFactor()
◆ spuID()
◆ standGrowthCurveID()
| Int64 standGrowthCurveID |
( |
| ) |
const |
◆ standMaxAge()
| int standMaxAge |
( |
| ) |
const |
◆ summarizeStandComponentYieldTables()
| void summarizeStandComponentYieldTables |
( |
| ) |
|
|
private |
First, try to sum up the softwood. If StandGrowthCurve._softwoodYieldTables is not empty, loop over the softwood yield tables, If the size of each yield table is > 0, loop over ages of each yield table in the range 0 to StandGrowthCurve._standMaxAge
Record the stand total volume at this age as the total softwood volume at this age, add the value of the yield to StandGrowthCurve._standMerchVolumeAtEachAge at key age
Second, try to sum up the hardwood and update the stand total volume at an age.
If StandGrowthCurve._softwoodYieldTables is empty for ages in the range 0 to StandGrowthCurve._standMaxAge, set the value of each age in StandGrowthCurve._standSoftwoodVolumeRatioAtEachAge to 1.0
Else, assign a variable hardwoodVolumeTotalAgAge as 0, loop over each of the hardwood yield tables, add up the hardwood volume at this age to hardwoodVolumeTotalAgAge
Get the stand softwood volume at this age using StandGrowthCurve._standMerchVolumeAtEachAge and assign it to variable softwoodVolumeTotalAgAge
Calculate softwoodRatioAtAge as softwoodVolumetotalAtAge / (softwoodVolumetotalAtAge + hardwoodVolumeTotalAgAge), if denominator is not 0, else set softwoodRatioAtAge to 1
Update the stand total volume at this age by adding hardwoodVolumeTotalAgAge
Set StandGrowthCurve._standSoftwoodVolumeRatioAtEachAge at the current age to softwoodRatioAtAge
- Returns
- void
◆ updateStandMaximumVolumeAgeInfo()
| void updateStandMaximumVolumeAgeInfo |
( |
| ) |
|
|
private |
◆ _hardwoodYieldTables
◆ _hwForestTypeConfiguration
◆ _hwPERDFactor
◆ _okToSmooth
◆ _softwoodYieldTables
◆ _spuID
◆ _standAgeForMaximumMerchVolume
| int _standAgeForMaximumMerchVolume |
|
private |
◆ _standGrowthCurveID
| Int64 _standGrowthCurveID |
|
private |
◆ _standMaxAge
◆ _standMaximumMerchVolume
| double _standMaximumMerchVolume |
|
private |
◆ _standMerchVolumeAtEachAge
| std::vector<double> _standMerchVolumeAtEachAge |
|
private |
◆ _standSoftwoodVolumeRatioAtEachAge
| std::vector<double> _standSoftwoodVolumeRatioAtEachAge |
|
private |
◆ _swForestTypeConfiguration
◆ _swPERDFactor
The documentation for this class was generated from the following files:
- /home/runner/work/moja.canada/moja.canada/Source/moja.modules.cbm/include/moja/modules/cbm/standgrowthcurve.h
- /home/runner/work/moja.canada/moja.canada/Source/moja.modules.cbm/src/standgrowthcurve.cpp