Skip to main content

IGN LiDAR HD Processing Library

Version 3.3.5 | Python 3.8+ | MIT License | GitHub

PyPI version Python 3.8+ License: MIT

Transform French IGN LiDAR HD point clouds into ML-ready datasets for building classification.

Production-ready library featuring GPU acceleration (16× speedup), rich geometric features (45+), RGB/NIR augmentation, RTM spatial indexing, memory-optimized processing, and advanced facade detection with 94-97% classification accuracy.


🎯 What's New in v3.3.5

Latest Stable Release (November 2025)

Production-ready with critical bug fixes and major performance improvements.

Critical Fix in v3.3.4

BD TOPO users must upgrade! Version 3.3.4 fixed a critical bug where roads overwrote buildings, causing 20-30% accuracy loss. Read more →

🌟 Key Highlights

  • Production Ready - Stable, tested, optimized for real-world workflows
  • 🔴 Critical Bug Fix - BD TOPO reclassification corrected (+20-30% accuracy)
  • 🚀 10× Faster DTM - RTM spatial indexing for instant elevation lookups
  • 🎯 95% Fewer Artifacts - Unified filtering eliminates boundary issues
  • 💾 Memory Optimized - Automatic chunking prevents out-of-memory crashes
  • 🏗️ Enhanced Detection - +30-40% improvement in facade point capture

📊 Performance Improvements

MetricBeforeAfterImprovement
Building classification70-75%94-97%+20-30% 🔥
DTM file lookupSequentialRTM indexed10× faster
Planarity artifacts100-200/tile5-10/tile95% reduction
Processing speedBaselineOptimized40-50% faster
Facade detectionStandardEnhanced+30-40% 📈
Memory stabilityOOM issuesAuto-chunked100% stable

🆕 Major Features

Unified Feature Filtering (v3.1.0)

  • Generic API for planarity, linearity, horizontality filtering
  • Adaptive spatial smoothing with variance detection
  • Eliminates 95% of boundary artifacts (100-200 → 5-10 per tile)
  • 100% elimination of NaN/Inf warnings
  • ~60% code reduction through unified implementation

Performance Enhancements (v3.3.3)

  • RTM spatial indexing for instant DTM file discovery
  • Intelligent gap filling with nearest-neighbor interpolation
  • Automatic memory-optimized chunking (2M-5M points)
  • Building cluster IDs for instance segmentation
  • Enhanced facade detection with +30-40% improvement

Rules Framework (v3.2.1)

  • Extensible plugin architecture for custom classification rules
  • 7 confidence calculation methods (binary, linear, sigmoid, gaussian, etc.)
  • Hierarchical execution with 4 strategies
  • Complete documentation with 15+ visual diagrams
  • Type-safe design with comprehensive validation

🔄 Quick Upgrade

# Upgrade to latest version
pip install --upgrade ign-lidar-hd

# Verify installation
ign-lidar-hd --version # Should show 3.3.5
Important for BD TOPO Users

If using BD TOPO classification, consider reprocessing your data to benefit from the critical v3.3.4 bug fix that improves accuracy by 20-30%.

📖 Release Notes


🚀 Quick Start

Installation

# Standard installation (CPU)
pip install ign-lidar-hd

# Optional: GPU acceleration (6-20x speedup)
pip install cupy-cuda12x # or cupy-cuda11x for CUDA 11.x
conda install -c rapidsai -c conda-forge -c nvidia cuml cuspatial

Basic Usage

# Download sample data
ign-lidar-hd download --bbox 2.3,48.8,2.4,48.9 --output data/ --max-tiles 5

# Process with features (GPU accelerated if available)
ign-lidar-hd process input_dir=data/ output_dir=output/

Python API

from ign_lidar import LiDARProcessor

# Initialize with configuration
processor = LiDARProcessor(config_path="config.yaml")

# Process a single tile
patches = processor.process_tile("data/tile.laz", "output/")

🎯 Key Features

Core Capabilities

  • 📥 IGN Download - Download HD LiDAR tiles from IGN French national geoportal
  • 🎨 RGB Enhancement - Fetch RGB colors from IGN orthophotos
  • 📡 NIR Enhancement - Fetch near-infrared channel from IGN IRC orthophotos
  • 🌿 NDVI Computation - Compute vegetation indices from RGB + NIR
  • ⚙️ Feature Engineering - Compute 45+ geometric features (normals, curvature, height, planarity, etc.)
  • 🏗️ LOD Classification - Building-focused LOD2/LOD3 classification taxonomy
  • 🧮 Axonometric Views - Generate multiple viewpoint representations
  • 🌐 WFS Ground Truth - Fetch building/vegetation polygons from IGN BD TOPO®
  • 📦 Multiple Formats - NPZ, PyTorch, TensorFlow, HDF5, LAZ

Performance & Optimization

  • 🚀 GPU Acceleration - RAPIDS cuML support (6-20× faster)
  • ⚡ Parallel Processing - Multi-worker with automatic CPU detection
  • 🧠 Memory Optimized - Chunked processing, 50-60% memory reduction
  • 💾 Smart Skip - Resume interrupted workflows automatically
  • 🗺️ RTM Spatial Indexing - 10× faster DTM file lookups
  • 📊 Automatic Chunking - Prevents OOM crashes on large tiles

Flexibility

  • 📁 Processing Modes - Patches only, both patches+LAZ, or LAZ only
  • 📋 YAML Configs - Declarative workflows with example templates
  • 🔧 CLI & API - Command-line tool and Python library
  • 🎲 Rules Framework - Extensible classification rules engine
  • 🏛️ Architectural Styles - Encode regional/historical characteristics

📋 Processing Modes

Patches Only (Default)

ML-ready patches for training:

ign-lidar-hd process input_dir=data/ output_dir=patches/

Both Patches & Enriched LAZ

Training + GIS visualization:

ign-lidar-hd process input_dir=data/ output_dir=both/ processor.processing_mode=both

Enriched LAZ Only

Fast GIS workflow:

ign-lidar-hd process input_dir=data/ output_dir=enriched/ processor.processing_mode=enriched_only
Best Practice

For ML applications, patches provide cleaner geometric features than LAZ tiles (no boundary artifacts).


📁 Configuration Examples

Production-ready configs in the examples/ directory:

# GPU-accelerated processing
ign-lidar-hd process --config-file examples/config_gpu_processing.yaml \
input_dir=data/raw output_dir=data/enriched

# ML training with augmentation
ign-lidar-hd process --config-file examples/config_training_dataset.yaml \
input_dir=data/raw output_dir=data/patches

# Preview configuration
ign-lidar-hd process --config-file examples/config_training_dataset.yaml --show-config

See configuration examples for complete workflows.


📦 Output Formats

  • NPZ - NumPy format (recommended for ML)
  • HDF5 - Hierarchical data format
  • PyTorch - .pt files for PyTorch training
  • LAZ - Point cloud visualization (CloudCompare, QGIS)
  • Multi-format - Combine formats: npz,laz, hdf5,torch

📚 Learn More

Getting Started

Core Features

Advanced Topics

Reference


📄 License

MIT License - see LICENSE file for details.


🤝 Support & Contributing


📝 Citation

If you use this library in your research or projects, please cite:

@software{ign_lidar_hd_dataset,
author = {Simon Ducournau},
title = {IGN LiDAR HD Processing Library},
year = {2025},
publisher = {ImagoData},
url = {https://github.com/sducournau/IGN_LIDAR_HD_DATASET},
version = {3.3.5}
}

Project maintained by: ImagoData

Made with ❤️ for the LiDAR and Machine Learning communities

⬆ Back to top