Release Notes: v1.7.1
Release Date: October 2025
Type: Feature Release
๐ค Automatic Parameter Analysisโ
Version 1.7.1 introduces intelligent, automatic parameter optimization that eliminates manual tuning and ensures optimal processing quality for tiles with varying characteristics.
โจ What's Newโ
๐ค Auto-Parameter Analysisโ
Automatically analyze each LiDAR tile to determine optimal processing parameters based on actual tile characteristics:
- Point Density Analysis: Measures points per square meter
- Nearest Neighbor Distance: Calculates average point spacing
- Noise Level Estimation: Identifies outlier percentage
- Spatial Distribution: Detects scan line patterns
๐ฏ Intelligent Parameter Selectionโ
The system automatically determines optimal values for:
Feature Computationโ
--radius
(0.5-3.0m): Search radius for geometric features- Formula:
optimal_radius = avg_nn_distance ร 18.0
- Sparse tiles (rural) get larger radius
- Dense tiles (urban) get smaller radius
- Eliminates LIDAR scan line artifacts
- Formula:
Preprocessing Parameters (when --preprocess
enabled)โ
--sor-k
(8-15): Statistical Outlier Removal neighbor count--sor-std
(1.5-2.5): SOR standard deviation multiplier--ror-radius
(1.0-2.0m): Radius Outlier Removal search radius--ror-neighbors
(2-6): ROR minimum neighbors required
๐ง CLI Integrationโ
Simple flag enables automatic analysis:
# Basic usage - auto-analyze and process
ign-lidar-hd enrich \
--input-dir tiles/ \
--output enriched/ \
--auto-params
# With preprocessing (recommended)
ign-lidar-hd enrich \
--input-dir tiles/ \
--output enriched/ \
--auto-params \
--preprocess \
--add-rgb
# Process specific tiles
ign-lidar-hd enrich \
--input-dir tiles/ \
--output enriched/ \
--auto-params \
tile1.laz tile2.laz tile3.laz
๐ Analysis Reportโ
When --auto-params
is used, detailed analysis report is displayed:
๐ Analyzing tile for optimal parameters...
๐ Tile Analysis Report
========================
Tile Statistics:
โข Total Points: 7,228,916
โข Point Density: 7.2 pts/mยฒ
โข Average Spacing: 1.641 m
โข Estimated Noise: 0.3%
Recommended Parameters:
โข Search Radius: 3.00 m (for geometric features)
โข SOR k-neighbors: 10
โข SOR std multiplier: 2.0
โข ROR radius: 1.5 m
โข ROR min neighbors: 3
Processing Strategy: Chunked (tile has >1M points)
โ Using analyzed radius: 3.00m
โ Using analyzed preprocessing parameters
โ๏ธ YAML Configuration Supportโ
# config.yaml
enrich:
input_dir: "data/raw"
output: "data/enriched"
mode: "full"
auto_params: true # Enable automatic analysis
preprocess: true # Enable preprocessing
add_rgb: true
num_workers: 4
๐ฏ Benefitsโ
โ Eliminates Manual Tuningโ
- No more guessing optimal parameters
- No need to test different values
- Consistent quality across varying tiles
โ Adaptive Processingโ
- Urban tiles (dense): Optimal smaller radius
- Rural tiles (sparse): Optimal larger radius
- Mixed datasets: Each tile gets custom parameters
โ Better Qualityโ
- Parameters matched to actual point distribution
- Optimal artifact elimination regardless of density
- Preprocessing tuned to noise level
โ Time Savingsโ
- Analysis completes in less than 1 second per tile
- No manual parameter testing needed
- Batch processing with confidence
โ Production Readyโ
- Falls back to defaults if analysis fails
- Manual override still available
- Comprehensive logging for debugging
๐ Performance Impactโ
Aspect | Impact |
---|---|
Analysis Time | Less than 1 second per tile (samples 50K points) |
Processing Time | No change (same as manual parameters) |
Memory Usage | Minimal (samples only) |
Quality Improvement | Optimal parameters guarantee best results |
๐ Migration Guideโ
For Existing Usersโ
No code changes required! Auto-params is opt-in:
# Your existing commands continue to work
ign-lidar-hd enrich --input-dir tiles/ --output enriched/ --radius 1.0
# Add --auto-params when ready
ign-lidar-hd enrich --input-dir tiles/ --output enriched/ --auto-params
Configuration Filesโ
Add auto_params: true
to your YAML configs:
# Before (v1.7.0 and earlier)
enrich:
radius: 1.0
sor_k: 12
preprocess: true
# After (v1.7.1)
enrich:
auto_params: true # Analyzes and sets optimal values
preprocess: true
๐ Documentationโ
New comprehensive guides available:
๐ Use Casesโ
Recommended Forโ
โ
Mixed Tile Characteristics - Urban + rural tiles together
โ
Unknown Territory - First time processing a new area
โ
Production Workflows - Consistent quality without manual tuning
โ
Large Batches - Many tiles with varying densities
โ
Artifact Elimination - Ensures correct radius for each tile
Manual Parameters Better Forโ
โ ๏ธ Consistent Tiles - All tiles have similar characteristics
โ ๏ธ Specific Requirements - Need exact parameter values
โ ๏ธ Scientific Studies - Reproducibility requires fixed parameters
โ ๏ธ Debugging - Testing specific parameter combinations
๐ ๏ธ Technical Detailsโ
Analysis Algorithmโ
- Sampling: Randomly sample up to 50,000 points (representative)
- Density Calculation: Compute points per square meter
- Nearest Neighbor: Calculate average distance to closest point
- Noise Estimation: Identify outlier percentage using statistical methods
- Parameter Optimization: Apply formulas to determine optimal values
- Validation: Clamp values to safe ranges
Formulasโ
# Radius calculation
optimal_radius = avg_nn_distance * 18.0
optimal_radius = clamp(optimal_radius, 0.5, 3.0)
# SOR parameters
sor_k = 8 + min(7, int(noise_level * 20)) # 8-15 range
sor_std = 1.5 + (noise_level * 2.0) # 1.5-2.5 range
# ROR parameters
ror_radius = avg_nn_distance * 10.0
ror_radius = clamp(ror_radius, 1.0, 2.0)
ror_neighbors = max(2, min(6, int(density / 5)))
๐ Known Issuesโ
None reported as of release.
๐ฎ Future Enhancementsโ
Planned for v1.7.2+:
- Machine learning-based parameter prediction
- Historical analysis database for faster reprocessing
- Advanced noise characterization
- Adaptive chunking strategy based on tile characteristics
๐ Supportโ
- ๐ Full Documentation
- ๐ Issue Tracker
- ๐ฌ Discussions
๐ Acknowledgmentsโ
This feature was developed based on user feedback about the challenges of manually tuning parameters for tiles with varying characteristics. Special thanks to users who provided test cases and validation.
Previous Release: v1.7.0 - Preprocessing for Artifact Mitigation
Next Release: TBA