Skip to contents

Compute the stem base position, metroid of the crown projected area and the stem height of a tree

Usage

tree_pos(tree, z_min = 100L, h_xy = 0.3, res = 0.1, tree_name = NULL)

Arguments

tree

tree_pc or data.frame (x, y, z) of the tree point cloud. Coordinates have to be in metric system!

z_min

integer of length 1 describing the the minimum number of points needed in the lowermost 1 voxel depth Z layer to consider it part of the tree. Default is 100. If changing the voxel resolution (res) from the default value of 0.1, different settings may be necessary.

h_xy

numeric of length 1 describing the height range in m over the stem base over which the x and y positions are used to calculate the x and y coordinates of the stem base. Default is 0.3 m.

res

res numeric of length 1 defining the resolution of a voxel as passed on to VoxR::vox(). Defaults to 0.1 (10 cm voxel size).

tree_name

character vector of length 1 with the name of the tree as returned with the output object. Defaults to NULL (take name from tree argument).

Value

object of class "tree_pos" containing the following components:

  • base_pos numeric vector of length 3 with the x, y, z coordinates of the tree base position.

  • crown_pos numeric vector of length 3 with the x, and y coordinates of the central point of the crown projected area and the z position of the stem base identified as above.

  • height numeric of length one containing the tree height in m.

  • cpa_m2 numeric of length one containing the crown projected area in m².

  • cpa_xy data.table with the x and y positions of the crown.

  • tree_name name of the object used as the "tree" argument, or name specified by the user.

Details

Calculates the stem base position, metroid of the crown projected area and height of a tree from a data.frame with a point cloud as created with read_pc().

For the stem base, the z position is taken as the z position of the first voxel layer containing at least z_min points of the point cloud (the standard value is 100). This is done to avoid outlying values affecting the calculated stem base height and should usually be consistent with taking the median z value of the lowermost group of points, but with a lower sensitivity to outliers. The x and y position of the stem base are calculated as the median of the voxelized x and y coordinates of all voxels in the first h_xy m over the stem base (on default: first 0.3 m - values that are too low should be avoided here as the stem shape may be irregular close to the ground).

The crown projected area is computed as the projected area of all voxels belonging to the tree.

The central point of the crown projected area is computed as the median of the x and y position of the projected area of the tree.

The height is based on difference between the z value of the highest voxel belonging to the tree over and the z value identified for the stem base.

The calculation is done on voxels to ensure consistency with downstream analyses and to reduce bias caused by inhomogeneous point densities on different sides of the stem.

In our opinion, in most cases it makes more sense to calculate competition indices based on the central point of the tree crown than based on the stem base because for strongly inclined trees a cylinder constructed around its base may contain no voxels of the crown of the central tree at all.

See also

read_pc() for details on reading point clouds, compete_pc() for computing tree competition from point cloud objects.

Examples

if (FALSE) { # \dontrun{
# Read the tree point cloud
tree <- read_tree(path = "path/to/tree_point_cloud.txt")
# Get the position of this tree (x, y, z)
pos <- tree_pos(tree)
pos
} # }