Codes
Software
RodeFox
A tool for point cloud visualization and processing.
Platform: Windows
Installer coming soon.
Open source projects
Individual tree delineation from 3D point clouds
This project implements a lightweight and easy-to-use point-based method for individual tree delineation from 3D point cloud data obtained by airborne laser scanning. It provides three implementations: pure C/C++, Python sequential, and Python parallel (multi-core) versions. Input: ASCII .xyz files of tree points. Output: ASCII .xyz files with per-point tree IDs and RGB colors.
For detailed codes and more testing datasets, please refer to the below repository:
Jinhu-Wang/TreeSeparationExtracting ungulate trails in wetlands from airborne LiDAR point clouds
A four-stage C/C++ pipeline for detecting animal pathways in marsh ecosystems (Oostvaardersplassen) from AHN4 airborne laser scanning data. Stages: (1) pre-processing and tiling, (2) near-terrain point filtering, (3) Digital Terrain Model (DTM) generation, and (4) trail extraction. Built with CMake (Linux, macOS, Windows); depends on LAStools and nanoflann. Input: .las/.laz point cloud files. Output: clipped tiles, filtered datasets, DTMs, and extracted trail data.
For detailed codes and more testing datasets, please refer to the below repository:
Jinhu-Wang/Extracting-ungulate-trails-in-wetlands-using-3D-point-clouds-obtained-from-airborne-laser-scanningVegetation metrics from 3D LiDAR point clouds
A set of lightweight, easy-to-use Jupyter Notebooks to compute key vegetation metrics from 3D point clouds obtained by airborne laser scanning (ALS). Supports both local Python environments and Google Colab cloud execution. Input: .las/.laz point cloud files. Output: computed vegetation metrics and visualizations.
For detailed codes and more testing datasets, please refer to the below repository:
Jinhu-Wang/LiDAR_Vegetation_MetricsTree classification and individualization in marsh areas
Automated extraction and individualization of trees and shrubs from 3D point cloud data acquired by airborne laser scanning, targeting marsh ecosystems (e.g., Oostvaardersplassen). Implemented in C/C++ with CMake for cross-platform builds (Linux, macOS, Windows). Two modules: TreeClassification (classifies ALS points into trees/shrubs vs. other) and TreeIndividualization (delineates individual tree crowns via vertical slicing and spatial clustering). Input: .las/.laz point cloud files. Output: classified and individualized tree data in XYZ format.
For detailed codes and more testing datasets, please refer to the below repository:
Jinhu-Wang/Tree_Classification_and_Individualization_In_Marsh_AreaRe-tiling and clipping of large-scale LiDAR point clouds
C/C++ utilities for two common pre-processing tasks on large LAS/LAZ point cloud datasets. Retiling: subdivides large files into smaller tiles either by tile count (X×Y grid) or by tile dimensions. Clipping: filters point clouds against ESRI shapefile polygon boundaries. Built with CMake (cross-platform) and depends on LAStools and shapelib. Input: .las/.laz files and .shp polygons. Output: retiled or clipped .las/.laz files.
For detailed codes and more testing datasets, please refer to the below repository:
Jinhu-Wang/Retile_Clip_LAZRobustness of LiDAR vegetation metrics to varying point densities
A multi-language workflow for systematically testing how LiDAR vegetation metrics behave under varying point densities. Three stages: (1) R scripts generate polygons for randomly placed plots of different sizes; (2) C/C++ (VS2022) computes vegetation metrics from LiDAR point clouds; (3) Python produces boxplots comparing metrics across plot sizes and point densities. Datasets and results are available on Zenodo.
For detailed codes and more testing datasets, please refer to the below repository:
Jinhu-Wang/Testing-the-robustness-of-LiDAR-vegetation-metrics-to-varying-point-densities