Title: | Pointcloud Interactive Computation for Forest Structure Analysis |
---|---|
Description: | Provides advanced algorithms for analyzing pointcloud data in forestry applications. Key features include fast voxelization of large datasets; segmentation of point clouds into forest floor, understorey, canopy, and wood components. The package enables efficient processing of large-scale forest pointcloud data, offering insights into forest structure, connectivity, and fire risk assessment. Algorithms to analyze pointcloud data (.xyz input file). For more details, see Ferrara & Arrizza (2025) <https://hdl.handle.net/20.500.14243/533471>. For single tree segmentation details, see Ferrara et al. (2018) <doi:10.1016/j.agrformet.2018.04.008>. |
Authors: | Roberto Ferrara [aut, cre] |
Maintainer: | Roberto Ferrara <[email protected]> |
License: | GPL (>= 3) |
Version: | 1.0.3 |
Built: | 2025-02-19 05:10:10 UTC |
Source: | https://github.com/rupppy/pic |
Segments the input .xyz pointcloud file into different forestry layers: forest floor and above ground biomass.
Floseg(a, filename="XXX", soil_dim = 0.3, th = 20, N=500, output_path = tempdir())
Floseg(a, filename="XXX", soil_dim = 0.3, th = 20, N=500, output_path = tempdir())
a |
- Input file (.xyz) |
filename |
- Output file prefix |
soil_dim |
- Voxel dimension (m) for forest floor segmentation - Default = 0.30 |
th |
- Minimum number of point to generate a voxel. Default = 20 |
N |
- Minimum number of voxel to generate a cluster. Default = 500 |
output_path |
Directory in cui scrivere i file di output. Default = tempdir() |
2 files (.txt) output. 1. Forest floor pointcolud; 2. AGB pointcloud
Segments the input .xyz pointcloud file into different forestry layers.
Forest_seg (a, filename="XXX", dimVox = 2, th = 2, eps = 2, mpts = 6, h_tree = 1, soil_dim= 0.3, N = 500, R = 30, Vox_print = FALSE, WoodVox_print = FALSE, output_path = tempdir())
Forest_seg (a, filename="XXX", dimVox = 2, th = 2, eps = 2, mpts = 6, h_tree = 1, soil_dim= 0.3, N = 500, R = 30, Vox_print = FALSE, WoodVox_print = FALSE, output_path = tempdir())
a |
- Input file (.xyz) |
filename |
- Output file prefix |
dimVox |
- Voxel dimension (cm) - Default = 2 |
th |
- Minimum number of point to generate a voxel. Default = 2 |
eps |
- size (radius) of the epsilon neighborhood - Default = 1 |
mpts |
- number of minimum points required in the eps neighborhood for core points (including the point itself) - Default = 4 |
h_tree |
- minumum trunk lenght (m) |
soil_dim |
- Voxel dimension (m) for forest floor segmentation - Default = 0.30 |
N |
- Minimum number of voxel in a wood cluster - Default = 1000 |
R |
- R = Standard deviation * Proportion of Variance - Default = 30 |
Vox_print |
- Print point cloud voxelization. Default FALSE |
WoodVox_print |
- Print wood voxelization |
output_path |
Directory in cui scrivere i file di output. Default = tempdir() |
Whole pointcloud segmentation process
6 files (.txt) output. 1. Voxelized pointcloud. 2. Forest floor (vox). 3. AGB (vox) 4. DTM. 5. Wood (vox) 6. AGB no wood
Wood - leaf segmentation of single tree
SegOne(a, filename = "Elab_single_tree", dimVox = 2, th = 2, eps = 1, mpts = 4, N = 1000, R = 30, output_path = tempdir())
SegOne(a, filename = "Elab_single_tree", dimVox = 2, th = 2, eps = 1, mpts = 4, N = 1000, R = 30, output_path = tempdir())
dimVox |
- voxel dimension in cm - Default = 2 |
th |
- Minimum number of points to generate a voxel - Default = 2 |
filename |
- Output file prefix |
a |
- AGB voxelized input file |
eps |
- size (radius) of the epsilon neighborhood - Default = 1 |
mpts |
- number of minimum points required in the eps neighborhood for core points (including the point itself) - Default = 4 |
N |
- Minimum number of voxel in a wood cluster - Default = 1000 |
R |
- R = Standard deviation * Proportion of Variance - Default = 30 |
output_path |
Directory in cui scrivere i file di output. Default = tempdir() |
Two file (.txt) in output - Wood points and non wood points
Transform pointcloud in voxel
Voxels(a, filename = "XXX", dimVox = 2, th = 2, output_path = tempdir())
Voxels(a, filename = "XXX", dimVox = 2, th = 2, output_path = tempdir())
a |
- input file |
filename |
- file output prefix |
dimVox |
- voxel dimension in cm - Default = 2 |
th |
Minimum number of point to generate a voxel (Default = 1) Is a parameter that should be used with caution; it generates a lightened cloud with fewer points. To be evaluated in relation with the dimVox parameter, for high point densities it is efficae to remove noise (outliers) |
output_path |
Directory in cui scrivere i file di output. Default = tempdir() |
Voxelized pointcloud
Point cloud segmentation to identify wood voxels
Woodseg(a, filename = "XXX", eps = 1, mpts = 4, N = 1000, R = 30, output_path = tempdir())
Woodseg(a, filename = "XXX", eps = 1, mpts = 4, N = 1000, R = 30, output_path = tempdir())
filename |
- Output file prefix |
a |
- AGB voxelized input file |
eps |
- size (radius) of the epsilon neighborhood - Default = 1 |
mpts |
- number of minimum points required in the eps neighborhood for core points (including the point itself) - Default = 4 |
N |
- Minimum number of voxel in a wood cluster - Default = 1000 |
R |
- R = Standard deviation * Proportion of Variance - Default = 30 |
output_path |
Directory in cui scrivere i file di output. Default = tempdir() |
One file (.txt) output - Wood voxels (vox)