Calculates tree metrics from a QSM
Arguments
- cylinder
QSM cylinder data frame
- verify
Verify QSM topology. Defaults to TRUE. If
verify = TRUE
, only topologically connected structures (e.g. a whole a tree or an individual branch) are eligible to run. This ensures all metrics are correct and verified. Ifverify = FALSE
, the metrics are run, but not verified. This is strongly discouraged, but can enable the calculation of tree metrics on topologically disconnected structures.
Details
Calculates detailed tree, branch, and segment metrics from a QSM. Valid inputs require a connected QSM, which can be a whole tree or an individual branch. 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 allows for the testing and validation of point cloud diameter overestimation throughout the tree.
References
TreeQSMrTwig
growth_parameter1rTwig
growth_parameter2rTwig
treegraph2rTwig
path_fractionrTwig
Examples
## TreeQSM Processing Chain
file <- system.file("extdata/QSM.mat", package = "rTwig")
cylinder <- import_treeqsm(file)$cylinder
#> Importing TreeQSM
cylinder <- update_cylinders(cylinder)
#> Updating Cylinder Ordering
#> Calculating Total Children
#> Building Cylinder Network
#> Caching Network
#> Verifying Topology
#> Calculating Growth Length
#> Calculating Reverse Branch Order
#> Calculating Branch Segments
#> Calculating Alternate Branch Numbers
#> Calculating Path Metrics
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"
#> [25] "version" "run_date"
## SimpleForest Processing Chain
file <- system.file("extdata/QSM.csv", package = "rTwig")
cylinder <- read.csv(file)
cylinder <- update_cylinders(cylinder)
#> Finding Branches
#> Calculating Total Children
#> Building Cylinder Network
#> Caching Network
#> Verifying Topology
#> Calculating Path Metrics
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"
#> [25] "version" "run_date"