pyforestry.base.timber_bucking package

Submodules

pyforestry.base.timber_bucking.bucker module

Base class for log bucking algorithms.

class pyforestry.base.timber_bucking.bucker.Bucker[source]

Bases: object

Simple base class for bucking implementations.

pyforestry.base.timber_bucking.nasberg_1985 module

class pyforestry.base.timber_bucking.nasberg_1985.BuckingConfig(timber_price_factor: float = 1.0, pulp_price_factor: float = 1.0, use_downgrading: bool = False, save_sections: bool = False)[source]

Bases: object

pulp_price_factor: float = 1.0
save_sections: bool = False
timber_price_factor: float = 1.0
use_downgrading: bool = False
class pyforestry.base.timber_bucking.nasberg_1985.BuckingResult(species_group: str, total_value: float, top_proportion: float, dead_wood_proportion: float, high_stump_volume_proportion: float, high_stump_value_proportion: float, last_cut_relative_height: float, volume_per_quality: ~typing.List[float], timber_price_by_quality: ~typing.List[float], vol_fub_5cm: float, vol_sk_ub: float, DBH_cm: float, height_m: float, stump_height_m: float, diameter_stump_cm: float, taperDiams_cm: ~typing.List[float], taperHeights_m: ~typing.List[float], sections: ~typing.List[~pyforestry.base.timber_bucking.nasberg_1985.CrossCutSection] = <factory>)[source]

Bases: Mapping

Encapsulates the output of the cross-cutting process.

DBH_cm: float
dead_wood_proportion: float
diameter_stump_cm: float
height_m: float
high_stump_value_proportion: float
high_stump_volume_proportion: float
last_cut_relative_height: float
plot()[source]
sections: List[CrossCutSection]
species_group: str
stump_height_m: float
taperDiams_cm: List[float]
taperHeights_m: List[float]
timber_price_by_quality: List[float]
top_proportion: float
total_value: float
vol_fub_5cm: float
vol_sk_ub: float
volume_per_quality: List[float]
class pyforestry.base.timber_bucking.nasberg_1985.CrossCutSection(start_point: int, end_point: int, volume: float, top_diameter: float, value: float, species_group: str, timber_proportion: float = 0.0, pulp_proportion: float = 0.0, cull_proportion: float = 0.0, fuelwood_proportion: float = 0.0, quality: QualityType = QualityType.Undefined)[source]

Bases: object

Container for one log section in the final cutting solution.

cull_proportion: float = 0.0
end_point: int
fuelwood_proportion: float = 0.0
pulp_proportion: float = 0.0
quality: QualityType = 0
species_group: str
start_point: int
timber_proportion: float = 0.0
top_diameter: float
value: float
volume: float
class pyforestry.base.timber_bucking.nasberg_1985.Nasberg_1985_BranchBound(timber: Timber, pricelist: Pricelist, taper_class: Type[Taper] | None = None)[source]

Bases: object

Vectorised version – interface identical to the earlier class.

calculate_tree_value(*, min_diam_dead_wood: float, config: BuckingConfig = BuckingConfig(timber_price_factor=1.0, pulp_price_factor=1.0, use_downgrading=False, save_sections=False)) BuckingResult[source]
class pyforestry.base.timber_bucking.nasberg_1985.QualityType(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

ButtLog = 1
Fuelwood = 6
LogCull = 5
MiddleLog = 2
Pulp = 4
TopLog = 3
Undefined = 0

Module contents

class pyforestry.base.timber_bucking.Nasberg_1985_BranchBound(timber: Timber, pricelist: Pricelist, taper_class: Type[Taper] | None = None)[source]

Bases: object

Vectorised version – interface identical to the earlier class.

calculate_tree_value(*, min_diam_dead_wood: float, config: BuckingConfig = BuckingConfig(timber_price_factor=1.0, pulp_price_factor=1.0, use_downgrading=False, save_sections=False)) BuckingResult[source]