Skip to main content

Workflow Guide

This guide demonstrates common processing workflows with visual representations to help you understand the data flow and decision points.

Navigation

πŸš€ Basic Workflow​

The most common workflow for processing LiDAR data into ML-ready datasets.

Diagram Reference

For the complete basic workflow diagram, see Workflow Diagrams - Basic Processing Pipeline.

The workflow includes the following key stages:

  1. Data Availability Check: Verify if LiDAR tiles are already downloaded

  2. Download: Acquire tiles from IGN servers if needed

  3. Validation: Ensure downloaded files are valid

  4. Enrichment: Add geometric features and building component classification

  5. RGB Augmentation: Optionally add color information from orthophotos

  6. Processing: Create training patches for machine learning RGB -->|No| SkipRGB[LiDAR Only]

    FetchRGB --> Features[Enriched LAZ Ready] SkipRGB --> Features

    Features --> Process[Create Training Patches] Process --> Output[ML Dataset Ready] Output --> End([Process Complete])

    Error1 --> End

    style Start fill:#e8f5e8 style End fill:#e8f5e8 style Download fill:#e3f2fd style Analyze fill:#c8e6c9 style CleanData fill:#fff9c4 style Enrich fill:#fff3e0 style Process fill:#f3e5f5 style Output fill:#e8f5e8


## ⚑ GPU-Accelerated Workflow

Workflow for processing large datasets with GPU acceleration (v1.3.0+).

```mermaid
flowchart TD
Start([Start GPU Processing]) --> CheckGPU{GPU Available?}

CheckGPU -->|Yes| GPUSetup[Initialize GPU<br/>CuPy + CUDA]
CheckGPU -->|No| Fallback[⚠️ Fallback to CPU]

GPUSetup --> LoadData[Load Point Cloud]
Fallback --> LoadData

LoadData --> TransferGPU[Transfer to GPU Memory]
TransferGPU --> FeatureGPU[πŸš€ GPU Feature Computation<br/>5-10x faster]

FeatureGPU --> RGBCheck{Include RGB?}
RGBCheck -->|Yes v1.5.0+| RGBFetch[Fetch Orthophoto]
RGBCheck -->|No| FeaturesDone[Features Complete]

RGBFetch --> RGBCache{In GPU Cache?}
RGBCache -->|Yes| RGBInterpolate[⚑ GPU Color Interpolation<br/>24x faster]
RGBCache -->|No| RGBLoad[Load to GPU Cache]
RGBLoad --> RGBInterpolate

RGBInterpolate --> Combine[Combine Features + RGB]
FeaturesDone --> Combine

Combine --> TransferCPU[Transfer to CPU]
TransferCPU --> SaveOutput[Save Enriched LAZ]

SaveOutput --> MoreData{More Data?}
MoreData -->|Yes| LoadData
MoreData -->|No| End([Processing Complete])

style Start fill:#e8f5e8
style End fill:#e8f5e8
style GPUSetup fill:#e3f2fd
style FeatureGPU fill:#c8e6c9
style RGBInterpolate fill:#c8e6c9
style Fallback fill:#fff3e0

GPU Performance Benefits​

OperationCPU TimeGPU TimeSpeedup
Feature Extraction45s6s8x
RGB Interpolation12s0.5s24x
Normal Computation30s5s6x
Total (1M pts)~87s~11.5s7.5x
GPU Optimization Tips
  • Cache RGB tiles - Reuse orthophotos across patches
  • Batch processing - Process multiple tiles in sequence
  • Monitor GPU memory - Use nvidia-smi to check utilization
  • Use workers=1 with GPU - GPU parallelizes internally

See GPU Overview for detailed setup instructions.

πŸ”„ Smart Skip Workflow​

Understanding how the smart skip system optimizes repeated runs.

πŸ—οΈ Parallel Processing Workflow​

How the library handles multi-worker processing for optimal performance.

🎯 LOD Classification Workflow​

Understanding how building components are classified into LOD levels.

🎯 Enhanced Enrich Pipeline​

Detailed view of the complete enrich workflow with auto-params and preprocessing.

Feature Availability

Auto-params and advanced preprocessing features have been available since v1.7.1 and continue to work in v2.0+.

πŸ“Š Feature Extraction Pipeline​

Detailed view of the geometric feature computation process.

πŸ”§ Configuration Decision Tree​

How to choose optimal settings for your use case.

πŸ’‘ Best Practice Workflows​

Urban Area Processing​

# Optimized for dense urban environments
ign-lidar-hd download --bbox 2.0,48.8,2.1,48.9 --output urban_tiles/
ign-lidar-hd enrich --input-dir urban_tiles/ --output urban_enriched/ --use-gpu --k-neighbors 30
ign-lidar-hd process --input-dir urban_enriched/ --output urban_patches/ --lod-level LOD3

Rural/Natural Area Processing​

# Optimized for sparse rural environments
ign-lidar-hd download --bbox -1.0,46.0,0.0,47.0 --output rural_tiles/
ign-lidar-hd enrich --input-dir rural_tiles/ --output rural_enriched/ --k-neighbors 15
ign-lidar-hd process --input-dir rural_enriched/ --output rural_patches/ --lod-level LOD2

High-Performance Batch Processing​

# Maximum throughput for large datasets
ign-lidar-hd enrich --input-dir tiles/ --output enriched/ --use-gpu --num-workers 8 --batch-size large
ign-lidar-hd process --input-dir enriched/ --output patches/ --num-workers 16 --skip-existing

GPU-Accelerated with RGB (v1.5.0+)​

# Fastest processing with GPU RGB augmentation
ign-lidar-hd enrich \
--input-dir tiles/ \
--output enriched/ \
--use-gpu \
--add-rgb \
--rgb-cache-dir /data/rgb_cache/ \
--num-workers 4

# Create patches with cached RGB
ign-lidar-hd process \
--input-dir enriched/ \
--output patches/ \
--lod-level LOD3 \
--num-workers 8


πŸ’‘ Tips for Workflow Selection​

Choose Basic Workflow when:​

  • βœ… Learning the library
  • βœ… Processing < 10 tiles
  • βœ… No GPU available
  • βœ… Prototyping and testing

Choose GPU Workflow when:​

  • βœ… Processing > 50 tiles
  • βœ… NVIDIA GPU available
  • βœ… Production pipelines
  • βœ… Time-sensitive projects

Choose Smart Skip when:​

  • βœ… Resuming interrupted jobs
  • βœ… Iterative processing
  • βœ… Large datasets with failures
  • βœ… Incremental updates

Parallel Processing for:​

  • βœ… Multi-core systems
  • βœ… Batch processing
  • βœ… Production environments
  • βœ… Maximizing throughput