Skip to main content

Example Configuration Files

Version 2.3.0 includes four production-ready YAML configuration files for common workflows. These configs provide a simple way to get started without manually specifying all parameters.

πŸ“ Location​

All example configs are located in the examples/ directory:

examples/
β”œβ”€β”€ README.md
β”œβ”€β”€ config_gpu_processing.yaml
β”œβ”€β”€ config_training_dataset.yaml
β”œβ”€β”€ config_quick_enrich.yaml
└── config_complete.yaml

πŸš€ Usage​

Basic Usage​

ign-lidar-hd process \
--config-file examples/config_training_dataset.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/output

Preview Configuration​

See what the config does before running:

ign-lidar-hd process \
--config-file examples/config_training_dataset.yaml \
--show-config \
input_dir=/path/to/raw \
output_dir=/path/to/output

Override Config Values​

CLI arguments override config file values:

ign-lidar-hd process \
--config-file examples/config_training_dataset.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/output \
processor.num_points=65536 \
features.k_neighbors=50

πŸ“ Available Configurations​

1. config_gpu_processing.yaml - GPU-Accelerated LAZ Enrichment​

Use Case: Fast feature enrichment with GPU acceleration for GIS analysis

Key Features:

  • βœ… GPU acceleration enabled
  • βœ… Enriched LAZ output only (no patches)
  • βœ… Full feature computation (RGB, NIR, NDVI)
  • βœ… Preprocessing and stitching enabled

Configuration:

defaults:
- override /processor: gpu
- override /features: full
- override /preprocess: default
- override /stitching: enhanced

processor:
lod_level: LOD2
architecture: default
num_points: 16384
use_gpu: true
augment: false

features:
k_neighbors: 20
use_rgb: true
compute_ndvi: true

output:
format: npz
processing_mode: enriched_only

Usage:

ign-lidar-hd process \
--config-file examples/config_gpu_processing.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/enriched

Output: tile_enriched.laz files with computed features


2. config_training_dataset.yaml - ML Training Dataset​

Use Case: Create ML-ready patches with augmentation for training deep learning models

Key Features:

  • βœ… Data augmentation (5x per patch)
  • βœ… Preprocessing enabled (outlier removal)
  • βœ… Tile stitching for boundary consistency
  • βœ… Normalized features for deep learning
  • βœ… Patches only (no enriched LAZ)

Configuration:

defaults:
- override /processor: default
- override /features: full
- override /preprocess: default
- override /stitching: enhanced

processor:
lod_level: LOD2
architecture: default
num_points: 16384
sampling_method: random
augment: true
num_augmentations: 5
use_gpu: false

features:
k_neighbors: 20
use_rgb: true
compute_ndvi: true
normalize_xyz: true

output:
format: npz
processing_mode: patches_only

Usage:

ign-lidar-hd process \
--config-file examples/config_training_dataset.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/training

Output:

  • tile_patch_0001.npz, tile_patch_0001_aug_0.npz, ...
  • Each patch has 5 augmented versions

3. config_quick_enrich.yaml - Quick LAZ Enrichment​

Use Case: Fastest option for adding features to LAZ files (GIS workflows)

Key Features:

  • βœ… Minimal features (fastest processing)
  • βœ… No preprocessing or stitching
  • βœ… Enriched LAZ output only
  • βœ… CPU-based (no GPU required)

Configuration:

defaults:
- override /processor: cpu_fast
- override /features: minimal

processor:
lod_level: LOD2
architecture: default
num_points: 16384
use_gpu: false
augment: false

features:
k_neighbors: 10
use_rgb: false
compute_ndvi: false

preprocess:
enabled: false

stitching:
enabled: false

output:
format: npz
processing_mode: enriched_only

Usage:

ign-lidar-hd process \
--config-file examples/config_quick_enrich.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/enriched

Output: tile_enriched.laz files with basic geometric features


4. config_complete.yaml - Complete Workflow​

Use Case: Research projects needing both ML patches AND enriched LAZ files

Key Features:

  • βœ… Both patches and enriched LAZ output
  • βœ… Full preprocessing and stitching
  • βœ… RGB, NIR, and NDVI computation
  • βœ… Data augmentation enabled

Configuration:

defaults:
- override /processor: default
- override /features: full
- override /preprocess: default
- override /stitching: enhanced

processor:
lod_level: LOD2
architecture: default
num_points: 16384
sampling_method: random
augment: true
num_augmentations: 3
use_gpu: false

features:
k_neighbors: 20
use_rgb: true
compute_ndvi: true
normalize_xyz: true

output:
format: npz
processing_mode: both

Usage:

# Option 1: Edit paths in the file, then:
ign-lidar-hd process --config-file examples/config_complete.yaml

# Option 2: Override paths from command line:
ign-lidar-hd process \
--config-file examples/config_complete.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/complete

Output:

  • ML patches: tile_patch_0001.npz, tile_patch_0001_aug_0.npz, ...
  • GIS files: tile_enriched.laz

πŸ”§ Configuration Precedence​

The system follows a clear precedence order for configuration values:

  1. Package Defaults (lowest priority)
    • Built-in defaults from ign_lidar/configs/
  2. Custom Config File (medium priority)
    • Values from your --config-file
  3. CLI Overrides (highest priority)
    • Parameters passed directly on command line

Example​

# config_training_dataset.yaml has num_points=16384
# This command overrides it to 32768
ign-lidar-hd process \
--config-file examples/config_training_dataset.yaml \
input_dir=/path/to/raw \
output_dir=/path/to/output \
processor.num_points=32768 # <-- Overrides config file

πŸ“Š Comparison Table​

ConfigProcessing ModeGPUAugmentRGB/NDVIPreprocessStitchingSpeedUse Case
config_gpu_processingenriched_onlyβœ…βŒβœ…βœ…βœ…Very FastGIS analysis
config_training_datasetpatches_onlyβŒβœ… (5x)βœ…βœ…βœ…MediumML training
config_quick_enrichenriched_only❌❌❌❌❌FastestQuick GIS enrichment
config_completebothβŒβœ… (3x)βœ…βœ…βœ…SlowResearch/Full output

πŸ’‘ Tips​

When to Use Each Config​

Use config_gpu_processing.yaml when:

  • You have NVIDIA GPU with CUDA support
  • You need enriched LAZ files for QGIS/CloudCompare
  • Speed is critical
  • You don't need ML patches

Use config_training_dataset.yaml when:

  • Training PointNet++, transformers, or other models
  • You need data augmentation
  • You want boundary-consistent features
  • ML is your primary goal

Use config_quick_enrich.yaml when:

  • You just need basic features added to LAZ
  • Speed is the top priority
  • You're on a laptop or limited hardware
  • No ML training needed

Use config_complete.yaml when:

  • You need both ML patches AND enriched LAZ
  • Running a research project
  • Want to compare ML vs GIS workflows
  • Disk space is not a concern

Customizing Configs​

Create your own config based on the examples:

# my_custom_config.yaml
defaults:
- override /processor: gpu
- override /features: full

processor:
lod_level: LOD3
num_points: 32768
use_gpu: true
augment: true
num_augmentations: 10

features:
k_neighbors: 30
use_rgb: true
compute_ndvi: true

output:
format: "npz,torch" # Multi-format output
processing_mode: patches_only

input_dir: /mnt/data/lidar_tiles
output_dir: /mnt/data/training_dataset

Then use it:

ign-lidar-hd process --config-file my_custom_config.yaml


πŸ“– Full Example: Training Workflow​

Here's a complete workflow using the example configs:

# Step 1: Download tiles
ign-lidar-hd download \
--position 650000 6860000 \
--radius 5000 \
data/raw_tiles

# Step 2: Create training dataset with augmentation
ign-lidar-hd process \
--config-file examples/config_training_dataset.yaml \
input_dir=data/raw_tiles \
output_dir=data/training

# Step 3: Verify dataset
ign-lidar-hd verify data/training

# Step 4: Preview statistics
python -c "
import numpy as np
from pathlib import Path

patches = list(Path('data/training').glob('*.npz'))
print(f'Total patches: {len(patches)}')

sample = np.load(patches[0])
print(f'Points per patch: {sample[\"points\"].shape[0]}')
print(f'Features: {sample[\"points\"].shape[1]}')
print(f'Available keys: {list(sample.keys())}')
"

This produces a production-ready ML training dataset with:

  • βœ… Consistent patch sizes
  • βœ… Boundary-aware features
  • βœ… 5x augmentation per patch
  • βœ… RGB and NDVI features
  • βœ… Normalized coordinates