| 🌲 Projet 2 - Le recensement de la forêt Devoir · Semaine 2 - Programmation modulaire · Mission : Forêt boréale |
📋 Voir l'énoncé du projet - la mission, les données, la sortie attendue, les graphiques et la grille.
| 📓 Carnet de terrain - Dre Maya de la Boucle Native de Sainte-Data Nouvelle mission, nouveau décor : la forêt boréale. Pendant deux semaines, mon équipe a recensé les arbres de plusieurs parcelles : espèce, hauteur, diamètre, âge. J'aimerais un programme bien organisé qui lit ces données, en sort des statistiques et me trace des graphiques pour mon rapport. - Maya |
| 🌲 Ta mission |
Tu vas écrire un programme modulaire (découpé en fonctions) qui lit un fichier de données, calcule des statistiques et affiche des graphiques habillés. C'est le travail quotidien en science des données : transformer un fichier brut en information visuelle et en conclusions.
🧭 Comment travailler ce devoir
|
| 🤖 Utilisation de l'intelligence artificielle L'IA (ChatGPT, Claude, Gemini, etc.) est permise pour :
Copier-coller une solution complète sans la comprendre n'est pas accepté et se verra en évaluation. |
📂 Les données de Maya¶
Le fichier recensement-foret.csv contient une ligne par arbre et quatre colonnes : espece, hauteur (m), diametre (cm), age (années).
Les espèces sont epinette, bouleau et sapin (l'épinette et le sapin sont des conifères ; le bouleau est un feuillu).
Pour développer ton code, la cellule suivante recrée un petit fichier d'exemple (l'échantillon).
Le déroulement de lundi 15 juin :
- 8 h : tu remets ton programme qui fonctionne sur l'échantillon (rapport + graphiques produits sur ce petit fichier).
- midi (12 h) : Maya t'envoie les vraies données (beaucoup plus volumineuses). Tu les colles dans cette cellule, tu réexécutes tout, et ton programme produit la sortie finale sans que tu aies à réécrire ton code.
| 📁 Cette cellule crée un fichier En exécutant la cellule ci-dessous, ton code écrit le fichier recensement-foret.csv dans le dossier de travail. C'est ce fichier que ta fonction lireArbres va ensuite lire.Pour voir le fichier, ouvre le panneau latéral des fichiers : dans Colab, clique sur l'icône dossier 📁 à gauche (puis 🔄 pour rafraîchir) ; dans Jupyter, regarde l'explorateur de fichiers à gauche. |
# Donnees de test (echafaud) pour developper ton code.
# LUNDI MIDI (12 h) : colle les VRAIES donnees de Maya entre les triples
# guillemets (a la place de l'echafaud), puis reexecute tout.
contenu = """espece,hauteur,diametre,age
epinette,18.4,32,67
bouleau,12.1,21,34
sapin,9.7,18,22
epinette,21.3,38,80
bouleau,14.6,25,41
sapin,8.0,15,18
epinette,27.8,44,95
bouleau,13.0,23,38
sapin,10.0,20,25
epinette,24.0,40,85
bouleau,15.0,27,45
sapin,9.0,17,21
epinette,19.5,34,72
bouleau,11.0,19,30
sapin,8.5,16,20
epinette,22.5,39,82
"""
with open("recensement-foret.csv", "w", encoding="utf-8") as fichier:
fichier.write(contenu)
print("Fichier pret :", len(contenu.strip().splitlines()) - 1, "arbres.")
| 🎯 Le travail demandé |
En utilisant les notions de la semaine 2 (fonctions, dictionnaires, lecture de fichier, matplotlib) :
Règle de nommage : le nom de chaque fonction commence par un verbe à l'infinitif (lire, calculer, trouver, compter, tracer, afficher).
lireArbres(chemin): lire le fichier et renvoyer la liste des arbres (une liste de dictionnaires).calculerHauteurMoyenne(arbres): renvoyer la hauteur moyenne.trouverArbreDominant(arbres): renvoyer l'arbre le plus haut (l'arbre dominant = celui qui domine la canopée).compterParEspece(arbres): renvoyer le nombre d'arbres par espèce.tracerGraphique(arbres)et les autres fonctions de tracé de la section graphiques ci-dessous.afficherRapport(statistiques): afficher un rapport synthèse pour Maya et l'enregistrer dans un fichierrapport-foret.txt.
Les jeux d'essais (assert) te seront fournis par la professeure pour valider certaines fonctions.
| 🧪 À toi de jouer |
Complète chaque cellule de code sous l'encadré qui l'explique, dans l'ordre.
Documente l'en-tête de chaque fonction par une courte docstring qui dit ce qu'elle fait, et ajoute un commentaire en bout de ligne pour les calculs complexes.
Crée tes propres cellules de code et de texte au fur et à mesure : ajoute des cellules de texte pour expliquer ta démarche étape par étape, et des cellules de code pour tester par petits morceaux (raffinement graduel).
# Etape 1 : lire le fichier
# A COMPLETER : def lireArbres(chemin): ...
# Etape 2 : calculer les statistiques
# A COMPLETER : calculerHauteurMoyenne, trouverArbreDominant, compterParEspece
# Etape 3 : afficher le rapport ET l'enregistrer dans rapport-foret.txt
# A COMPLETER : def afficherRapport(statistiques): ...
| 📊 Les graphiques |
Produis ces quatre graphiques obligatoires, tous habillés (titre, axes nommés, légende au besoin) :
- Nombre d'arbres par espèce - diagramme à barres
- Conifères vs feuillus - camembert
- Hauteur selon l'âge, colorée par espèce - nuage de points (la croissance)
- Distribution des hauteurs - histogramme
Prépare une fonction pour chaque graphique. Ajoute des blocs de texte et de code au fur et à mesure pour les construire et les expliquer.
# Les graphiques obligatoires (titre, axes nommes, legende)
import matplotlib.pyplot as plt
| ✍️ Explique chaque graphique En une phrase par graphique : qu'est-ce qu'il montre, et quelle conclusion en tires-tu ? |
Barres - nombre par espèce : ...
Camembert - conifères vs feuillus : ...
Nuage - hauteur selon l'âge : ...
Histogramme - distribution des hauteurs : ...
📋 La documentation, c'est quatre choses
|
| ⭐ Point bonus (+10) - au choix Pour aller plus loin (facultatif). Au choix - une seule des deux voies te donne le +10 :
|
# Ton bonus ici (au choix) : les barres empilees OU le code de tes 10 fleurs dans la foret
Ce que tu remets¶
- Ton calepin complété et exécuté (les sorties doivent être visibles) : le code en blocs clairs, avec des commentaires au-dessus de chaque fonction.
- Ta documentation : les blocs de texte du calepin + les commentaires + le README (le fichier
README.mdcomplété). Le README décrit ton programme selon le cadre entrées - traitements - sorties et explique ta démarche. - La sortie : à 8 h, celle produite sur l'échantillon ; puis, après avoir collé les vraies données de Maya à midi, la sortie finale (rapport + graphiques).
📔 Carnet de bord (ton README)
README.md dans le dossier du projet).⚠️ Ton README doit être personnalisé pour CE programme, pas une description générale qui irait pour n'importe quel projet du même genre. Dis à quoi il sert pour Maya, décris un peu ses données (le recensement d'arbres : espèce, hauteur, diamètre, âge), et nomme ses sorties : le rapport (affiché et enregistré dans un fichier) et les graphiques (il y en a plusieurs). |