feat: auto-generate metadata markdown for each panorama

Includes: coverage, FOV, camera specs, photogrammetry reference,
equirectangular projection info, timing, image list.

Also: docker-compose user fix (1000:100) to avoid root-owned files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Franck Garnier
2026-04-12 22:34:00 -04:00
parent 85e9645363
commit 1aacaea084
3 changed files with 233 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ import cv2
import glob
import math
import mysql.connector
from panorama_metadata import generate_metadata
import numpy as np
import os
import re
@@ -515,6 +516,19 @@ def run_pipeline(work_dir, clahe_images, original_images, azs, els,
if os.path.exists(out_tif):
os.remove(out_tif)
# Generate metadata file
try:
generate_metadata(
work_dir=work_dir, output_name=output_name,
sol=int(re.search(r'\d+', output_name).group()),
camera=camera or "unknown", rover="perseverance",
azs=azs, els=els, img_w=img_w, img_h=img_h, fov=fov,
n_cps=len(cp_lines), timings=timings,
original_images=original_images, blender=blender,
output_png=out_png)
except Exception as e:
print(f" Warning: metadata generation failed: {e}")
return out_png, timings