Calculates the stem branch length from a TreeQSM.
Usage
stem_branch_length_qsm(
branch,
treedata,
normalisation = "treeheight",
pc = NA,
buttress = FALSE,
thresholdR2 = 0.001,
slice_thickness = 0.06,
thresholdbuttress = 0.001,
maxbuttressheight = 7,
concavity = 4,
dtm = NA,
r = 5
)
Arguments
- branch
Branch field of a TreeQSM that is returned by
read_tree_qsm
.- treedata
Treedata field of a TreeQSM that is returned by
read_tree_qsm
.- normalisation
Can be either "dbh" or "treeheight". In case of "dbh" the mean of the lengths of the stem branches are divided by the DBH (Akerblom et al., 2017). In case of "treeheight" the mean is divided by the tree height (Terryn et al., 2020). When something different than "dbh" or "treeheight" is given, no normalisation is done. Default is no normalisation.
- pc
The tree point cloud as a data.frame with columns X,Y,Z. Output of
read_tree_pc
. Default is NA and indicates no tree point cloud is available. Only relevant if normalisation equals "dbh" or "treeheight".- buttress
Logical (default=FALSE), indicates if the trees have buttresses. Only relevant if pc is available and normalisation equals "dbh".
- thresholdR2
Numeric value (default=0.001). Parameter of the
dbh_pc
function used to calculate the diameter at breast height. Only relevant if the tree point cloud is available and buttress == FALSE.- slice_thickness
Numeric value (default = 0.06). Parameter of the
dbh_pc
function used to calculate the diameter at breast height. Only relevant if the tree point cloud is available and buttress == FALSE.- thresholdbuttress
Numeric value (default=0.001). Parameter of the
dab_pc
anddab_pc
functions used to calculate the diameter at breast height and above buttresses. Only relevant if the tree point cloud is available.- maxbuttressheight
Numeric value (default=7). Parameter of the
dab_pc
function used to calculate the diameter at breast height. Only relevant if the tree point cloud is available and buttress == TRUE.- concavity
Numeric value (default=4) concavity for the computation of the functional diameter using a concave hull based on
concaveman
. only relevant when a point cloud is provided.- dtm
The digital terrain model as a data.frame with columns X,Y,Z (default = NA). If the digital terrain model is in the same format as a point cloud it can also be read with
read_tree_pc
. only relevant when a point cloud is provided.- r
Numeric value (default=5) r which determines the range taken for the dtm. Should be at least the resolution of the dtm. Only relevant when a dtm is provided.
Value
The stem branch length. Unitless with normalisation, in meters without normalisation. NaN when there are no stem branches.
Details
The stem branch length is defined as "the average length of 1st order
branches. Can be normalised by DBH or tree height" (Akerblom et al., 2017 &
Terryn et al., 2020). DBH and tree height are calculated with
dbh
and tree_height
.
References
Akerblom, M., Raumonen, P., Makipaa, R., & Kaasalainen, M. (2017). Automatic tree species recognition with quantitative structure models. Remote Sensing of Environment, 191, 1-12.
Terryn, L., Calders, K., Disney, M., Origo, N., Malhi, Y., Newnham, G., ... & Verbeeck, H. (2020). Tree species classification using structural features derived from terrestrial laser scanning. ISPRS Journal of Photogrammetry and Remote Sensing, 168, 170-181.
Examples
if (FALSE) {
# Read tree qsm and calculate the stem branch radius
# from Akerblom et al. (2017)
qsm <- read_tree_qsm(QSM_path = "path/to/qsm.mat")
sbl <- stem_branch_length_qsm(
branch = qsm$branch,
treedata = qsm$treedata,
normalisation = "dbh"
)
# with point cloud data for a buttressed tree
pc_tree <- read_tree_pc(PC_path = "path/to/point_cloud.txt")
sbl <- stem_branch_length_qsm(
branch = qsm$branch, treedata = qsm$treedata,
normalisation = "dbh", pc = pc_tree,
buttress = TRUE
)
# from Terryn et al. (2020)
sbl <- stem_branch_length_qsm(
branch = qsm$branch, treedata = qsm$treedata,
normalisation = "treeheight"
)
# with point cloud data
pc_tree <- read_tree_pc(PC_path = "path/to/point_cloud.txt")
sbl <- stem_branch_length_qsm(
branch = qsm$branch, treedata = qsm$treedata,
normalisation = "treeheight", pc = pc_tree
)
}