- find_first_submersion_epoch(): premier rel_alt < -2m pendant >= 5s continu - detect_runs_state_based(): rejette runs avant first_sub_epoch, tronque chevauchants - CLI: --first-submersion-depth (default -2.0) + --first-submersion-duration (default 5.0) - JSON output: first_submersion_epoch + pre_water_rejected_count par AUV - Lepradet: AUV212 run_00 tronqué 25s, AUV213 run_00 tronqué 11s
cosma-pipeline
Pipeline autonome de reconstruction COSMA.
Structure
pipeline/
├── config/ # Seuils QA + params par défaut (versionnés)
├── orchestrator/ # DB SQLite, dispatcher, FastAPI
├── stages/ # Modules indépendants 01..08
├── qa/ # Vérifications pass/fail/degraded
└── cron/ # Auto-itération 6h
Usage rapide
# 1. Ingest
python3 pipeline/stages/01_ingest.py /mnt/ssd/20260505-Lepradet --name 20260505-Lepradet
# 2. Parse USBL
python3 pipeline/stages/02_usbl_parse.py /home/cosma/cosma-pipeline/20260505-Lepradet/manifest.json
# 3. Filter
python3 pipeline/stages/03_usbl_filter.py /home/cosma/cosma-pipeline/20260505-Lepradet/02_usbl_raw/
Notes données
logs/SUB/log/*_usbl.csv= bytes série bruts (Waterlinked M64), PAS lat/lon- Navigation réelle dans
logs/SUB/bag/*.mcap(ROS2 MCAP) - Mapping AUV : vidéos utilisent AUV2xx, bags utilisent AUV0xx (même 2 derniers chiffres)