Skip to content

Semi-automatic estimation of the tree biomass using terrestrial LiDAR data.

Notifications You must be signed in to change notification settings

Thibalt-C/tree-biomass-estimator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 

Repository files navigation

tree-biomass-estimator

Preamble

This model has been implemented in an environment where only terrestrial laser scanner (TLS) has been used to scan a forest. More details are available on the "report.pdf" file, giving the detailed procedure. All scripts and documentation are accessible under CC-BY-NC-SA 4.0 licence, feel free to re-use them for your own projects (please cite the following: Chardon T. (2023). Semi-automatic estimation of the tree biomass using terrestrial LiDAR data (internship report)).

Required software

This model has been tested on MacOS 13.2.1 / Windows 10 Pro Version 22H2. Both hardwares were working with 64-bit-based processors.
Python scripts have been built using Jupyter Notebook 6.5.4 / JupyterLab 3.3.2, via Anaconda 2.4.2 / 2.4.0. The environment is using a Python 3.8.16 / Python 3.10.12 kernel, and the following packages are used in the scripts:

  • numpy
  • pandas
  • matplotlib.pyplot
  • laspy
  • scikit-learn
  • py-docx
  • docxtpl
  • docxcompose
  • opencv
  • os
  • datetime
  • hdbscan (facultative, an equivalent module is implemented in scikit-learn 1.3.0 or more recent release)
  • time (facultative)
  • shutil (facultative)

A facultative module means that the script can work without the code using this module, even though it should be better optimized with these extra lines.

The following softwares have been used:

  • Anaconda 2.4 with Python 3.8 or more (3.8, 3.9 and 3.10 have been tested) and a recent release of Jupyter Notebook or Jupyter Lab
  • CloudCompare 2.12
  • 3D Forest 0.51
  • GeoSLAM Hub 6.2.1 (for acquiring TLS data)
  • Microsoft Excel 16.14 (any other table editor can work)

Rapid use

For a rapid use without detailled steps of the processing, you can use the notebook 'functions.ipynb'. It compiles all of the necessary scripts with conveniences such as the possibility to stop plotting for gaining computational time, or auto-selection of the region of interest.

  • Compute intensity_filter(file,slices,ROI): file is the name of the file located in the 1-labelled directory, slices is the number of slices created to compute the intensity filtering, ROI is a list of 4 limits of the region of interest (ROI) on the horizontal plane (x,y), it can be replaced by 'auto' to compute the ROI so that it keeps ~95 % of the points;
  • Use CloudCompare to classify trees and terrain (CANUPO plugin)
  • Compute DBSCAN_clustering(file,ROIzmin,ROIzmax,eps,min_samples): file is the name of the file located in the 3-labelled directory, in 'trees', ROIzmin and ROIzmax are the vertical limits of the slice of the ROI used to find clusters, it should be located at trunk level, eps is the maximal space between two core points of a cluster, min_samples is the minimal number of core points recquired to form a cluster;
  • Use 3D Forest to perform segmentation of the same file used in the previous function
  • Compute merging(dist_to_merge,ROIzmin,ROIzmax): dist_to_merge is the maximum distance between centroids of clusters obtained from DBSCAN and regions obtained with 3D Forest so that one or several clusters can merge with a region, ROIzmin and ROIzmax have to be the same than in the preivous function;
  • Compute region_growing(ROI_file,max_distance,ROIzmin,ROIzmax):
  • Compute nearest_nbr_reinforcement():
  • Use 3D Forest to perform single tree analysis and QSM
  • Compute plot_results():

Note that between each step, it is possible to manually edit the point clouds using a cloud editing software like CloudCompare.

About

Semi-automatic estimation of the tree biomass using terrestrial LiDAR data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published