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,8 +1,8 @@
# Carte LiDAR à tuiles XYZ (image « lidar-maps ») — cf. docs/MAPS.md.
# LiDAR XYZ tile map ("lidar-maps" image) - see docs/MAPS.md.
#
# Sert la pyramide de tuiles Web Mercator (schéma OpenStreetMap) rendue à la
# demande depuis les dalles du pipeline, plus l'interface de consultation.
# Aucun PDAL, aucun GDAL, aucun GPU : Pillow + pyproj suffisent (ARM64 inclus).
# Serves the Web Mercator tile pyramid (OpenStreetMap scheme) rendered from
# the pipeline's source tiles, plus the viewing interface and the PDF export.
# No PDAL, no GDAL, no GPU: Pillow + pyproj + reportlab are enough (ARM64 included).
#
# docker compose -f docker-compose.maps.yml up -d --build
FROM python:3.12-slim
@ -10,9 +10,9 @@ FROM python:3.12-slim
ENV DEBIAN_FRONTEND=noninteractive
ENV TZ=Europe/Paris
# Pillow >= 11.3 : encodage/décodage AVIF natif (dalles et sous-tuiles du
# pipeline) ; pyproj : reprojection Lambert 93 → Web Mercator sans GDAL ;
# reportlab : planche PDF d'impression, pur Python.
# Pillow >= 11.3: native AVIF encoding/decoding (pipeline tiles and
# sub-tiles); pyproj: Lambert 93 -> Web Mercator reprojection without GDAL;
# reportlab: printable PDF sheet, pure Python.
RUN pip3 install --no-cache-dir \
fastapi \
uvicorn \
@ -22,12 +22,14 @@ RUN pip3 install --no-cache-dir \
WORKDIR /app
# Seuls tiles.py, mapserve.py, mapui.py et index.py (registres de couches) sont
# importés ; les modules de traitement sont copiés mais jamais chargés.
# Only modules that import without numpy/GDAL are loaded (mapserve.py,
# tiles.py, mapui.py, index.py for the layer registries, export_pdf.py,
# quality.py, progress.py, fetch_ign.py); the processing modules are copied
# but never loaded.
COPY lidar_pipeline/ ./lidar_pipeline/
# CSS/JS de l'interface bâchés dans l'image : le code de la carte suit l'image,
# pas le cache de tuiles (régénéré à chaque build).
# Interface CSS/JS baked into the image: the map code follows the image,
# not the tile cache (regenerated on every build).
RUN python3 -c "import sys; sys.path.insert(0, '/app'); \
from lidar_pipeline.mapui import write_map_assets, ASSETS_DIRNAME; \
write_map_assets('/app/lidar_pipeline/' + ASSETS_DIRNAME)"
@ -37,10 +39,10 @@ RUN groupadd -g 1000 lidar && \
mkdir -p /data/output && \
chown -R lidar:lidar /data
# Seuil mmap FIXE (1 Mo) : les grands tampons d'image (décodage des dalles,
# ~25 Mo) sont rendus au système dès leur libération. Avec le seuil
# dynamique de glibc, ils restaient dans le tas après la première libération
# et la mémoire du conteneur ne redescendait jamais (OOM sur le Pi).
# FIXED mmap threshold (1 MiB): large image buffers (tile decoding, ~25 MB)
# are returned to the system as soon as they are freed. With glibc's dynamic
# threshold they stayed in the heap after the first free and the container's
# memory never went back down (OOM on the Pi).
ENV LIDAR_OUTPUT_DIR=/data/output \
LIDAR_PORT=8975 \
PYTHONPATH=/app \