Skip to content

Latest commit

 

History

History
114 lines (66 loc) · 3.6 KB

README.md

File metadata and controls

114 lines (66 loc) · 3.6 KB

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

  1. nanoflann is employed for KNN searching, which can be found from here link.

  2. LASlib is employed for LAS file reading, which can be found from here link.

Chenges Notes

  • Fixed some bugs that caused abnormal crashes.
  • Added a new function to load the data from a LAS file.

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

or

Zhou Yang yangzhou@aircas.ac.cn