Exercise 3. Tree Segmentation
Before individual tree attributes such as location, height, canopy diameter and so on can be extracted from TLS data, clusters of points representing individual trees must be first be identified using LiDAR360’s point cloud segmentation tools.
The TLS Forest module provides two methods for segmenting individual trees out of input point clouds:
- Point Cloud Segmentation from Seed Points (PCS);
- Point Cloud Segmentation.
For this exercise, please use the dataset TLSData_Remove Outliers_Normalize by Ground Points.LiData from Exercise 1, and the CSV seed points from Exercise 2.
Point Cloud Segmentation from Seed Points
1 Go to TLS Forest > Point Cloud Segmentation from Seed Points. Select TLSData_Remove Outliers_Normalize by Ground Points.LiData for Point Cloud File, and the CSV output from Exercise 2 for Seed File. Set Height Above Ground value to 0.6 m, specify an Output Path, and then click OK.
- The PCS from Seed Points function supports batch mode for processing multiple files. The input data includes normalized point clouds and their corresponding Seed Points files.
- Seed Points File: To use Seed Point Files generated in ways other than TLS Editor, please refer to User Guide: Seed Points File for format requirements. A column of DBH value is required in the seed file. If DBH values are available in this column, they will be used as DBH values in the segmentation results. If DBH values are not available, please enter DBH value of 0 for all records. A DBH value will then be fitted during segmentation process and recorded in the resulting csv file.
- From Class: Classes that will participate in the PCS from Seed Points routine (all classes included by default).
- Cluster Tolerance: Users can control the accuracy and efficiency of the individual tree segmentation process by changing this value. Increasing this tolerance threshold will result in higher efficiency of the individual tree segmentation process, however doing so may also decrease the segmentation accuracy, if the parameter value is set too large.
- Minimum Cluster Size: This is the minimum threshold of cluster size of point cloud which will participate in tree segmenting. Clusters of points smaller than this size will be treated as high-level noises and not participate in tree segmenting. Therefore, decreasing this parameter will increase segmentation accuracy and but decrease efficiency; vice versa.
- Maximum DBH, Minimum DBH: the range of allowable DBH values to be fitted during the segmentation routine, if DBH values are not provided in Seed Point files. Height Above Ground: Only the points above this height will be considered during the point cloud segmentation. This parameter is used to eliminate the influence of ground points and lower vegetation on the segmentation results.
- Minimum Tree Height: Lower threshold of an object which can be recognized as an individual tree by the segmentation tool
- Please refer to user guide for detailed introduction of tool parameters: Point Cloud Segmentation from Seed Points.
2 Add the point cloud file that was input to Point Cloud Segmentation from Seed Points tool in the previous step to a LiDAR360 3D viewer.
The Point Cloud Segmentation from Seed Points tool also creates a CSV file containing tree attributes for all TreeID records including TreeLocationX, TreeLocationY, TreeHeight, DBH, CrownDiameter, CrownArea, and CrownVolume. The height above the ground surface from which the DBH measurement was taken for each TreeID is also recorded in the DBHHeight field.
Point Cloud Segmentation
The TLS Point Cloud Segmentation method (originally developed by Tao et al.,2015) utilizes a bottom-up approach to identifying individual trees in 3D point cloud data. It is referred as a bottom-up approach because TLS data is typically acquired beneath the canopy where tree stems can be readily observed and used to inform the segmentation algorithms that delimit the spatial extents of individual trees within a forest or stand. Individual tree attributes, including Tree Height and Diameter at Breast Height (DBH), can be then determined for each tree segmented out of the input TLS dataset.
1 Add the TLSData_Remove Outliers_Normalize by Ground Points.LiData to the current project.
2 Go to TLS Forest > Point Cloud Segmentation, input the normalized point cloud data, set Height Above Ground to 0.6 m and then click OK.
- Trunk Height: the height between the bottom of the tree and the first branch. The algorithm will extract the points in the elevation range that extends between Height Above Ground and Trunk Height. These extracted points are then used to detect tree trunks which will serve as the starting point of growing of an individual tree point cloud. It is suggested to set this value less than the height of the lowest tree branch.
3 Once segmentation completes, the display should automatically switch to Display by TreeID. If not, click on the toolbar to apply the effect:
The TLS Point Cloud Segmentation tool also generates a CSV file containing tree attributes for all TreeID records including TreeLocationX, TreeLocationY, TreeHeight, DBH, CrownDiameter, CrownArea, and CrownVolume. The height above the ground surface from which the DBH measurement was taken for each TreeID is also recorded in the DBHHeight field. LiDAR360 will prompt users with the option to add the CSV file to the current project as a Table Layer once the TLS Point Cloud Segmentation tool completes.
Once added to the LiDAR360 project, users can right click on Table Layer in the Project Window and select Table Attribute to view the forest inventory metrics extracted for each TreeID.
Note that the Point Cloud Segmentation tool can only be run on a point cloud dataset on which TreeID values do not yet exist. If the desired input point cloud already contains TreeID information created during a previous run of the dataset through a LiDAR360 segmentation tool, simply remove these values with the TLS Forest > Clear Tree ID function.