{ "cells": [ { "cell_type": "markdown", "id": "9ceb5754", "metadata": {}, "source": [ "# Notebook pour algo CRA Bretagne" ] }, { "cell_type": "markdown", "id": "db0aa78f", "metadata": {}, "source": [ "Problématique du Hackathon\n", "Comment anticiper et réduire la pression des adventices dans les parcelles agricoles bretonnes, dans un contexte de réduction progressive des herbicides, en s’appuyant sur l’analyse des données historiques, climatiques et agronomiques, afin d’identifier les parcelles les plus adaptées à la culture de plantes sensibles comme le pois ou le haricot sur les trois prochaines années ?\n", "\n", "🔍 Objectif spécifique du modèle de simulation\n", "Prédire la pression adventice sur chaque parcelle pour les 3 prochaines campagnes.\n", "Identifier les parcelles à faible risque pour y implanter des cultures sensibles (ex. : pois, haricot).\n", "Intégrer les données climatiques, historiques d’intervention, rotations, rendements et IFT.\n", "Proposer des alternatives techniques en cas de retrait de certaines molécules herbicides." ] }, { "cell_type": "markdown", "id": "82875f9b", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 3, "id": "daba851e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ All libraries imported successfully!\n", "📊 Pandas version: 2.3.2\n", "🔢 NumPy version: 2.3.3\n", "🤖 Scikit-learn available\n", "🚀 XGBoost version: 3.0.5\n", "🌍 Geospatial libraries: Available\n" ] } ], "source": [ "# Core data analysis libraries\n", "import pandas as pd\n", "import numpy as np\n", "from datetime import datetime, timedelta\n", "import warnings\n", "warnings.filterwarnings('ignore')\n", "\n", "# Visualization libraries\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import plotly.express as px\n", "import plotly.graph_objects as go\n", "from plotly.subplots import make_subplots\n", "\n", "# Machine learning libraries\n", "from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV\n", "from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier\n", "from sklearn.linear_model import LinearRegression, LogisticRegression\n", "from sklearn.metrics import mean_squared_error, r2_score, classification_report, confusion_matrix\n", "from sklearn.preprocessing import StandardScaler, LabelEncoder\n", "import xgboost as xgb\n", "import lightgbm as lgb\n", "\n", "# Geospatial analysis (for agricultural parcels)\n", "try:\n", " import geopandas as gpd\n", " import folium\n", " GEOSPATIAL_AVAILABLE = True\n", "except ImportError:\n", " GEOSPATIAL_AVAILABLE = False\n", " print(\"Geospatial libraries not available. Some features may be limited.\")\n", "\n", "# Time series analysis\n", "from statsmodels.tsa.seasonal import seasonal_decompose\n", "import statsmodels.api as sm\n", "\n", "# Utility libraries\n", "import os\n", "import json\n", "from pathlib import Path\n", "\n", "# Set plotting style\n", "plt.style.use('seaborn-v0_8')\n", "sns.set_palette(\"husl\")\n", "\n", "print(\"✅ All libraries imported successfully!\")\n", "print(f\"📊 Pandas version: {pd.__version__}\")\n", "print(f\"🔢 NumPy version: {np.__version__}\")\n", "print(f\"🤖 Scikit-learn available\")\n", "print(f\"🚀 XGBoost version: {xgb.__version__}\")\n", "print(f\"🌍 Geospatial libraries: {'Available' if GEOSPATIAL_AVAILABLE else 'Not available'}\")\n" ] }, { "cell_type": "markdown", "id": "e9078046", "metadata": {}, "source": [ "## 📊 Chargement et exploration des données\n", "\n", "Nous allons charger et analyser les données d'interventions agricoles de la Station Expérimentale de Kerguéhennec pour prédire la pression des adventices.\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "b0eec6ed", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "📋 Dimensions du dataset: (653, 34)\n", "📅 Période couverte: 2025 - 2025\n", "🌾 Nombre de parcelles uniques: 45\n", "🏢 Station: Station Expérimentale de Kerguéhennec\n", "\n", "📋 Aperçu des données:\n" ] }, { "data": { "text/html": [ "
| \n", " | millesime | \n", "raisonsoci | \n", "siret | \n", "pacage | \n", "refca | \n", "numilot | \n", "numparcell | \n", "nomparc | \n", "surfparc | \n", "rang | \n", "... | \n", "kqte | \n", "teneurn | \n", "teneurp | \n", "teneurk | \n", "keq | \n", "volumebo | \n", "codeamm | \n", "codegnis | \n", "materiel | \n", "mainoeuvre | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "9100296.0 | \n", "NaN | \n", "PULVERISATEURS, Pulvérisateur ARLAND Hélium + ... | \n", "NaN | \n", "
| 1 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "TRACTEURS CLASSIQUES, Tracteur JOHN DEERE 6R15... | \n", "NaN | \n", "
| 2 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "CULTIVATEURS ET CHISELS, Canadien AMAZONE Ceni... | \n", "NaN | \n", "
| 3 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "512E355 | \n", "TASSE-AVANT, Tasse-avant 3m LABBE ROTIEL Roll-... | \n", "NaN | \n", "
| 4 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "512D830 | \n", "TASSE-AVANT, Tasse-avant 3m LABBE ROTIEL Roll-... | \n", "NaN | \n", "
5 rows × 34 columns
\n", "| \n", " | millesime | \n", "raisonsoci | \n", "siret | \n", "pacage | \n", "refca | \n", "numilot | \n", "numparcell | \n", "nomparc | \n", "surfparc | \n", "rang | \n", "... | \n", "kqte | \n", "teneurn | \n", "teneurp | \n", "teneurk | \n", "keq | \n", "volumebo | \n", "codeamm | \n", "codegnis | \n", "materiel | \n", "mainoeuvre | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "9100296.0 | \n", "NaN | \n", "PULVERISATEURS, Pulvérisateur ARLAND Hélium + ... | \n", "NaN | \n", "
| 1 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "TRACTEURS CLASSIQUES, Tracteur JOHN DEERE 6R15... | \n", "NaN | \n", "
| 2 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "CULTIVATEURS ET CHISELS, Canadien AMAZONE Ceni... | \n", "NaN | \n", "
| 3 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "512E355 | \n", "TASSE-AVANT, Tasse-avant 3m LABBE ROTIEL Roll-... | \n", "NaN | \n", "
| 4 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "512D830 | \n", "TASSE-AVANT, Tasse-avant 3m LABBE ROTIEL Roll-... | \n", "NaN | \n", "
| 5 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "2160226.0 | \n", "NaN | \n", "QUADS, Quad POLARIS 500 cc - DISTRIBUTEUR ENGR... | \n", "NaN | \n", "
| 6 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "150.0 | \n", "2080145.0 | \n", "NaN | \n", "PULVERISATEURS, Pulvérisateur ARLAND Hélium + ... | \n", "NaN | \n", "
| 7 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "100.0 | \n", "2140235.0 | \n", "NaN | \n", "PULVERISATEURS, Pulvérisateur ARLAND Hélium + ... | \n", "NaN | \n", "
| 8 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "100.0 | \n", "2080123.0 | \n", "NaN | \n", "PULVERISATEURS, Pulvérisateur ARLAND Hélium + ... | \n", "NaN | \n", "
| 9 | \n", "2025 | \n", "Station Expérimentale de Kerguéhennec | \n", "18560001000016 | \n", "56021200 | \n", "70000308 | \n", "1 | \n", "12 | \n", "Etang Milieu | \n", "2.28 | \n", "1 | \n", "... | \n", "0.0 | \n", "33.5 | \n", "0.0 | \n", "0.0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "TRACTEURS CLASSIQUES, Tracteur CLAAS Arion 440... | \n", "NaN | \n", "
10 rows × 34 columns
\n", "