Translate the whole project to English and fix outdated comments and help

Comments, docstrings, logs, CLI help, map UI, legends, PDF sheet, scripts,
compose files and AGENTS.md are now English. Data keys stay unchanged
(relief_oriente, densite_sol, visualisations/, API JSON keys, link params).
Wrong comments and help defaults found along the way are corrected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Antoine
2026-09-27 23:16:45 +02:00
parent cc1c22d2b8
commit fb892ea9f2
52 changed files with 4356 additions and 4323 deletions

View File

@ -1,17 +1,17 @@
#!/bin/bash
# download_lidar.sh — Téléchargement de fichiers LiDAR HD depuis l'IGN
# download_lidar.sh - Download LiDAR HD files from IGN
#
# Usage:
# ./download_lidar.sh LHD_FXX_1049_6895_PTS_LAMB93_IGN69.copc.laz
# ./download_lidar.sh 1049_6895
# ./download_lidar.sh 1049_6895 1029_6884
# ./download_lidar.sh --list-zones
# ./download_lidar.sh --search 1049
# ./download_lidar.sh --search 1049_6895
# ./download_lidar.sh --zone RE --output input/
# ./download_lidar.sh --zone RE --dry-run
#
# L'API IGN expose les fichiers organisés par zones (RE, SE, AE, etc.)
# Le script cherche automatiquement dans quelle zone se trouve chaque tuile.
# The IGN API exposes the files grouped by zone (RE, SE, AE, etc.).
# The script automatically finds which zone each tile belongs to.
set -euo pipefail
@ -50,7 +50,7 @@ normalize_name() {
# List all available zone releases
list_zones() {
log_info "Récupération de la liste des zones..."
log_info "Fetching the zone list..."
local page=1
local total_pages=""
@ -110,7 +110,7 @@ search_tile() {
local filename
filename=$(normalize_name "$tile_name")
log_info "Recherche de ${filename} dans toutes les zones..."
log_info "Searching for ${filename} in all zones..."
local page=1
local found=0
@ -140,7 +140,7 @@ except:
local code
code=$(curl -sI -L -o /dev/null -w "%{http_code}" "$url" 2>/dev/null)
if [ "$code" = "200" ]; then
log_ok "Trouvé: ${filename} dans la zone ${release}"
log_ok "Found: ${filename} in zone ${release}"
echo " URL: ${url}"
found=1
fi
@ -167,7 +167,7 @@ except:
done
if [ "$found" -eq 0 ]; then
log_err "${filename} non trouvé dans aucune zone"
log_err "${filename} not found in any zone"
fi
}
@ -195,10 +195,10 @@ download_file() {
if [ "$magic" = "4c415346" ]; then
local size
size=$(stat -c%s "$output_path" 2>/dev/null || echo "0")
log_ok "${filename} téléchargé (${size} octets)"
log_ok "${filename} downloaded (${size} bytes)"
return 0
else
log_err "${filename} n'est pas un fichier LAZ valide (magic: ${magic})"
log_err "${filename} is not a valid LAZ file (magic: ${magic})"
rm -f "$output_path"
return 1
fi
@ -208,19 +208,19 @@ download_file() {
if [ $exit_code -eq 18 ]; then
local size
size=$(stat -c%s "$output_path" 2>/dev/null || echo "0")
log_warn "Téléchargement partiel (${size} octets), tentative ${retry}/${max_retries}..."
log_warn "Partial download (${size} bytes), attempt ${retry}/${max_retries}..."
sleep 2
continue
fi
# HTTP 404
if echo "$result" | grep -q "404"; then
log_err "Fichier non trouvé (404): ${url}"
log_err "File not found (404): ${url}"
rm -f "$output_path"
return 1
fi
log_err "Erreur curl (${exit_code}): ${result}"
log_err "curl error (${exit_code}): ${result}"
return 1
done
@ -230,11 +230,11 @@ download_file() {
if [ "$magic" = "4c415346" ]; then
local size
size=$(stat -c%s "$output_path" 2>/dev/null || echo "0")
log_warn "Fichier partiel mais valide: ${filename} (${size} octets)"
log_warn "Partial but valid file: ${filename} (${size} bytes)"
return 0
fi
log_err "Échec après ${max_retries} tentatives"
log_err "Failed after ${max_retries} attempts"
rm -f "$output_path"
return 1
}
@ -255,15 +255,15 @@ find_and_download() {
local size
size=$(stat -c%s "$output_path" 2>/dev/null || echo "0")
if [ "$size" -gt 1000000 ]; then
log_info "${filename} déjà présent (${size} octets) — ignoré"
log_info "${filename} already present (${size} bytes) - skipped"
return 0
fi
fi
# File exists but seems invalid/truncated, re-download
log_warn "${filename} existe mais semble incomplet, re-téléchargement..."
log_warn "${filename} exists but looks incomplete, downloading again..."
fi
log_info "Recherche de ${filename}..."
log_info "Looking for ${filename}..."
# Try all zone releases
local page=1
@ -291,7 +291,7 @@ except:
local code
code=$(curl -sI -L -o /dev/null -w "%{http_code}" "$url" 2>/dev/null || echo "000")
if [ "$code" = "200" ]; then
log_ok "Trouvé dans la zone ${release}"
log_ok "Found in zone ${release}"
download_file "$url" "$output_path"
return 0
fi
@ -317,7 +317,7 @@ except:
page=$((page + 1))
done
log_err "${filename} non trouvé dans aucune zone disponible"
log_err "${filename} not found in any available zone"
return 1
}
@ -366,7 +366,7 @@ except:
done
if [ -z "$release" ]; then
log_err "Zone '${zone}' non trouvée"
log_err "Zone '${zone}' not found"
return 1
fi
@ -407,7 +407,7 @@ except:
if [ "$dry_run" = "true" ]; then
echo "$files" | head -10
echo "... (${count} fichiers sur cette page)"
echo "... (${count} files on this page)"
else
echo "$files" | while read -r fname; do
local url="${BASE_URL}/${release}/${fname}"
@ -422,39 +422,39 @@ except:
fi
done
log_info "Total: ${total_files} fichiers dans la zone ${zone}"
log_info "Total: ${total_files} files in zone ${zone}"
}
# Show usage
usage() {
cat <<'EOF'
download_lidar.sh — Téléchargement de fichiers LiDAR HD depuis l'IGN
download_lidar.sh - Download LiDAR HD files from IGN
Usage:
./download_lidar.sh <tuile> [tuile2...] Télécharger une ou plusieurs tuiles
./download_lidar.sh --search <motif> Chercher une tuile dans toutes les zones
./download_lidar.sh --list-zones Lister les zones disponibles
./download_lidar.sh --zone <ZONE> [--dry-run] Télécharger une zone entière
./download_lidar.sh --check [dossier/] Vérifier l'intégrité des fichiers LAZ
./download_lidar.sh <tile> [tile2...] Download one or more tiles
./download_lidar.sh --search <tile> Look for a tile in all zones
./download_lidar.sh --list-zones List the available zones
./download_lidar.sh --zone <ZONE> [--dry-run] Download a whole zone
./download_lidar.sh --check [folder/] Check the integrity of LAZ files
Formats de tuile acceptés:
1049_6895 Coordonnées seules
LHD_FXX_1049_6895_PTS_LAMB93_IGN69 Nom complet sans extension
LHD_FXX_1049_6895_PTS_LAMB93_IGN69.copc.laz Nom complet avec extension
Accepted tile formats:
1049_6895 Coordinates only
LHD_FXX_1049_6895_PTS_LAMB93_IGN69 Full name without extension
LHD_FXX_1049_6895_PTS_LAMB93_IGN69.copc.laz Full name with extension
Options:
-o, --output DIR Répertoire de destination (défaut: .)
-n, --dry-run Afficher sans télécharger (avec --zone)
--check [DIR] Vérifier l'intégrité des fichiers LAZ (défaut: ./)
--list-zones Lister toutes les zones disponibles
--search MOTIF Chercher un motif dans les noms de tuile
--zone ZONE Télécharger tous les fichiers d'une zone
-h, --help Afficher cette aide
-o, --output DIR Destination directory (default: . or $OUTPUT_DIR)
-n, --dry-run List without downloading (with --zone)
--check [DIR] Check the integrity of LAZ files (default: ./)
--list-zones List all available zones
--search TILE Look for a tile (same formats as above) in all zones
--zone ZONE Download every file of a zone
-h, --help Show this help
Exemples:
Examples:
./download_lidar.sh 1049_6895
./download_lidar.sh LHD_FXX_0713_6347_PTS_LAMB93_IGN69.copc.laz -o input/
./download_lidar.sh --search 1049
./download_lidar.sh --search 1049_6895
./download_lidar.sh --list-zones
./download_lidar.sh --zone RE -o input/
./download_lidar.sh --check input/
@ -467,7 +467,7 @@ check_files() {
local ok=0
local fail=0
log_info "Vérification de l'intégrité des fichiers LAZ dans ${dir}/"
log_info "Checking the integrity of LAZ files in ${dir}/"
for f in "${dir}"/*.copc.laz "${dir}"/*.laz; do
[ -f "$f" ] || continue
@ -477,21 +477,21 @@ check_files() {
size=$(stat -c%s "$f" 2>/dev/null || echo "0")
if [ "$magic" = "4c415346" ] && [ "$size" -gt 1000000 ]; then
log_ok "$(basename $f) (${size} octets)"
log_ok "$(basename $f) (${size} bytes)"
ok=$((ok + 1))
elif [ "$magic" = "7b227469" ]; then
log_err "$(basename $f) est une page HTML (404), pas un fichier LAZ"
log_err "$(basename $f) is an error page (404), not a LAZ file"
fail=$((fail + 1))
elif [ "$size" -lt 1000 ]; then
log_err "$(basename $f) trop petit (${size} octets) — probablement corrompu"
log_err "$(basename $f) too small (${size} bytes) - probably corrupted"
fail=$((fail + 1))
else
log_warn "$(basename $f) magic=${magic}, taille=${size} — vérification nécessaire"
log_warn "$(basename $f) magic=${magic}, size=${size} - needs checking"
fail=$((fail + 1))
fi
done
log_info "Résultat: ${ok} OK, ${fail} problème(s)"
log_info "Result: ${ok} OK, ${fail} problem(s)"
return 0
}
@ -539,7 +539,7 @@ while [ $# -gt 0 ]; do
shift
;;
-*)
log_err "Option inconnue: $1"
log_err "Unknown option: $1"
usage
exit 1
;;
@ -561,7 +561,7 @@ case "${CMD}" in
;;
zone)
if [ -z "$ZONE" ]; then
log_err "Zone non spécifiée. Utilisez --zone <CODE>"
log_err "No zone given. Use --zone <CODE>"
exit 1
fi
mkdir -p "$OUTPUT_DIR"