File size: 3,375 Bytes
495a61d
3f8bf56
 
 
 
 
 
676811f
3f8bf56
 
 
 
 
fd3d6b6
3f8bf56
fd3d6b6
676811f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3f8bf56
fd3d6b6
3f8bf56
 
 
fd3d6b6
3f8bf56
495a61d
3f8bf56
 
 
 
676811f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
title: Analyse Adventices Agricoles CRA
emoji: 🌾
colorFrom: green
colorTo: blue
sdk: gradio
sdk_version: "4.31.0"
app_file: main.py
pinned: false
license: mit
---

# 🌾 Analyse des Adventices Agricoles - CRA Bretagne

Application Gradio pour analyser et prédire la pression des adventices dans les parcelles agricoles bretonnes, développée pour le hackathon CRA.

## 🏗️ Architecture du Projet

### Structure des fichiers

```
data/
├── __init__.py                 # Package Python
├── main.py                     # Point d'entrée principal
├── config.py                   # Configuration et constantes
├── data_loader.py             # Chargement des données HuggingFace
├── analyzer.py                # Analyse des données et calcul des risques
├── visualizations.py          # Création des graphiques et visualisations
├── interface.py               # Interface utilisateur Gradio
├── app.py                     # [LEGACY] Ancien fichier monolithique
├── app_simple.py              # Version simplifiée
├── requirements.txt           # Dépendances Python
├── sample_data.csv           # Données d'exemple
└── results/                  # Résultats d'analyse
    ├── risk_analysis.csv
    └── risk_visualization.html
```

### Modules

#### 🔧 `config.py`
- Configuration centrale (tokens, URLs, constantes)
- Paramètres des graphiques et de l'interface
- Messages et textes de l'application

#### 📊 `data_loader.py`
- Classe `DataLoader` pour le chargement des données
- Gestion des fallbacks (repo HF → fichiers locaux)
- Nettoyage et validation des données

#### 🧮 `analyzer.py`
- Classe `AgricultureAnalyzer` pour l'analyse des données
- Calcul des statistiques et de l'IFT herbicides
- Classification des risques par parcelle
- Génération des recommandations

#### 📈 `visualizations.py`
- Classe `AgricultureVisualizer` pour les graphiques
- Visualisations Plotly interactives
- Graphiques de risques, cultures, distributions

#### 🖥️ `interface.py`
- Classe `AgricultureInterface` pour l'UI Gradio
- Organisation en onglets
- Gestion des interactions utilisateur

#### 🚀 `main.py`
- Point d'entrée principal
- Orchestration des composants
- Lancement de l'application

## 🎯 Objectifs

- Prédire la pression adventice sur chaque parcelle pour les 3 prochaines campagnes
- Identifier les parcelles à faible risque pour cultures sensibles (pois, haricot)
- Analyser l'IFT herbicides et proposer des alternatives techniques

## 📊 Fonctionnalités

- Analyse exploratoire des données agricoles
- Calcul de l'IFT herbicides approximatif
- Classification des parcelles par niveau de risque
- Visualisations interactives
- Recommandations pour cultures sensibles

## 🚀 Utilisation

### Lancement avec la nouvelle architecture

```bash
python main.py
```

### Lancement avec l'ancien fichier (rétrocompatibilité)

```bash
python app.py
```

## 🔄 Migration

L'ancienne version monolithique (`app.py`) reste disponible pour la rétrocompatibilité. La nouvelle architecture modulaire offre :

- **Meilleure maintenabilité** : Code séparé par responsabilité
- **Réutilisabilité** : Modules indépendants
- **Testabilité** : Tests unitaires plus faciles
- **Extensibilité** : Ajout de nouvelles fonctionnalités simplifié