HT5 - Measuring 1.30 m diameter automatically

...version française de cette page
This tutorial uses the following script in the Computree HowTo subfolder: HT5_Measuring_DBH_automatically.xsct2


This tutorial shows how to :

  1. Automatically detect individual tree stems, tree positions and diameters at breast heigh (DBH) from terrestrial laser scans (TLS)
  2. Understand and configure steps’ parameters
  3. Export results attributes to .csv file

Load data

Please refer to tutorial HT1 - Load, visualize, crop and export a T-Lidar point cloud at the Load a ploint cloud section.

For best results, use multiple scans. Stem detection is highly affected by data quality! We seek to maximize objects’ reprensation and minimize occlusion in the point cloud.

Plot extraction (optional step)

Please refer to tutorial HT1 - Load, visualize, crop and export a T-Lidar point cloud at the Plot extraction section.

Points density reduction (optional step)

The PB_stepReducePointsDensity step is found in the base plugin (base / Points clouds / Points density reduction).

If you are using multiple scans, it is recommended to add a step for point density reduction to decrease calculation time. Depending on your computer performances, a 0.5 or 1 cm Grid resolution should be fine.

A high resolution point cloud (a large number of points per cubic centimeter) increases the calculation time.

Ground / vegetation separation

Please refer to tutorial HT2 - Create a Digital Terrain Model from a T-Lidar point cloud.

Horizontal clustering

The OE_StepHorizontalClustering04 step is found in the onfensamv2 plugin (onfensamv2 / Clustering by horizontal slices)

Make sure that the input results are Vegetation points! To access this window right click on the step and select Config. input results

This step creates horixontal clusters. The scene is divided in horizontal layers of a specified Thickness. Then, for each layer, points are gathered in clusters according to the distance between them. The Maximum distance between two points of the same group must be indicated.

Results of the horizontal clustering:

Each color represents an individual cluster.

Cluster filtering

The OE_StepFilterClustersBySize step is found in the onfensamv2 plugin (onfensamv2 / Filtering of clusters by points number)

This step filters undersized clusters. Clusters with a number of points strictly lower than the Minimum points number are eliminated.

The point cloud resolution and the horinzontal layers’ thickness from the previous step influence this parameter. If the number of points per cubic centimeter is low and the layers are thin, the number of points per cluster will be low from the beginning.

Merge clusters in logs

The OE_StepDetectSection07 step is found in the onfensamv2 plugin (onfensamv2 / Vertical merging of clusters in logs)

This step verticaly aggregates clusters in sections (logs). A Vertical distance threshold is indicated to compare clusters in pairs. If both clusters’ bounding boxes intersect on that distance threshold, clusters are merged. A log stops when there is a vertical break in the cluster. Scan occlusions or presence of a branch are commun causes.

Results of the clusters merging in logs:

Each color reprensents an individual log.

Filter logs

The OE_StepFilterGroupsByGroupsNumber step is found in the onfensamv2 plugin (onfensamv2 / Filtering lvl 1 groups / number of lvl 2 groups)

This generic method removes groups (logs) that have a poor number of subgroups (clusters). Level 1 groups (logs) are eliminated if they got an insufficient Level 2 number of groups (clusters). This step is used to clear most of the small branches and false logs.

Results of the log filtering:

Merge neighbour sections

The OE_StepMergeNeighbourSections04 step is found in the onfensamv2 plugin (onfensamv2 / Merging of parallel logs)

This step merges adjacent logs. When there is occlusion in the point cloud, branches can be cut so that two logs are created instead of one:

First, all clusters of a log are recreates according to a specified Thickness (in Z). Then, logs belonging to the same tree are merged. This tool takes the following parameters:
  • The Search distance for neighbours parameter is used for calculation optimization.
  • The Maximum XY distance between cluster’s barycenters. If the horizontal distance between compared barycenters is greater than this parameter, logs will not be merged.
  • The Maximum Z distance between cluster’s centroid. If the vertical distance between compared barycenters is greater than this parameter, logs will not be merged.
  • The Maximum inscreasing factor is used so that the merge does not create too much distance between the new barycenter and cluster points. An increasing factor of 2 means that the distance between the new barycenter and cluster points can be doubled.

Merge aligned logs

The OE_StepMergeEndToEndSections04 step is found in the onfensamv2 plugin (onfensamv2 / Merging of aligned logs)

This step merges logs that are aligned in direction. The step operates this way (see also the technical diagram below):

  • Clusters are recreated with the specified Z-thickness of groups
  • Logs are then compared in pairs. If the distance between two logs is lower than the Maximum distance, logs can be merged.
  • Imaginary lines between each log’s clusters are created. The Number of barycenters to consider must be specified.
  • The maximal distance between the line and the end of the first log is calculated (maxDist). The distance between the first log’s line and the second log’s line must not be higher than maxDist * a Multiplicative factor.
  • A Tolerated Z overlapping is also specified.

Technical diagram:

Results of the fusion:

You can notice an exemple of vertical overlaping on the left image.

Set coordinates

The OE_StepSetFootCoordinatesVertically step is found in the onfensamv2 plugin (onfensamv2 / Addition od a base coordinante by log // DTM)

This step takes two input results: the Digital Terrain Model and the Merged logs!

There are no parameters needed. This step sets coordinates for tree positions by projecting the lowest cluster on the MNT.

Fit and filter cylinders

The OE_StepFitAndFilterCylindersInSections step is found in the onfensamv2 plugin (onfensamv2 / Fitting / Filtering of cylinders by log)

This step creates cylinders and filters them depending of their goodness of fit. The tool requires a Minimum radius and Maximum radius so that small or large trees are not represented. Cylinders can be filtered on the Absolute error and/or the Relative error. They also can be filtered on their verticality, a Maximum vertical angle from solar zenith must be specified.

Results of the cylinder fitting:

Compute cylinders diameter

The OE_StepExtractDiametersFromCylinders step is found in the onfensamv2 plugin (onfensamv2 / Computing of cylinders mean diameter by log)

This tool compute trees’ diameter at breast height (DBH). In order to do that, a cercle is adjusted on a previously created cylinder. A Bottom height and a Top height for evaluation are specified. Cercles radii are calculated between these values in order to calculate a regression. The Reference height value (generally 1.30 meters) is interpolated of this regression. The Maximal taper is used to insure that no abberant cylinders are used in the calculation. A Minimum number of cylinders to adjust a circle is also specified.

Results visualization

To visualize the adjusted cercles , you must activate the results in the Step and Model managers.

A simple right click on Diameter at 1.30m enables you to change the cercles color.

To visualize the results attributes, activate Information ItemDrawable in the Action tab and then select an object.

Export attributes

The PB_CSVExporter step is found in the base plugin (base / Exporters / Export d’attributs (csv))

First, select the input result.

Then, drag and drop attributes you wish to include in the file.

Finally, specify the path and file name.

If you are using a script, right click on Attributs/Items d’un groupe and then select Config. input results to specify the attributes and Config. parameters to specify the file name.

Back to How Tos list

Also available in: PDF HTML TXT