Aller au contenu principal

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

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โ€‹

AspectImpact
Analysis TimeLess than 1 second per tile (samples 50K points)
Processing TimeNo change (same as manual parameters)
Memory UsageMinimal (samples only)
Quality ImprovementOptimal 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โ€‹

โœ… 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โ€‹

  1. Sampling: Randomly sample up to 50,000 points (representative)
  2. Density Calculation: Compute points per square meter
  3. Nearest Neighbor: Calculate average distance to closest point
  4. Noise Estimation: Identify outlier percentage using statistical methods
  5. Parameter Optimization: Apply formulas to determine optimal values
  6. 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โ€‹

๐Ÿ™ 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