A Python package for 3D LiDAR point cloud processing, analysis, terrain modelling, and visualization.
Project description
LidarLens
LidarLens is a powerful Python package for processing, analyzing, and visualizing 3D LiDAR point cloud data. It provides a clean, pythonic API for common tasks such as I/O, noise removal, ground extraction, DTM/DSM generation, and terrain analysis.
Features
- I/O: Read and write LAS/LAZ files (wraps
laspyandopen3d). - Preprocessing: Voxel downsampling, statistical/radius outlier removal.
- Segmentation:
- Ground extraction using CSF (Cloth Simulation Filter) or RANSAC.
- Building and vegetation segmentation (heuristic).
- DBSCAN clustering.
- Terrain Modelling:
- Generate DTM (Digital Terrain Model) and DSM (Digital Surface Model).
- Compute Canopy Height Models (CHM).
- Generate vector contours.
- Analysis:
- Point density maps, roughness, slope, aspect, and hillshade.
- Cloud-to-cloud distance comparison.
- Volume computation and cross-section profiling.
- Geometry:
- Normal estimation and orientation.
- Mesh surface reconstruction (Poisson, Ball Pivoting).
- ICP Registration.
- Visualization: Helper functions for plotting point clouds, DEMs, and histograms.
- CLI: Comprehensive command-line interface for batch processing.
Installation
pip install lidarlens
To install with CLI support:
pip install lidarlens[cli]
To install with Deep Learning support (coming soon):
pip install lidarlens[dl]
Quick Start
Python API
import lidarlens as ll
# 1. Load a point cloud
pcd, header, vlrs, wkt = ll.read("input.laz")
# 2. Preprocess
pcd = ll.denoise(pcd, method="statistical")
pcd = ll.downsample(pcd, voxel_size=0.5)
# 3. Extract Ground
ground, non_ground, plane = ll.extract_ground(pcd)
# 4. Generate DTM
dtm, meta = ll.generate_dtm(ground, resolution=1.0)
# 5. Save results
ll.save(ground, "ground.laz", header=header, wkt=wkt)
ll.dem_to_png(dtm, meta, "dtm.png")
Command Line Interface
# Info
lidarlens info input.laz
# Processing pipeline
lidarlens downsample input.laz -v 0.5 -o downsampled.laz
lidarlens denoise downsampled.laz -o clean.laz
lidarlens ground clean.laz -o ground.laz
# Terrain products
lidarlens dtm ground.laz -o dtm.png
lidarlens contours ground.laz -i 2.0 -o contours.geojson
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lidarlens-0.1.3.tar.gz.
File metadata
- Download URL: lidarlens-0.1.3.tar.gz
- Upload date:
- Size: 36.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ef2655ab8829cf3a5830536cd9837397b4a6d6c1052a098b07941485d3276f1
|
|
| MD5 |
d1b918f2afec18df9b2e18378eb09d85
|
|
| BLAKE2b-256 |
6d6334393406b0a083c3a7484b950922ec4e12fa01aac6cc469ab50134d3ab1f
|
File details
Details for the file lidarlens-0.1.3-py3-none-any.whl.
File metadata
- Download URL: lidarlens-0.1.3-py3-none-any.whl
- Upload date:
- Size: 32.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc96416a62fdc5b8f47f11f20605bcbd411ea75437c7102610971d52a7ea4de8
|
|
| MD5 |
dfecbd9f3ea7831fac5a553cb1da6259
|
|
| BLAKE2b-256 |
36f864d0de2bc6e5e2a7c4f5a1b0c36d8dc655226c6b0e188c5c005c50ff4a1d
|