#!/bin/bash # Pipeline LiDAR Archéologique # Utilisation: ./run.sh [options] # Options: # -r RESOLUTION Résolution en m/px (défaut: 0.5) # -w WORKERS Nombre de workers parallèles (défaut: 1) # -g Activer l'accélération GPU # -h Afficher l'aide set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" INPUT_DIR="${SCRIPT_DIR}/input" OUTPUT_DIR="${SCRIPT_DIR}/output" IMAGE_NAME="lidar-lidar" RESOLUTION=0.5 WORKERS=1 GPU_FLAG="" while getopts "r:w:gh" opt; do case $opt in r) RESOLUTION="$OPTARG" ;; w) WORKERS="$OPTARG" ;; g) GPU_FLAG="--gpus all" ;; h) echo "Pipeline LiDAR Archéologique" echo "" echo "Usage: $0 [-r RESOLUTION] [-w WORKERS] [-g]" echo "" echo " -r RESOLUTION Résolution en m/px (défaut: 0.5)" echo " -w WORKERS Nombre de workers CPU parallèles (défaut: 1)" echo " -g Activer l'accélération GPU NVIDIA" echo " -h Afficher cette aide" echo "" echo "Exemples:" echo " $0 # Traitement standard" echo " $0 -g # Avec accélération GPU" echo " $0 -g -w 4 # GPU + 4 workers parallèles" echo " $0 -r 0.2 -g # Haute résolution + GPU" exit 0 ;; *) echo "Option invalide. Utilisez -h pour l'aide." >&2; exit 1 ;; esac done # Build l'image si elle n'existe pas if ! docker image inspect "$IMAGE_NAME" >/dev/null 2>&1; then echo "Build de l'image Docker..." docker build -t "$IMAGE_NAME" "$SCRIPT_DIR" fi # Créer les répertoires s'ils n'existent pas mkdir -p "$INPUT_DIR" "$OUTPUT_DIR" # Lancer le pipeline echo "============================================" echo " Pipeline LiDAR Archéologique" echo "============================================" echo " Résolution : ${RESOLUTION}m/px" echo " Workers : ${WORKERS}" echo " GPU : $([ -n "$GPU_FLAG" ] && echo 'OUI' || echo 'non')" echo "============================================" docker run --rm $GPU_FLAG \ --user 1000:1000 \ -v "${INPUT_DIR}:/data/input:ro" \ -v "${OUTPUT_DIR}:/data/output" \ "$IMAGE_NAME" \ python3 /usr/local/bin/process_lidar.py /data/input \ -o /data/output \ -r "$RESOLUTION" \ -w "$WORKERS"