Analysis tool for detecting and measuring gas bubbles in UAV footage of Dziani lake, Mayotte. This project processes drone videos to identify bubble plumes, calculate their positions, and interpolate temporal data.
- Python 3.12 or higher
- FFmpeg (for video processing)
# Installer uv si nécessaire
curl -LsSf https://astral.sh/uv/install.sh | sh
# Créer l'environnement et installer les dépendances
uv sync
# Activer l'environnement
source .venv/bin/activate# Créer l'environnement virtuel
python3.12 -m venv .venv
# Activer l'environnement
source .venv/bin/activate
# Installer les librairies
pip install -r requirements.txt# Installer uv si nécessaire
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# Créer l'environnement et installer les dépendances
uv sync
# Activer l'environnement
.venv\Scripts\activateInstallez ffmpeg sur Windows :
- Téléchargez la version Windows sur https://ffmpeg.org/download.html
- Extrayez le contenu de l'archive téléchargée
- Ajoutez le chemin du dossier "bin" de ffmpeg à la variable d'environnement PATH de Windows
# Créer l'environnement
conda create -n env python=3.12
# Activer l'environnement
conda activate env
# Installer les librairies
pip install -r requirements.txtconda activate env
spyderCréez un fichier .env à la racine du projet avec les variables suivantes :
# Identifiant de la feuille Google Sheets contenant les paramètres de traitement
GG_SHEET_ID=XXXXXXXXXXXXXXXXXXX
# Chemin vers le dossier de données
ROOT_DATA_PATH=/Volumes/data/images
# Chemin vers le dossier de résultats
OUTPUT_PATH=./N est le numéro de la ligne dans la feuille Google Sheets contenant les paramètres de traitement pour une expérience donnée.
uv run DzianiBullage.py N -c
# Exemple:
uv run DzianiBullage.py 4 -c- Analyse des vidéos
uv run DzianiBullage.py N -a
# Exemple:
uv run DzianiBullage.py 10 -a- Calcul des interpolations
uv run DzianiBullage.py N -i
# Exemple:
uv run DzianiBullage.py 4 -i- Calcul Largeur Panache
uv run DzianiBullage.py N -l
# Exemple:
uv run DzianiBullage.py 4 -lSi vous utilisez l'environnement virtuel traditionnel :
python3 DzianiBullage.py N -c
python3 DzianiBullage.py N -a
python3 DzianiBullage.py N -i
python3 DzianiBullage.py N -l-c: Calcul du centre de détection (requis en premier)-a: Analyse des vidéos pour détecter les bulles-i: Calcul des interpolations temporelles-l: Calcul de la largeur du panache
Visualisez les données de télémétrie brutes des fichiers SRT des drones DJI.
# Traiter un seul répertoire
uv run plot_srt.py 0
# Traiter une plage de répertoires
uv run plot_srt.py 0-5
# Spécifier le répertoire racine
uv run plot_srt.py 3-7 --dir /chemin/vers/donneesParamètres :
numeros: Numéro ou plage (ex.0,3-7)--dir: Répertoire racine contenant les dossiersN_resultats_*(défaut :.)
Pour chaque répertoire traité, génère un graphique PNG dans le dossier de résultats :
- Déplacement Est et Nord : variation des coordonnées horizontales depuis le départ en cm
- Déplacement 3D et vertical : distance 3D cumulée et variation verticale depuis le départ en cm
- Variation de hauteur (ΔH) : différence avec la première valeur H enregistrée en m
- Yaw gimbal (G.PRY) : orientation en degrés
- Trajectoire 3D : tracé spatial coloré par le temps, avec points de départ/fin
Projections géodésiques automatiques :
- Avant 2023-01-01 → RGM04 / UTM zone 38S (EPSG:4471)
- À partir de 2023-01-01 → RGM23 / UTM zone 38S (EPSG:10674)
Problème : FFmpeg non trouvé
- Linux/Mac :
brew install ffmpegouapt-get install ffmpeg - Windows : Vérifiez que le chemin FFmpeg est dans PATH
Problème : Erreur d'accès Google Sheets
- Vérifiez que GG_SHEET_ID est correct dans le fichier .env
- Confirmez les permissions d'accès à la feuille
Problème : Module non trouvé
- Vérifiez que l'environnement virtuel est activé
- Réinstallez les dépendances :
pip install -r requirements.txt
UAV_Dziani/
├── DzianiBullage.py # Script principal
├── plot_srt.py # Visualisation données SRT (télémétrie)
├── traitement.py # Fonctions de traitement vidéo
├── utils.py # Utilitaires
├── find_center.py # Détection du centre
├── find_zone.py # Détection de zones
├── cv2_parametres.py # Paramètres OpenCV
├── requirements.txt # Dépendances Python
└── pyproject.toml # Configuration uv
