A workflow to extract individual trees from 3D point cloud data obtained by airborne laser scanning
master @ e5828a7

Workflow Type: Unrecognized workflow type

Point-based Individual Tree Delineation from 3D LiDAR Point Cloud Data.

This module implements a lightweight and easy-to-use Point-based method for individual tree delineation from 3D point cloud data using pure C/C++.

The source code files are included in folder [TreeSeparation], which consists of a project generated from Visual Studio 2015. The CLASS for tree separation is named "FoxTree" and can be found in the respect FoxTree.h and FoxTree.cpp files.

Inupt

The input of this module is TREE Points only, as illustrated by the figures below.

test-02

Another test data

One more test data

The format of the tree points is *.xyz, such as:

         x            y         z          
     623772.9200 4834465.5900 77.7409     
        ...         ...        ...       

Note that if the original data does not have color information, either initiate the last three columns with arbitrary integers or modify the code on data loading.

Parameters

There are three parameters have to be initialized for optimal individualization results:

 *  Searching radius;
 *  Vertical resolution;
 *  Minimum number of points per cluster;

As demonstrated by the code snippet below (Note that the parameters are based on geo-referenced point cloud data.):

	//Parameter settings
	
	const double radius = 1.0;  
	//Searching Radius, 1.0 meter;
	
	const double verticalResolution = 1.0;  
	//Vertical resolution of the layers, 1.0 meter;
	
	const int miniPtsPerCluster = 5; 
	// Minimum number of points per cluster, 5 points;

Hints on Parameter Settings:

Radius should be in accordance with the average point density, i.e. to ensure there are a certain number of points within the radius.

VerticalResolution depends on the overall point density and fineness of results.

Output

The output of this implementation is an ASCII format *.xyz file as well:

	treeID        x            y         z         r      g     b 
	  89     623942.8999 4833932.5500   77.8399   36      76    89
	  ...         ...        ...         ...      ...    ...    ...

Notably, the first column is the index of tree of which this point is assigned. The last three columns are randomly designated color for the points of a same tree.

The individual tree delineation results are given as the figures below: Individual tree delineation results Individual tree delineation results Individual tree delineation results Individual tree delineation results

Declarations

In this implementation, nanoflann is employed for KNN searching, which can be found from here link.

Support & Contact

Should you have any questions, comments, BUG(s) reporting, or IDEAS for further improvements? Please contact:

Jinhu Wang

jinhu.wang (at) hotmail.com

or

Roderik Lindenbergh

r.c.lindenbergh (at) tudelft.nl.

http://doris.tudelft.nl/~rlindenbergh/

Dec. 9, 2018

Copyright (C) 2018

Version History

master @ e5828a7 (earliest) Created 21st Jan 2025 at 14:36 by Jinhu Wang

Update README.md


Frozen master e5828a7
help Creators and Submitter
Creators
Not specified
Submitter
Activity

Views: 238   Downloads: 51

Created: 21st Jan 2025 at 14:36

help Tags

This item has not yet been tagged.

help Attributions

None

Total size: 124 MB
Powered by
(v.1.16.0-main)
Copyright © 2008 - 2024 The University of Manchester and HITS gGmbH