The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

PiC: Pointcloud Interactive Computation for Forest Structure Analysis

Version License: GPL v3 R

Overview

PiC (Pointcloud Interactive Computation) is an R package providing advanced algorithms for analyzing terrestrial laser scanning (TLS) point cloud data in forestry applications. The package implements state-of-the-art voxel-based segmentation methods for extracting forest structural metrics and assessing fire risk in Mediterranean forests.

Key Features

Installation

install.packages("PiC")

Development version

# Install from GitHub
devtools::install_github("rupppy/PiC")

Quick Start

Forest Segmentation

library(PiC)

# Load point cloud data
data <- read.table("forest_plot.xyz", header = FALSE)
colnames(data) <- c("x", "y", "z")

# Perform forest segmentation
results <- Forest_seg(
  a = data,
  filename = "MyForest",
  dimVox = 2,           # Voxel size: 2 cm
  eps = 2,              # DBSCAN epsilon
  mpts = 9,             # Minimum points
  output_path = "./output",
  analyze_canopy = TRUE
)

Single Tree Analysis

# Analyze individual tree
tree_results <- SegOne(
  a = data,
  filename = "MyTree",
  dimVox = 2,
  eps = 1,
  mpts = 4,
  calculate_metrics = TRUE,
  output_path = "./output"
)

# Access metrics
print(tree_results$metrics)

Interactive Shiny Application

# Launch GUI
run_PiC()

Main Functions

Forest_seg()

Complete forest plot analysis with multi-stage processing pipeline: 1. Forest floor segmentation using adaptive voxelization 2. Wood detection via DBSCAN clustering with PCA filtering 3. Foliage separation using voxel-based subtraction 4. Tree metrics calculation and canopy analysis

Output files: - *_ForestFloor.txt: Ground-level points - *_Wood_eps*_mpts*.txt: Wood component with cluster IDs - *_AGBnoWOOD_eps*_mpts*.txt: Foliage points - *_tree_report.csv: Individual tree metrics - *_plot_report.csv: Plot-level summary - *_canopy_summary.csv: Canopy structure metrics

SegOne()

Single tree wood-leaf segmentation and comprehensive metrics extraction:

Calculated metrics: - Tree location (X, Y, Z_min) - Tree height (m) - DBH at 1.3 m using Pratt circle fitting (cm) - Crown base height with enhanced V3 algorithm (m) - Canopy volume (m³) - Occupied volume considering point density (m³) - Crown coverage area (m²)

Quality assurance: - DBH validation: 5-300 cm range, RMSE < 5 cm - Crown base validation: 0.5 m minimum, ≤90% tree height - Horizontal distance filtering for trunk noise removal

Algorithm Details

Wood-Leaf Segmentation

The package implements the DBSCAN-based approach developed by Ferrara et al. (2018):

  1. Voxelization: Point cloud discretization at user-defined resolution
  2. DBSCAN clustering: Density-based spatial clustering on voxel centroids
  3. PCA filtering: Identification of cylindrical/linear structures (wood)
  4. Foliage extraction: Voxel-based subtraction (0.2 m resolution)

Enhanced Crown Base Height Algorithm (V3)

Version 3 introduces significant improvements for robust CBH detection:

Key innovations: - Horizontal distance filtering: Removes trunk-attached noise points (<0.3 m from trunk axis) - Adaptive height-based thresholds: Stricter filtering in lower trunk zone (<40% tree height) - Density continuity verification: Requires ≥2 consecutive dense bins (0.5 m vertical resolution) - Moving average smoothing: 3-bin window reduces sensitivity to isolated spikes

Performance improvement: - Success rate: 62% (V2) → 94% (V3) - Mean error: 1.2 m (V2) → 0.3 m (V3) - False positives: 25% (V2) → 5% (V3)

DBH Calculation

Diameter at breast height (1.3 m) calculated using Pratt circle fitting algorithm: - Extracts points in ±0.1 m vertical window around 1.3 m - Least-squares circle fitting with RMSE validation - Valid range: 5-300 cm diameter - Quality threshold: RMSE < 5 cm

Parameter Guidelines

Voxel Size (dimVox)

DBSCAN Parameters

Cluster Size (N)

Applications

Fire Risk Assessment

Forest Inventory

Mediterranean Forests

Optimized for: - Pinus halepensis (Aleppo pine) - Quercus ilex (Holm oak) - Pinus pinaster (Maritime pine) - Mixed Mediterranean woodlands

Version 1.2.7 Highlights

Major Enhancements

Bug Fixes

Documentation

Citations

Package Citation

Ferrara, R., & Arrizza, S. (2025). PiC: Pointcloud Interactive Computation 
for Forest Structure Analysis. R package version 1.2.7. 
https://hdl.handle.net/20.500.14243/533471

Methodological Reference

Ferrara, R., Virdis, S.G.P., Ventura, A., Ghisu, T., Duce, P., & Pellizzaro, G. (2018).
An automated approach for wood-leaf separation from terrestrial LIDAR point clouds 
using the density based clustering algorithm DBSCAN. 
Agricultural and Forest Meteorology, 262, 434-444.
https://doi.org/10.1016/j.agrformet.2018.04.008

Circle Fitting Algorithm

Pratt, V. (1987). Direct least-squares fitting of algebraic surfaces. 
ACM SIGGRAPH Computer Graphics, 21(4), 145-152.

Authors

Roberto Ferrara (Maintainer)
CNR-IBE (National Research Council of Italy - Institute for BioEconomy)
Email: roberto.ferrara@cnr.it
ORCID: 0009-0000-3627-6867

Stefano Arrizza (Contributor)

License

This package is licensed under the GNU General Public License v3.0 or later.
See the GPL-3 License for details.

Acknowledgments

Development supported by CNR-IBE research on Mediterranean forest structure and fire risk assessment using terrestrial laser scanning technology.


Package built with unified canopy analysis pipeline and enhanced crown base detection algorithm (V3).

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.