Calculates the crown height from a TreeQSM.
Arguments
- treedata
Treedata field of a TreeQSM that is returned by
read_tree_qsm
.- cylinder
Cylinder field of a TreeQSM that is returned by
read_tree_qsm
.- 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.- 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.
Details
The crown height is defined as "the vertical distance between the highest and
the lowest crown cylinder relative to the tree height" (Akerblom et al., 2017
& Terryn et al., 2020). The tree height is calculated with
tree_height
. Crown cylinders are determined with
crownset_qsm
.
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 crown height
qsm <- read_tree_qsm(QSM_path = "path/to/qsm.mat")
ch <- crown_height_qsm(treedata = qsm$treedata, cylinder = qsm$cylinder)
# with point cloud data
pc_tree <- read_tree_pc(PC_path = "path/to/point_cloud.txt")
ch <- crown_height_qsm(
treedata = qsm$treedata, cylinder = qsm$cylinder,
pc = pc_tree
)
}