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:
@ -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"
|
||||
|
||||
Reference in New Issue
Block a user