feat: docs Sphinx pipeline + lien dashboard header
This commit is contained in:
162
docs/data.rst
Normal file
162
docs/data.rst
Normal file
@@ -0,0 +1,162 @@
|
||||
Données — Stockage et budget disque
|
||||
=====================================
|
||||
|
||||
Où sont stockées les données
|
||||
------------------------------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 30 20 50
|
||||
|
||||
* - Type de donnée
|
||||
- Emplacement
|
||||
- Remarques
|
||||
* - MP4 bruts GoPro
|
||||
- z620 ``/mnt/portablessd``
|
||||
- Ne quittent jamais z620. Jamais copiés sur workers.
|
||||
* - Frames JPEG
|
||||
- Worker ``/cosma-qc-frames/job_{id}/frame_*.jpg``
|
||||
- Conservés pour reprise sur crash. Supprimables après validation du stitch.
|
||||
* - PLY par job
|
||||
- Worker ``/cosma-qc-frames/job_{id}/reconstruction.ply``
|
||||
- Entrée du stitch per_auv.
|
||||
* - PLY stitch par AUV
|
||||
- Worker ``/cosma-qc-frames/stitch_{N}.ply``
|
||||
- Fusion des segments d'un AUV.
|
||||
* - PLY stitch global
|
||||
- Worker ``/cosma-qc-frames/stitch_global.ply``
|
||||
- Nuage de points final toute mission.
|
||||
* - GLB (export web)
|
||||
- Worker ``/cosma-qc-frames/job_{id}/reconstruction.glb``
|
||||
- Généré à la demande. 5M points, ~76 MB.
|
||||
|
||||
|
||||
Budget disque observé
|
||||
----------------------
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 40 30 30
|
||||
|
||||
* - Type
|
||||
- Taille typique
|
||||
- Base de calcul
|
||||
* - Frames JPEG par job
|
||||
- ~11 GB
|
||||
- job 45 min à 2 fps, 1920x1080
|
||||
* - PLY par job (reconstruction)
|
||||
- 2 – 5 GB
|
||||
- dépend de la densité de la scène
|
||||
* - GLB par job (export web)
|
||||
- ~76 MB
|
||||
- 5M points (job_21 observé)
|
||||
* - PLY stitch AUV
|
||||
- variable
|
||||
- somme des PLY segments
|
||||
* - PLY global
|
||||
- variable
|
||||
- somme de tous les AUV
|
||||
|
||||
Pour un AUV avec 4 jobs de 45 min chacun :
|
||||
|
||||
- Frames : 4 x 11 GB = **~44 GB** (supprimables après validation)
|
||||
- PLY jobs : 4 x 3.5 GB = **~14 GB**
|
||||
- PLY stitch AUV : **~6-10 GB**
|
||||
|
||||
|
||||
Politique de nettoyage
|
||||
------------------------
|
||||
|
||||
Frames JPEG
|
||||
^^^^^^^^^^^
|
||||
|
||||
Les frames sont conservées uniquement pour permettre la reprise sur crash.
|
||||
Une fois le stitch per_auv validé visuellement, **les frames peuvent être supprimées**.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Supprimer les frames d'un job (conserver le PLY !)
|
||||
rm -rf /cosma-qc-frames/job_ID/frame_*.jpg
|
||||
rm -f /cosma-qc-frames/job_ID/.video_*.done
|
||||
|
||||
# Vérifier que le PLY est intact avant suppression
|
||||
ls -lh /cosma-qc-frames/job_ID/reconstruction.ply
|
||||
|
||||
PLY intermédiaires
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Les PLY par job peuvent être supprimés après que le stitch per_auv est validé
|
||||
et sauvegardé hors-ligne.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Conserver uniquement le stitch, supprimer les PLY jobs
|
||||
rm /cosma-qc-frames/job_ID/reconstruction.ply
|
||||
|
||||
Vérification espace disque
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Espace total workers
|
||||
ssh floppyrj45@192.168.0.84 "df -h /cosma-qc-frames"
|
||||
ssh floppyrj45@192.168.0.87 "df -h /cosma-qc-frames"
|
||||
|
||||
# Taille par job
|
||||
du -sh /cosma-qc-frames/job_*/
|
||||
|
||||
# Top consommateurs
|
||||
du -sh /cosma-qc-frames/* | sort -rh | head -20
|
||||
|
||||
|
||||
Export GLB
|
||||
-----------
|
||||
|
||||
Le GLB est une version allégée du nuage de points pour visualisation web.
|
||||
|
||||
Génération via l'API dashboard :
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
curl -X POST http://192.168.0.82:3849/jobs/ID/export_glb
|
||||
|
||||
Génération manuelle sur le worker :
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import trimesh, numpy as np
|
||||
pc = trimesh.load('/cosma-qc-frames/job_ID/reconstruction.ply')
|
||||
idx = np.random.choice(len(pc.vertices), 5_000_000, replace=False)
|
||||
sub = trimesh.PointCloud(pc.vertices[idx], colors=pc.colors[idx])
|
||||
sub.export('/cosma-qc-frames/job_ID/reconstruction.glb')
|
||||
|
||||
Téléchargement :
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Lancer le serveur HTTP sur le worker
|
||||
ssh floppyrj45@192.168.0.84 \
|
||||
"python3 -m http.server 8300 --directory /cosma-qc-frames"
|
||||
|
||||
# Télécharger depuis PC
|
||||
wget http://192.168.0.84:8300/job_ID/reconstruction.glb
|
||||
|
||||
|
||||
Reprise sur crash — marqueurs .done
|
||||
-------------------------------------
|
||||
|
||||
Chaque MP4 extrait avec succès génère un fichier marqueur :
|
||||
|
||||
.. code-block:: text
|
||||
|
||||
/cosma-qc-frames/job_ID/.video_0.done
|
||||
/cosma-qc-frames/job_ID/.video_1.done
|
||||
...
|
||||
|
||||
En cas de crash, la reprise saute automatiquement les vidéos déjà traitées.
|
||||
|
||||
Pour forcer une ré-extraction complète :
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
rm /cosma-qc-frames/job_ID/.video_*.done
|
||||
Reference in New Issue
Block a user