Learn R Programming

TreeLS (version 1.0)

stem.hough: Stem denoising algorithm: Hough Transform

Description

This function is meant to be used inside stemPoints. It applies an adapted version of the Hough Transform for circle search. Mode details are given in the sections below.

Usage

stem.hough(hstep = 0.5, max_radius = 0.25, hbase = c(1, 2.5),
  pixel_size = 0.025, min_density = 0.1, min_votes = 3)

Arguments

hstep

numeric - height interval to perform circle search.

max_radius

numeric - approximately the largest stem cross section radius expected in the point cloud.

hbase

numeric vector of length 2 - tree base height interval to initiate the circle search.

pixel_size

numeric - pixel side length to discretize the point cloud layers while performing the Hough Transform circle search.

min_density

numeric - between 0 and 1 - minimum point density within a pixel evaluated on the Hough Transform - i.e. only dense point clousters will undergo circle search.

min_votes

integer - Hough Transform parameter - minimum number of circle intersections over a pixel to assign it as a circle center candidate.

<code>LAS@data</code> Special Fields

Meaninful fields in the output:

  • TreeID: unique tree ID of the point - available when a tree_map is provided

  • Stem: TRUE for stem points

  • Segment: stem segment number (from bottom to top)

  • Radius: approximate radius of the point's stem segment estimated by the Hough Transform - always a multiple of the pixel_size

  • Votes: votes received by the stem segment's center through the Hough Transform

Adapted Hough Transform

The Hough Transform circle search algorithm used in TreeLS applies a constrained circle search on discretized point cloud layers. Tree-wise, the circle search is recursive, in which the search for circle parameters of a stem section is constrained to the feature space of the stem section underneath it. Initial estimates of the stem's feature space are performed on a baselise stem segment - i.e. a low height interval where a tree's bole is expected to be clearly visible in the point cloud. The algorithm is described in detail by Conto et al. (2017).

This adapted version of the algorithm is very robust against outliers, but not against forked or leaning stems.

References

Conto, T. ; Olofsson, K. ; Gorgens, E. B. ; Rodriguez, L. C. E. ; Almeida, G. Performance of stem denoising and stem modelling algorithms on single tree point clouds from terrestrial laser scanning. Computers and Electronics in Agriculture, v. 143, p. 165-176, 2017.

Examples

Run this code
# NOT RUN {
file = system.file("extdata", "spruce.laz", package="TreeLS")
tls = readTLS(file)

### identify stem points
tls = stemPoints(tls, method = stem.hough(max_radius=.2))
plot(tls, color='Stem')

# }

Run the code above in your browser using DataLab