Skip to contents

Calculates tree metrics from a QSM

Usage

tree_metrics(cylinder)

Arguments

cylinder

QSM cylinder data frame

Value

Returns a list of tree metric data frames and synthetic point cloud

Details

Calculates detailed tree, branch, and segment metrics from a QSM. The outputs include all of the standard outputs from TreeQSM, and also additional variables, including, but not limited to, growth length, reverse branch order, branch segment or node relationships, and distances from twigs and the base of the tree, across various distribution metrics. Also included is a simulated point cloud of the tree, based on the QSM cylinder radii. When corrected with Real Twig, this allow for the testing and validation of point cloud diameter overestimation throughout the tree.

References

Raumonen P, Kaasalainen M, Åkerblom M, Kaasalainen S, Kaartinen H, Vastaranta M, Holopainen M, Disney M, Lewis P (2013). “Fast Automatic Precision Tree Models from Terrestrial Laser Scanner Data.” Remote Sensing, 5(2), 491–520. doi:10.3390/rs5020491 .

Hackenberg J, Spiecker H, Calders K, Disney M, Raumonen P (2015). “SimpleTree —An Efficient Open Source Tool to Build Tree Models from TLS Clouds.” Forests, 6(11), 4245–4294. doi:10.3390/f6114245 .

Hackenberg J, Bontemps J (2023). “Improving quantitative structure models with filters based on allometric scaling theory.” Applied Geomatics, 15. doi:10.1007/s12518-023-00537-4 .

Yang W, Wilkes P, Vicari MB, Hand K, Calders K, Disney M (2024). “Treegraph: tree architecture from terrestrial laser scanning point clouds.” Remote Sensing in Ecology and Conservation. ISSN 2056-3485, doi:10.1002/rse2.399 .

Examples


## TreeQSM Processing Chain
file <- system.file("extdata/QSM.mat", package = "rTwig")
cylinder <- import_qsm(file)$cylinder
#> Importing TreeQSM .mat
cylinder <- update_cylinders(cylinder)
#> Updating Cylinder Ordering
#> Calculating Total Children
#> Building Cylinder Network
#> Verifying Topology
#> Calculating Growth Length
#> Calculating Reverse Branch Order
#> Calculating Branch Segments
#> Calculating Alternate Branch Numbers
#> Calculating Distance From Base
#> Calculating Average Distance To Twigs
metrics <- tree_metrics(cylinder)
#> Calculating Branch Metrics
#> Calculating Segment Metrics
#> Calculating Tree Metrics
#> Generating Point Cloud
#> Calculating Crown Metrics
#> Calculating Tree Distributions
#> Calculating Branch Distributions
#> Calculating Segment Distributions
#> Calculating Stem Taper
#> Calculating Spreads
#> Calculating Alternate Branch Metrics
names(metrics)
#>  [1] "branch"                "segment"               "cloud"                
#>  [4] "tree"                  "tree_height_dist"      "tree_diameter_dist"   
#>  [7] "tree_zenith_dist"      "tree_azimuth_dist"     "branch_diameter_dist" 
#> [10] "branch_height_dist"    "branch_angle_dist"     "branch_zenith_dist"   
#> [13] "branch_azimuth_dist"   "branch_order_dist"     "segment_diameter_dist"
#> [16] "segment_height_dist"   "segment_angle_dist"    "segment_zenith_dist"  
#> [19] "segment_azimuth_dist"  "segment_order_dist"    "stem_taper"           
#> [22] "spreads"               "vertical_profile"      "branch_alt"           

## SimpleForest Processing Chain
file <- system.file("extdata/QSM.csv", package = "rTwig")
cylinder <- read.csv(file)
cylinder <- update_cylinders(cylinder)
#> Updating Branch Ordering
#> Calculating Total Children
#> Building Cylinder Network
#> Verifying Topology
#> Calculating Distance From Base
#> Calculating Average Distance To Twigs
metrics <- tree_metrics(cylinder)
#> Calculating Branch Metrics
#> Calculating Segment Metrics
#> Calculating Tree Metrics
#> Generating Point Cloud
#> Calculating Crown Metrics
#> Calculating Tree Distributions
#> Calculating Branch Distributions
#> Calculating Segment Distributions
#> Calculating Stem Taper
#> Calculating Spreads
#> Calculating Alternate Branch Metrics
names(metrics)
#>  [1] "branch"                "segment"               "cloud"                
#>  [4] "tree"                  "tree_height_dist"      "tree_diameter_dist"   
#>  [7] "tree_zenith_dist"      "tree_azimuth_dist"     "branch_diameter_dist" 
#> [10] "branch_height_dist"    "branch_angle_dist"     "branch_zenith_dist"   
#> [13] "branch_azimuth_dist"   "branch_order_dist"     "segment_diameter_dist"
#> [16] "segment_height_dist"   "segment_angle_dist"    "segment_zenith_dist"  
#> [19] "segment_azimuth_dist"  "segment_order_dist"    "stem_taper"           
#> [22] "spreads"               "vertical_profile"      "branch_alt"