Porter la génération de tuiles dans lidar-maps et retirer l'ancienne webapp

La carte à tuiles XYZ devient la seule interface : l'API de génération
(preview, generate, status, stop, file, cell), le job unique + file
persistante, la délégation LIDAR_GENERATION_URL et les garde-fous
(token, LIDAR_REGEN_CIDR) passent de webapp.py à mapserve.py ; l'interface
gagne les boutons + Zone / ⤒ Compléter / régénération à la dalle, les
options de run et la progression cadre par cadre. mapserve sert aussi
l'inventaire /api/tiles et les dalles en statique versionné : le worker
image complète remplace la webapp sur le 8973 du générateur, le Pi
n'exécute plus que lidar-maps. index.py se réduit aux registres partagés
+ vignettes/sous-tuiles/inventaire (l'UI HTML/JS et les mosaïques
d'overview partent avec export.py et les compose/scripts de la webapp).
This commit is contained in:
Antoine Jacquin
2026-09-23 23:21:05 +02:00
parent 81defa85c9
commit 0a2ccee958
31 changed files with 1774 additions and 8465 deletions

View File

@ -1,11 +1,11 @@
"""Progression structurée d'un run de génération (contrat pipeline → interface).
Le pipeline et le téléchargement IGN écrivent des événements JSON ligne à
ligne dans <sortie>/.generation.events.jsonl ; la webapp les agrège via
ligne dans <sortie>/.generation.events.jsonl ; mapserve les agrège via
/api/status pour afficher les tuiles une par une (nom, type, état) dans la
file de génération, à la place du journal brut.
Module volontairement découplé de la webapp : le rendu des tuiles pourra être
Module volontairement découplé du serveur : le rendu des tuiles pourra être
déporté hors du serveur web — le producteur d'événements ne dépend que du
dossier de sortie. Les workers parallèles écrivent chacun leur ligne en mode
ajout (une ligne < 4 Ko avec O_APPEND est atomique sur POSIX).
@ -156,7 +156,7 @@ def aggregate_tiles(events, viz_labels=None):
def progress_snapshot(output_dir, viz_labels=None, run_id=None):
"""État consolidé des tuiles du dernier run (prêt pour /api/status).
run_id (LIDAR_RUN_ID posé par la webapp) : ne garde que les événements de
run_id (LIDAR_RUN_ID posé par mapserve) : ne garde que les événements de
CE run — les workers d'un run annulé peuvent continuer d'écrire (O_APPEND)
après la troncature du journal par le run suivant, et pollueraient sinon
la file affichée. Sans run_id (run CLI autonome) : tout le journal.