# Développement d'un outil de reporting automatique pour l'évaluation des modèles de simulation de prairies européennes

Louis Campiglia

► To cite this version:

Louis Campiglia. Développement d'un outil de reporting automatique pour l'évaluation des modèles de simulation de prairies européennes. Modélisation et simulation. 2025. hal-05227768

HAL Id: hal-05227768

https://hal.inrae.fr/hal-05227768v1

Submitted on 28 Aug 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Rapport de stage : Développement d'un outil de reporting automatique pour l'évaluation des modèles de simulation de prairies européennes.

Louis Campiglia

Master 2 parcours Statistiques et Sciences des Données,
Université Grenoble Alpes

Stage du 03 mars 2025 au 28 août 2025

Unité Mixte de Recherche sur l'Écosystème Prairial (UREP)
Centre INRAE Clermont-Auvergne-Rhône-Alpes
5 chemin de Beaulieu, 63000 Clermont-Ferrand

Tuteur de stage : Raphaël Martin

Projet : SAMPA

Porteurs du projet : Gianni Bellocchi, Julien Morel

Enseignant référent : Jean-François Coeurjolly
Table des matières

<table><tr><td>Remerciements</td><td>2</td></tr><tr><td>Introduction</td><td>2</td></tr><tr><td>I. Contexte du projet</td><td>3</td></tr><tr><td>1. Présentation de l'INRAE et de l'UREP</td><td>3</td></tr><tr><td>2. Collaboration avec le Joint Research Centre de la Commission européenne</td><td>3</td></tr><tr><td>3. Objectifs du stage</td><td>4</td></tr><tr><td>II. Etat de l'art</td><td>4</td></tr><tr><td>1. Les prairies : un écosystème clé de l'agriculture européenne</td><td>4</td></tr><tr><td>2. La modélisation des écosystèmes prairiaux</td><td>5</td></tr><tr><td>3. L'évaluation des modèles et l'approche « ensemble modelling »</td><td>6</td></tr><tr><td>III. Méthodologie et résultats</td><td>8</td></tr><tr><td>1. Structuration de données au niveau européen</td><td>8</td></tr><tr><td>2. Création de l'outil de reporting pour l'évaluation des modèles</td><td>10</td></tr><tr><td>1) Structure de l'outil</td><td>10</td></tr><tr><td>2) Choix des indicateurs</td><td>11</td></tr><tr><td>3) Présentation des rapports générés automatiquement</td><td>12</td></tr><tr><td>4) Analyse des résultats</td><td>16</td></tr><tr><td>3. Outil de reporting à l'échelle de la grille INSPIRE et des régions NUTS</td><td>17</td></tr><tr><td>IV. Discussion</td><td>18</td></tr><tr><td>1. Interprétations</td><td>19</td></tr><tr><td>2. Limites et perspectives</td><td>19</td></tr><tr><td>3. Reproductibilité</td><td>19</td></tr><tr><td>4. Apports du stage</td><td>20</td></tr><tr><td>5. Impact social et environnemental</td><td>21</td></tr><tr><td>Conclusion</td><td>22</td></tr><tr><td>Références</td><td>23</td></tr><tr><td>Annexes</td><td>27</td></tr></table>
## Remerciements

Je tiens à remercier mon maître de stage Raphaël Martin, responsable de la cellule informatique, modélisation et données de l'Unité de Recherche sur l'Ecosystème Prairial (UREP) d'INRAE, de m'avoir accordé sa confiance et permis de réaliser ce stage dans son équipe. Son encadrement et ses conseils, notamment lors de nos réunions hebdomadaires, ont été déterminants pour la réussite de mon travail. Je suis également reconnaissant envers Gianni Bellocchi, directeur de recherche à l'UREP et co-responsable du projet SAMPA, dans lequel s'inscrit mon stage.

Je remercie toute l'équipe de l'UREP pour son accueil chaleureux au sein de l'unité durant ces six mois. Je souhaite aussi remercier les membres de l'équipe modélisation avec lesquels j'ai eu l'opportunité de travailler. En particulier, Maureen Duport, elle aussi stagiaire dans le cadre du projet SAMPA, avec qui j'ai collaboré afin que nos travaux soient complémentaires, et dont j'ai utilisé l'interface de modélisation.

Je remercie également les ingénieurs et chercheurs du Joint Research Centre impliqués dans le projet SAMPA : Julien Morel, Davide Fumagalli et Mattia Rossi. Leurs retours, en particulier lors des réunions bimensuelles du projet, m'ont permis d'améliorer mon travail.

Je suis aussi reconnaissant envers Gianni Bellocchi et Raphaël Martin pour leurs relectures de ce rapport et leurs retours qui ont permis de l'améliorer.

## Introduction

À l'échelle mondiale, les prairies représentent 36 % des surfaces continentales, à peu près autant que les forêts et que les terres arables réunies¹. Les prairies sont des écosystèmes complexes qui jouent un rôle très important dans le contexte du changement climatique, notamment grâce à leur capacité de stocker de manière pérenne le carbone dans leur sol.

Le Joint Research Centre (JRC) de la Commission européenne est responsable de la production de bulletins de prévision des rendements des grandes cultures en Europe, et souhaite désormais y intégrer les prairies. Dans le cadre du projet SAMPA (« Soutien aux politiques Agricoles par la Modélisation Prairiale Avancée »), financé par la Direction d'Appui aux Politiques Publiques d'INRAE pour la période 2024-2027, il collabore avec l'Unité de Recherche sur l'Ecosystème Prairial (UREP) d'INRAE afin d'intégrer de nouveaux modèles de simulation de ces écosystèmes à sa librairie nommée GraminR. L'un des besoins du projet est de faciliter l'évaluation des performances de ces modèles à partir des données expérimentales disponibles.

Dans le cadre de mon stage de Master 2 en Statistiques et Sciences des Données au sein de l'UREP, mon objectif est de développer des outils de reporting en R, permettant d'évaluer les performances de plusieurs modèles, et ce principalement grâce à la comparaison des résultats des simulations avec des données observées. Les résultats obtenus avec ces outils visent à permettre de valider ou non les nouveaux modèles intégrés à la librairie du JRC. La reproductibilité des outils permettra leur réutilisation avec de nouvelles données expérimentales ou de nouveaux modèles de simulation des écosystèmes prairiaux. Un travail sur la structuration de données européennes est aussi nécessaire, afin de pouvoir intégrer de nouvelles données de validation.
# I. Contexte du projet

## 1. Présentation de l'INRAE et de l'UREP

L'Institut National de Recherche pour l'Agriculture, l'Alimentation et l'Environnement (INRAE) est un organisme public français de recherche, issu de la fusion en 2020 de l'INRA (Institut National de la Recherche Agronomique) et de l'IRSTEA (Institut National de Recherche en Sciences et Technologies pour l'Environnement et l'Agriculture). Il rassemble une communauté de travail de 12 000 personnes, dans 18 centres à travers la France, comprenant 268 unités de recherche, de service et expérimentales. C'est l'un des leaders mondiaux de la recherche en agronomie, écologie et sciences du vivant. Son objectif est de relever les défis liés à la sécurité alimentaire, à la transition agroécologique et à l'adaptation au changement climatique.

L'Unité Mixte de Recherche sur l'Ecosystème Prairial (UREP), située sur le site de Crouël du Centre Clermont-Auvergne-Rhône-Alpes d'INRAE, étudie l'agroécologie de l'écosystème prairial dans un contexte de changements globaux, notamment climatiques, et des pratiques de gestion. Elle possède une expertise internationale dans les domaines des cycles du carbone et de l'azote (bilan des gaz à effet de serre et séquestration de carbone), de l'assemblage des communautés végétales et des interactions biotiques (plante-sol-animal) ainsi que de leurs conséquences sur le fonctionnement des prairies. La démarche de l'UREP combine observation, expérimentation et modélisation. Au sein de l'unité, une équipe informatique est spécialisée dans la modélisation des écosystèmes prairiaux et a développé plusieurs outils et modèles.

## 2. Collaboration avec le Joint Research Centre de la Commission européenne

La Commission européenne est l'institution exécutive de l'Union Européenne (UE). Elle est composée de 27 commissaires, proposés par les gouvernements nationaux des États membres puis soumis à un processus d'approbation par le Parlement européen. Dotée du monopole de l'initiative législative, la Commission joue un rôle central dans l'élaboration des politiques européennes. Elle veille également à la correcte application du droit de l'UE. Son action s'exerce sous le contrôle démocratique conjoint du Parlement européen (représentant les citoyens) et du Conseil de l'UE (représentant les États membres au niveau ministériel) ².

L'agriculture et l'environnement sont deux domaines stratégiques relevant des compétences de la Commission européenne. La Politique Agricole Commune (PAC), qui vise à soutenir les agriculteurs et assurer la sécurité alimentaire du continent tout en réduisant l'impact environnemental du secteur, est le premier poste de dépense de l'Union Européenne. La PAC repose notamment sur l'octroi d'aides financières aux agriculteurs conditionnées au respect de pratiques durables. Dans le cadre du Pacte Vert européen (Green Deal) ³, la stratégie Farm-to-Fork ⁴, lancée en 2020, sert de feuille de route pour rendre le système alimentaire européen plus durable, équitable et résilient. Pour éclairer ses prises de décision, la Commission peut compter sur le Joint Research Centre (JRC), ou Centre Commun de Recherche, son service interne de conseil scientifique. Au sein du JRC, l'équipe AGRI4CAST ⁵, basée à Ispra en Italie, est notamment chargée de produire des bulletins mensuels de prévisions de rendements agricoles à l'échelle de l'Union Européenne ⁶. Ces bulletins fournissent des analyses détaillées des conditions agro-météorologiques (ex. : sécheresse, gel, excès ou déficit hydrique) et des prévisions de rendement pour les principaux types de cultures, au niveau continental et régional. Ces bulletins sont utilisés pour appuyer les décisions de la Commission européenne, en particulier dans le cadre de la gestion des marchés agricoles et de la sécurité alimentaire.

Dans l'UE, les prairies couvrent plus de 50 millions d'hectares ; elles permettent l'alimentation des animaux d'élevage et jouent un rôle très important pour la biodiversité, le climat, la qualité des sols et de l'eau. L'intégration de la modélisation des prairies dans les bulletins agro-météorologiques produits par le
JRC apparaît donc comme un besoin important ⁷, en particulier dans le contexte de la mise en œuvre de la stratégie Farm-to-Fork. Pour répondre à ce besoin, un accord-cadre entre l'INRAE et le JRC a permis le lancement d'un projet collaboratif entre l'équipe AGRI4CAST du JRC et l'UREP. Ce projet, intitulé SAMPA (Soutien aux politiques Agricoles par la Modélisation Prairial Avancée), est soutenu par la Direction de l'Appui aux Politiques Publiques d'INRAE pour la période 2024-2027. L'objectif principal du projet est d'intégrer de nouveaux modèles de fonctionnement des écosystèmes prairiaux dans la librairie de modélisation utilisée par la Commission européenne, afin d'inclure les prairies dans les bulletins de prévision de rendement. Cette modélisation s'appuiera sur des données météorologiques et satellitaires à résolution spatiale de 10x10 km, et tiendra compte de plusieurs scénarios agro-climatiques. Une approche fondée sur l'utilisation conjointe de plusieurs modèles différents ou modélisation d'ensemble (« ensemble modelling ») est envisagée pour accroître la robustesse des prévisions.

### 3. Objectifs du stage

Dans le cadre du projet SAMPA, plusieurs travaux sont menés conjointement dans le but d'intégrer de nouveaux modèles de simulation de prairies à la librairie multi-modèles de la Commission européenne. Deux stages se déroulent en parallèle : celui de Maureen Duport qui vise à encapsuler les modèles PaSim, ModVege et GrasProg au sein du paquet R GraminR, et le mien qui vise à développer des outils permettant d'évaluer les performances de ces trois modèles. Afin de limiter cette relation de dépendance en début de stage, j'ai développé mes outils en utilisant uniquement le modèle PaSim, dont il existe plusieurs paramétrages, puis, en fin de stage, le package développé par Maureen Duport m'a permis d'intégrer les simulations des autres modèles à mon travail.

Le but principal de mon stage est de mettre en place des méthodes statistiques permettant d'évaluer les modèles PaSim, GrasProg et ModVege à l'aide de données issues de sites expérimentaux. Ce travail doit être effectué dans le langage R, en développant un outil permettant de créer automatiquement des rapports de résultats, afin d'automatiser l'évaluation des modèles. Durant mon stage, j'ai également participé à la structuration des données nécessaires à la modélisation, à partir des bases de données européennes du JRC.

Ce stage de six mois s'inscrit dans le cadre de mon Master 2 parcours Statistiques et Science des Données de l'Université Grenoble Alpes. Il se déroule au sein de l'UREP, sous l'encadrement de Raphaël Martin, ingénieur de recherche et responsable de l'équipe informatique, modélisation et data de l'Unité, ainsi que sous la responsabilité scientifique de Gianni Bellocchi, directeur de recherche à l'UREP, et Julien Morel, agent de recherche du JRC basé à Ispra en Italie.

## II. Etat de l'art

### 1. Les prairies : un écosystème clé de l'agriculture européenne

Les prairies sont des surfaces agricoles couvertes de plantes herbacées destinées à être soit pâturées (consommées directement sur place par le bétail) soit fauchées (récoltées pour constituer des stocks de fourrage, notamment pour l'alimentation hivernale). On distingue généralement deux grands types de prairies : les prairies permanentes et les prairies temporaires. D'après la définition de l'Union Européenne actuellement en vigueur, les prairies permanentes, qui peuvent être naturelles ou semées, n'ont été incluses dans aucune rotation culturale depuis plus de cinq ans ⁸. On les retrouve principalement dans des zones montagneuses ou sur des sols aux caractéristiques limitantes (pente, texture, hydromorphie). Elles présentent une grande diversité floristique et un équilibre écologique stable, ce qui les rend plus résilientes
⁹. Les prairies temporaires, intégrées dans les rotations culturales, sont semées et périodiquement retournées. Elles offrent une meilleure productivité et sont souvent utilisées pour la fauche. Le principal nutriment pouvant limiter la croissance des herbacés est l'azote (N), mais il est possible d'enrichir le sol grâce à des engrais minéraux ou des fertilisants organiques, comme le fumier.

Dans l'Union Européenne actuelle, les prairies couvrent environ 54 millions d'hectares, avec 85% de prairies permanentes et 15% de prairies temporaires ¹⁰,¹¹. Ces prairies représentent 39% de la Surface Agricole Utile (SAU) - laquelle comprend les terres arables (grandes cultures, cultures maraîchères...), les surfaces toujours en herbe (prairies permanentes...) et les cultures pérennes (vignes, vergers...) - ainsi que plus de 15% de la surface totale de l'UE. Depuis que le Royaume-Unis a quitté l'Union Européenne, la France est le premier pays de l'UE en surface de prairie, avec une couverture représentant 54% de sa SAU et 29% de son territoire ¹¹. Il y a de grandes disparités dans la répartition des surfaces de prairies, à la fois entre les pays de l'UE et entre les régions françaises, comme le montre la carte en **Annexe 1** pour les prairies permanentes. De plus, le rendement en matière sèche par hectare peut varier dans un rapport de 1 à 10 entre des régions arides comme le sud du Portugal et des régions tempérées humides comme le nord de l'Allemagne ¹⁰. Historiquement, la surface des prairies permanentes a connu une croissance pendant un siècle en Europe, avant de connaître une régression entre 1970 et 2010, tout en restant stable en proportion de la SAU ¹². La Politique Agricole Commune (PAC) européenne inclus des dispositifs règlementaires et incitatifs visant à préserver les prairies permanentes et à maintenir leur surface aux niveaux régionaux ¹³.

Le changement climatique impacte fortement l'agriculture, qui est elle-même une source importante d'émissions de gaz à effet de serre (GES). A l'échelle de l'UE, le secteur agricole représente environ 11% des émissions de GES, soit 366 millions de tonnes équivalent CO₂ en 2022, en baisse de près de 25% par rapport à 1990 ¹⁴. En France, la part du secteur agricole dans les émissions de GES est de 19% ¹⁵. Cette part relativement élevée s'explique notamment par le poids de l'élevage bovin, responsable d'environ 50% des émissions agricoles en France, provenant principalement du méthane (CH₄) émis lors de la fermentation entérique des ruminants et du protoxyde d'azote (N₂O) libéré lors de la dégradation des déjections animales et de l'utilisation d'engrais azotés ¹⁰. Dans ce contexte, les prairies jouent un rôle très important, car elles agissent comme puits de gaz à effet de serre. En effet, les prairies permanentes, rarement labourées, stockent une grande quantité de carbone dans le sol. Au-delà de leur capacité à stocker du carbone, les prairies contribuent aussi à d'autres services écosystémiques majeurs : elles préservent la qualité de l'eau, limitent l'érosion des sols et abritent une biodiversité importante. Elles permettent également de préserver les paysages et les dynamiques économiques des zones rurales ¹⁶. Les prairies temporaires, intégrées dans les rotations culturales, participent à réduire les besoins en intrants (engrais, pesticides) des cultures suivantes, et améliorent la structure et la fertilité des sols. Dans le même temps, les écosystèmes prairiaux sont aussi impactés par le changement climatique. L'augmentation des températures, ainsi que l'augmentation de la probabilité de certains évènements climatiques extrêmes, comme les sécheresses dans certaines régions, font évoluer l'équilibre de ces écosystèmes.

## 2. La modélisation des écosystèmes prairiaux

Les prairies sont des écosystèmes dynamiques et complexes, ayant de nombreuses interactions avec leur environnement. L'étude de ces écosystèmes en conditions réelles est difficile et couteuse, c'est pourquoi la modélisation s'impose comme une approche essentielle pour leur analyse. Au cours des dernières décennies, de nombreux modèles ont été développés, présentant des objectifs et niveaux de complexité différents. Un modèle peut être déterministe (sans composante aléatoire) ou stochastique, dynamique (intégrant des équations différentielles en fonction du temps) ou analytique (relation simple entre variables), ainsi que mécaniste (fondé sur une compréhension approfondie du fonctionnement du système et l'explication des mécanismes modélisés), semi-mécaniste ou empirique (reposant uniquement sur des équations prédictives statistiques).
Dans le cadre de mon stage, j'ai spécifiquement étudié trois modèles de prairies : PaSim, GrasProg et ModVege. J'ai construit un tableau présentant les caractéristiques de ces trois modèles, en **Annexe 2**, à partir de la littérature ¹⁷⁻²².

PaSim ¹⁷⁻¹⁹, codé en Fortran, est l'un des modèles les plus complets et complexes pour la modélisation des écosystèmes prairiaux. Il s'agit d'un modèle biogéochimique, mécaniste, déterministe et dynamique. Il a été conçu pour simuler le fonctionnement des prairies permanentes européennes. PaSim représente de manière détaillée les flux de carbone (C), azote (N), eau et énergie à l'interface entre le sol, la végétation, les animaux et l'atmosphère. Il simule l'évolution d'une prairie supposée homogène sur plusieurs années, en tenant compte à la fois des conditions climatiques, pédologiques et des pratiques de gestion. Ses variables d'entrées, très nombreuses, incluent les données météorologiques, les propriétés du sol, ainsi que les pratiques de gestion (fertilisation, schéma de fauche, périodes de pâturages et chargement animal). PaSim propose un très grand nombre de variables de sortie (calculées au pas de temps 1/50ème de jour, et fournies quotidiennement), incluant la croissance et le rendement en biomasse sèche des plantes, les émissions des différents gaz à effets de serre, le stockage de Carbone et d'Azote dans le sol, etc. Cela permet d'étudier les impacts du changement climatique sur les systèmes d'élevage herbager et les possibilités d'adaptation. PaSim propose aussi d'optimiser le type de fertilisation (minérale ou organique) et le taux de chargement animal pour maintenir un équilibre agroécologique. Il existe plusieurs jeux de paramètres prédéfinis, issus de calibrations sur données expérimentales.

GrasProg ²⁰ est un modèle semi-mécaniste, déterministe et dynamique, développé pour simuler la croissance des prairies mono-spécifiques gérées de manière intensive dans les contextes agricoles d'Europe du Nord. Il permet d'identifier les meilleures stratégies de pâturage ou de coupe pour maximiser le rendement. Ses paramètres sont beaucoup moins nombreux, ce qui facilite son utilisation. La croissance des plantes est modélisée à partir du produit entre la biomasse présente la veille, un taux de croissance relatif et un indice environnemental (intégrant température, rayonnement et teneur en eau du sol).

ModVege ²¹,²² est aussi un modèle semi-mécaniste, déterministe et dynamique, dont l'approche repose sur la description du couvert végétal, divisé en quatre composants structurels (i.e. organes végétatifs et reproductifs vivants et sénescents), selon les traits fonctionnels des espèces (phénologie, croissance, hauteur, digestibilité, etc). La parcelle est décrite par la moyenne pondérée des caractéristiques des groupes présents, ce qui permet de simuler des mélanges complexes d'espèces. Le modèle simule la croissance d'une prairie permanente, ainsi que la structure et la digestibilité de l'herbe, en fonction des types et intensités de fauche. En plus des traits fonctionnels de la végétation, des données météorologiques et de sol sont nécessaires en entrée.

### 3. L'évaluation des modèles et l'approche « ensemble modelling »

Pour évaluer des modèles de simulation d'écosystèmes prairiaux, il convient de comparer leurs sorties à des données expérimentales, sur des sites n'ayant pas été utilisés pour la calibration des modèles. Pour les modèles proposant un grand nombre de variables de sortie différentes, celles-ci peuvent être évaluées indépendamment, car les performances d'un modèle peuvent être très différentes d'une variable à une autre. De nombreux indicateurs sont utilisés pour comparer les prédictions d'un modèle à des données observées en agroécologie et dans les domaines connexes ²³⁻²⁷. J'ai répertorié et décrit ces indicateurs, dans le tableau en **Annexe 3**. Les différentes métriques proposées n'apportent pas toutes les mêmes informations. L'erreur moyenne (E) et le biais relatif (PBI) indiquent la tendance d'un modèle à surestimer ou sous-estimer systématiquement les observations, et peuvent être complétées par un test de significativité (test de Student apparié ou test de Wilcoxon signé-rangs selon que les résidus suivent une distribution normale ou non). L'erreur quadratique moyenne (RMSE) et l'erreur absolue moyenne (MAE) quantifient la précision globale du modèle. La RMSE mesurant l'erreur quadratique, elle est particulièrement sensible aux erreurs importantes
ou aux valeurs aberrantes. La MAE mesurant les erreurs absolues, elle prend davantage en compte le cumul des petites erreurs et est moins sensible aux valeurs extrêmes. Ces indicateurs peuvent aussi être calculés relativement à la valeur moyenne des observations. Le coefficient de détermination linéaire (R²), qui correspond au carré du coefficient de corrélation de Pearson dans le cadre d'une régression linéaire, est souvent utilisé pour mesurer la proportion de variance des observations expliquée par le modèle. Mais le R² est une métrique qui n'est pas sensible aux différences additives et proportionnelles, elle est donc très limitée pour les modèles non linéaires. De plus, ses hypothèses d'indépendance, normalité et homoscédasticité des résidus ne sont pas toujours vérifiées. Le R² n'est donc pas recommandé pour l'évaluation de modèles agroécologiques ²³. Le R² pondéré (wR) permet d'intégrer les différences proportionnelles, car il pondère R² selon le coefficient b de la régression y = a + b*x. L'une des alternatives au R² de la régression linéaire les plus utilisées pour l'évaluation de modèle est la Nash-Sutcliffe Efficiency (NSE), ou Modelling Efficiency (EF), qui ne passe pas par une régression. Cet indicateur avait initialement été développé pour évaluer les prédictions des modèles hydrologiques, mais il est aussi largement utilisé en agronomie et en écologie. Il est calculé comme « 1 - » le rapport de la somme des carrés des erreurs par la variance des observations. Sa formule est structurellement similaire à celle du R², mais EF utilise la moyenne des observations comme prédicteur de référence, plutôt qu'une droite de régression ajustée. Les valeurs de EF peuvent varier entre -∞ et 1, avec EF < 0 qui signifie qu'un modèle nul constant égal à la moyenne des observations serait meilleur prédicteur que le modèle évalué. C'est une métrique qui combine à la fois les erreurs de corrélation, de biais et de variabilité. Une limite de EF est qu'en cas de faible variabilité des données, un petit biais suffit à dégrader fortement sa valeur. L'indice de concordance de Willmott, ou Index of agreement (d), est un autre indicateur sans dimension basé sur la somme des carrés des erreurs. Ses valeurs sont comprises entre 0 et 1, une plage réduite qui est un désavantage par rapport à EF auquel il est lié par une forte corrélation linéaire lorsque EF > 0 ²³. EF et d sont basés sur l'erreur quadratique et sont donc particulièrement sensibles aux grandes erreurs. D'autres indicateurs leur sont équivalents mais basés sur les erreurs absolues, donc davantage sensibles à une somme de petites erreurs : la Modified Modelling Efficiency (EF₁) et le Modified Index of Agreement (d₁). Selon le contexte, il peut être pertinent de compléter l'évaluation d'un modèle par une analyse de sensibilité, afin d'identifier les paramètres les plus influents sur les sorties du modèle.

En hydrologie, EF > 0.5 est un seuil empirique parfois utilisé pour considérer qu'une simulation est satisfaisante ²⁹. En agronomie, une étude sur les indicateurs statistiques utilisés pour tester la performance des modèles de culture (maïs, arachides, soja, blé, et pomme de terre à travers le monde) a proposé EF ≫ 0 et d ≫ 0.75 comme valeurs acceptables pour les variables liées à la croissance des plantes, mais seulement EF ≫ -1 et d ≫ 0.6 pour les variables d'eau dans le sol ou d'azote minéral ²³. Il n'y a pas de seuil défini spécifiquement pour les écosystèmes prairiaux dans la bibliographie. Une valeur « acceptable » ou « bonne » d'un indicateur dépend beaucoup de l'écosystème modélisé et des objectifs de la validation. On considère que les prédictions de rendement des modèles de prairies sont plus incertaines que celles des modèles de grandes cultures, en raison d'interactions plus complexes et de sensibilités à certains facteurs environnementaux moins documentées ³⁰. De plus, la calibration des modèles se fait généralement à une échelle spatiale très large (continentale), ce qui impacte la précision. Les incertitudes sur les données de validation peuvent aussi impacter les résultats obtenus. En effet, la plupart des variables mesurées (ex. : rendement, biomasse aérienne, indice de surface foliaire ou LAI, teneur en carbone du sol) sont hétérogènes spatialement dans la parcelle. La plupart du temps, les mesures réalisées à plusieurs emplacements de la parcelle sont moyennées pour obtenir une unique valeur, mais le nombre d'observations reste limité en raison de la durée et complexité des mesures, et ces dernières peuvent être incertaines ³¹. Au-delà de la valeur brute des indicateurs (EF, RMSE, MAE, etc.) pour un modèle sur un site, c'est la comparaison des résultats sur les mêmes sites pour plusieurs modèles, ou la comparaison spatiale sur un ensemble de sites pour le même modèle, qui apparaissent intéressantes.

L'approche « ensemble modelling » vise à combiner les résultats de modèles différents dans le but de réduire l'erreur de prédiction. Plusieurs études récentes, y compris menées avec des modèles semi-
mécanistes ou mécanistes, ont montré que cette méthode apporte de meilleures performances prédictives à grande échelle que la sélection d'un seul modèle ²⁵,³¹,³². En pratique cela consiste à prendre, pour chaque point de donnée simulée, la médiane (ou la moyenne) des résultats de tous les modèles disponibles. Les performances supérieures de l'ensemble modelling s'expliquent par le fait que chaque modèle a des avantages uniques par rapport aux autres, mais a aussi des limites sous certaines conditions particulières, qui sont compensées par cette approche.

### III. Méthodologie et résultats

#### 1. Structuration de données au niveau européen

Une partie de mon stage a été consacrée à la structuration de données européennes fournies par le Joint Research Centre. J'ai notamment travaillé sur des données météorologiques quotidiennes et de description du sol au format NetCDF. Le NetCDF (Network Common Data Form) ³⁴ est un format de données « auto-documenté » permettant de stocker et partager des données multidimensionnelles volumineuses. Dans les données européennes au format NetCDF que j'ai utilisées, le territoire est découpé en carrés de 10km de côté, selon la grille européenne INSPIRE (LAEA/ESPG3035). Deux indices de coordonnées x et y sont utilisés comme dimensions (840 x 741), et un identifiant unique est rattaché à chaque cellule de la grille, associé à la latitude et à la longitude du centre de la surface. Pour réduire le poids de certains fichiers, un « masque prairie » a été appliqué : seules les données des cellules contenant des prairies sont conservées. Pour les données météorologiques, chaque fichier correspond à une année calendaire et comprend une dimension pour le « jour de l'année ». Ses variables incluent les températures (min, max et moyenne), le rayonnement solaire total, la quantité de précipitations, etc. Le fichier des données de sol a une dimension de « couche du sol » (profondeur). Ses variables incluent la densité, le pH, la quantité de carbone organique, les pourcentages de sable, d'argile et de limon, etc. J'ai utilisé le package ncdf4 de R ³⁵ pour manipuler, harmoniser et compléter ces données NetCDF, ainsi que pour fusionner plusieurs fichiers entre eux. J'ai calculé des approximations de variables manquantes, par exemple l'humidité, estimée à partir des températures et de la pression de vapeur d'eau. J'ai pu vérifier la cohérence des données météorologiques de plusieurs cellules de la grille INSPIRE en les comparant aux données météo quotidiennes de 21 sites à travers 12 pays européens, enregistrées dans un fichier YAML fourni avec les données d'une ancienne étude la FAO (Food and Agriculture Organization of the United Nations). Les différences sont très faibles pour les températures minimum et maximum (moyenne ± écart type respectivement -0.2 ± 1.33 °C et -0.62 ± 1.28 °C) avec des coefficients de corrélation supérieurs à 0.97. La corrélation est un peu moindre (0.83) pour la quantité de précipitations, qui est davantage soumise à des variations locales. Enfin, j'ai rédigé un document décrivant la structure des jeux de données finaux et présentant chacune de leurs variables. En complément de résumés statistiques, j'ai construit des cartes interactives avec le package Leaflet pour visualiser les évolutions spatiales, et des graphiques pour les évolutions temporelles ou en fonction de la profondeur de couche de sol. Des exemples de cartes produites avec Leaflet sont en **Annexe 4**.

Pour évaluer la performance de modèles, il faut avoir des données observées sur des parcelles expérimentales, ainsi que les informations nécessaires pour effectuer des simulations avec les modèles sur ces mêmes parcelles. En début de stage, j'ai travaillé avec des données de rendement hebdomadaire de prairies fauchées, fournies par le JRC et issues d'une étude de la FAO dans les années 1980. L'étude comprend 79 parcelles semées réparties dans 21 exploitations à travers l'Europe. Cependant, la façon dont le rendement avait été mesuré lors de ce projet s'est avérée incompatible avec les variables estimées par les modèles. Ces données n'ont donc finalement pas pu être utilisées pour l'évaluation des modèles. Ainsi, mes outils ont été développés en me basant sur les données de sites expérimentaux déjà utilisées au sein de
l'UREP et sur les sorties produites par différents paramétrages du modèle PaSim. Plusieurs variables sont observées sur ces sites : rendement, biomasse aérienne, teneur en carbone du sol, indice de surface foliaire, etc. Lors du dernier mois de stage, j'ai pu intégrer les sorties des autres modèles (GrasProg, ModVege) en utilisant le package développé lors du stage de Maureen Duport. Le JRC a également fourni de nouvelles données observées de rendement en matière sèche sur plusieurs sites européens, que j'ai alors intégrées.

J'ai développé un script en R afin d'effectuer les simulations et de fournir, à mon outil de reporting, les résultats ainsi que les fichiers annexes nécessaires à l'intégration des nouveaux sites simulés. Ce script va, pour chaque nouvelle parcelle, récupérer les coordonnées GPS, identifier la cellule de la grille INSPIRE dans laquelle elles sont inclues, utiliser différents fichiers NetCDF météo pour obtenir les données quotidiennes de toutes les années d'observation, récupérer les données de sol nécessaires, estimer des variables manquantes, et récupérer les évènements de gestion (dates de fauche ou pâturages, dates et quantité de fertilisation). Ensuite, les fonctions créées dans le cadre du stage de Maureen Duport permettent de formater les fichiers d'entrée de chaque modèle et de lancer les simulations. Mon script ajoute alors les données observées, simulées et les fichiers de description de la parcelle dans le répertoire « data » de mon outil de reporting. Côté simulations, deux sont faites avec des calibrations distinctes de PaSim (nommées « original » car basée sur le guide utilisateur du modèle et « 2025 » car obtenue par calibration dans le cadre d'un travail effectué en 2025). Les modèles GrasProg et ModVege ne sont inclus que sur les parcelles fauchées, car ils ne peuvent pas simuler le pâturage des animaux. Le Tableau 1 présente les 54 parcelles finalement retenues pour comparer les observations aux simulations des modèles. La plupart sont réparties en France, Suède et Italie. Le nombre d'observations par parcelle varie selon la variable et la durée d'expérimentation. Pour certaines parcelles, il y a seulement trois mesures du rendement des fauches, tandis qu'il y a près de 50 mesures durant 15 ans sur d'autres parcelles, et parfois plus de 100 dates d'observation de biomasse aérienne. Certaines données du JRC n'ont pas pu être retenues en raison de la méthode de mesure du rendement, du trop faible nombre d'observations (un ou deux points) ou parce qu'il s'agissait de parcelles irriguées sans que la quantité d'eau apportée ne soit connue. Pour certaines parcelles, situées notamment en Suède, les dates et quantité de fertilisation étaient manquantes. J'ai supposé qu'une quantité fixe avait été apportée 25 jours avant chaque fauche, en le précisant dans le fichier de description de la parcelle pour que cela apparaisse dans le rapport individuel. Une approximation a aussi été faite sur la variable « clover fraction » ou « part de légumineuses dans la prairie ». Les légumineuses, par exemple le trèfle, ont la particularité de fixer de l'azote dans le sol. Ainsi, plus la part de légumineuses est importante, plus la disponibilité en azote du sol sera élevée, ce qui favorise la croissance simulée par le modèle PaSim. Lors de mes simulations, j'ai fixé la clover fraction à 0,2, ce qui est élevé pour beaucoup des prairies et a pu conduire à une légère surestimation de la croissance et du rendement. En plus des approximations faites dans les paramètres de simulation, il faut tenir compte des incertitudes de mesures des données observées. Elles peuvent varier selon les variables et selon la méthode de mesure employée, ainsi que selon le nombre de mesures moyennées sur des parcelles hétérogènes.

Afin d'augmenter le nombre de sites testés à travers l'Europe, l'utilisation de données satellitaires quotidiennes de l'indice de surface foliaire (LAI) a été envisagée. Ces données sont disponibles avec une résolution de 300 m ou 1 km sur le portail de Copernicus ³⁶. La LAI est une grandeur sans dimension qui exprime la surface foliaire d'un écosystème ou d'un arbre par unité de surface de sol, c'est une variable estimée par PaSim, GrasProg et ModVege. Copernicus proposant aussi des estimations de dates de fauche de prairies, des simulations auraient pu être menées à travers toute l'Europe pour évaluer la LAI. Cela n'a finalement pas été possible, car les données de LAI ne sont pas spécifiques aux prairies et incluent toute la végétation, y compris les arbres. Les prairies sont souvent entourées d'arbres ou de buissons, ce qui rend les données satellitaires inadaptées à la validation, malgré leur résolution relativement fine.
<table><caption>Tableau 1 : Présentation des parcelles retenues et des variables y étant observées</caption><thead><tr><td>Lieu</td><td>Nombre de parcelles</td><td>Gestion</td><td>Variable(s) observées</td><td>Période d'observation</td></tr></thead><tbody><tr><td>Borgo (Italie)</td><td>2</td><td>Fauche + pâturage</td><td>Biomasse aérienne, indice de surface foliaire</td><td>2 ans</td></tr><tr><td>Chamau (Suisse)</td><td>1</td><td>Fauche + pâturage</td><td>Rendement des fauches, indice de surface foliaire, échange de N<sub>2</sub>O</td><td>2 à 4 ans</td></tr><tr><td>Easter Bush (UK)</td><td>1</td><td>Fauche + pâturage</td><td>Rendement des fauches, indice de surface foliaire, échange de N<sub>2</sub>O</td><td>2 à 7 ans</td></tr><tr><td>Ecrins (France)</td><td>3</td><td>Fauche</td><td>Biomasse aérienne</td><td>3 ans</td></tr><tr><td>Marais/Retraite (France)</td><td>11</td><td>Fauche</td><td>Rendement des fauches</td><td>8 ans</td></tr><tr><td>Grèce</td><td>1</td><td>Fauche</td><td>Rendement des fauches</td><td>4 ans</td></tr><tr><td>Grand Paradis (Italie)</td><td>3</td><td>Fauche</td><td>Biomasse aérienne, indice de surface foliaire</td><td>3 ans</td></tr><tr><td>Kerbernez (France)</td><td>2</td><td>Fauche</td><td>Rendement des fauches, teneur en carbone du sol</td><td>11 ans</td></tr><tr><td>Laqueuille (France)</td><td>2</td><td>Pâturage</td><td>Biomasse aérienne, teneur en carbone du sol</td><td>18 ans</td></tr><tr><td>Marradi (Italie)</td><td>2</td><td>Fauche</td><td>Biomasse aérienne, indice de surface foliaire</td><td>2 ans</td></tr><tr><td>Suède</td><td>10</td><td>Fauche</td><td>Rendement des fauches</td><td>1 à 3 ans</td></tr><tr><td>Theix (France)</td><td>16</td><td>Fauche / Pâturage</td><td>Rendement des fauches, teneur en carbone du sol</td><td>15 ans</td></tr></tbody></table>

## 2. Création de l'outil de reporting pour l'évaluation des modèles

### 1) Structure de l'outil

La principale tâche de mon stage a consisté à construire un outil de création de rapports automatiques afin d'évaluer la performance des modèles comparés à des données observées au niveau de la parcelle, avec le langage R. J'ai choisi d'utiliser du R Markdown avec des sorties au format HTML, ce qui permet d'avoir des rapports interactifs ne nécessitant pas de serveur pour fonctionner. Les rapports sont rédigés en anglais. Mon outil est organisé sous forme d'un répertoire contenant les dossiers et fichiers suivants : « _Reports », « code_and_doc », « config », « data », « README.md », « launch_reporting.R » et « user_guide.pdf ». Le dossier « data » contient un sous-dossier pour chaque site ou parcelle, c'est-à-dire chaque prairie où des mesures expérimentales ont été faites. Le dossier de chaque site est composé de sous-dossiers pour les fichiers de données observées et de prédiction des modèles, ainsi que de fichiers descriptifs apportant plus ou moins d'information sur le site. Deux fichiers R Markdown sont présents dans le dossier « code_and_doc » : l'un permet de créer un rapport individuel pour un site, l'autre un rapport global pour l'ensemble des sites. Les rapports générés automatiquement sont créés dans le dossier « _Reports ». Les fichiers R Markdown sont appelés directement par « launch_reporting.R », après que le script ait vérifié la conformité des données. Le dossier « config » contient des fichiers facultatifs pour améliorer la qualité des rapports ou imposer des transformations de données. Les détails de la structure du dossier, ainsi que les formats attendus pour chaque fichier sont présentés dans le diagramme en **Annexe 5**, qui prend en exemple un cas où seulement deux parcelles seraient évaluées (Theix_6 et Easter_Bush_UK).

De par cette structure, l'outil est très flexible. En effet, si celle-ci est respectée et que les dates d'observation coïncident avec les simulations, il peut fonctionner avec n'importe quelles variables, modèles et sites. De nombreux tests s'assurent du bon format des données, ainsi que de tous les autres fichiers du répertoire, et retournent un message d'erreur explicite en cas de problème. Si une variable observée ne fait pas partie des variables de sortie des modèles mais qu'elle est fonction de l'une d'elles, il est possible de
définir dans l'un des fichiers YAML de configuration la transformation à effectuer afin de la calculer
dynamiquement, ce qui permet de conserver les données brutes.

Les rapports individuels de l'ensemble des sites sont construits dans un premier temps : le fichier R Markdown comprend des blocs de code R pour l'import, la vérification, la transformation et le regroupement des différentes sources de données (observations, simulations, évènements de gestion, descriptions des sites, description des variables, etc.). Pour chaque variable, les observations sont associées aux prédictions des différents modèles aux mêmes dates. Puis, des blocs de code R permettent la construction et l'affichage des différents éléments du rapport automatique. Une fois tous les rapports individuels créés, c'est le fichier R Markdown du rapport global qui est appelé. Il commence par créer un data frame regroupant l'ensemble des indicateurs et informations nécessaires pour chaque combinaison de site, variable et modèle. Ce data frame est ensuite utilisé dans tous les blocs de code suivants.

J'ai utilisé les packages suivants dans le code : 'dplyr', 'tidyr', 'plotly', 'ggplot2', 'kableExtra', 'leafletet', 'htmltools', 'stringr', 'lubridate', 'RColorBrewer', 'yaml', 'FSA' et 'PMCMRplus'.

Le guide utilisateur que j'ai rédigé en anglais comprend trois parties. La première explique comment faire fonctionner l'outil : installation, description de la structure et du format des données, procédure pour lancer les rapports et explication des erreurs potentielles. La deuxième partie de ce guide présente les rapports en détail, pour permettre leur bonne compréhension, et explique le principe des indicateurs statistiques utilisés. Enfin, le fonctionnement des fichiers R et R Markdown est décrit pour permettre de comprendre le fonctionnement du code. Ce « user guide » est en **Annexe 6**.

## 2) Choix des indicateurs

Dans les rapports générés automatiquement, j'ai choisi de mettre en avant trois indicateurs principaux : la Mean Error (bais), la Mean Absolute Error (MAE) et la Modelling Efficiency (EF). Ces indicateurs sont calculés indépendamment sur chaque variable, en comparant les prédictions d'un modèle $X_{sim,i}$ aux données observées $X_{obs,i}$, pour toutes les dates i où les deux valeurs sont disponibles. La Mean Error, qui mesure le biais du modèle, est accompagnée par le biais relatif, exprimé en pourcentage par rapport à la moyenne des valeurs absolues des observations, et par un test de significativité. Selon si la normalité des différences a été vérifiée ou non (test de Shapiro), on utilise respectivement un test t apparié ou un test des rangs signés de Wilcoxon. Une étoile apparaît à côté de la valeur de la Mean Error lorsque la p-valeur du test est inférieure à 0,05 (différence significative au niveau de confiance 95%). La MAE est accompagnée de la Relative Mean Absolute Error (MAEr), exprimée en pourcentage par rapport à la moyenne des valeurs absolues des observations. La MAE a été choisie comme indicateur mesurant la précision globale plutôt que la RMSE, car elle est moins sensible aux très grandes erreurs. Elle est donc complémentaire avec la Modelling Efficiency qui est basée, comme la RMSE, sur l'erreur quadratique. La N.S. Modelling Efficiency (EF) a été choisie comme indicateur de performance sans dimension car, contrairement au $R^2$ de la régression linéaire, elle combine à la fois les erreurs de corrélation, de biais et de variabilité. De plus, c'est l'une des métriques les plus largement utilisées dans la bibliographie pour l'évaluation de modèles, et sa large plage de valeurs, avec 0 comme seuil indiquant une prédiction meilleure que la prédiction constante égale à la moyenne des observations, rend EF facilement interprétable.

En plus de ces trois indicateurs qui sont largement utilisés dans la bibliographie, un autre indicateur a été défini : la « Modelling Efficiency global » (EFg). L'idée est d'adapter EF au fait que l'on travaille sur des modèles non-calibrés à petite échelle, avec des sites aux observations plus ou moins difficiles à prédire. En effet, sur des variables ayant une faible variance, par exemple le rendement des fauches lorsqu'il y a très peu de jours d'observations, EF peut être très négatif même si les prédictions du modèle ne sont pas si mauvaises compte tenu de la difficulté à anticiper les observations faites sur certains sites. La Modelling Efficiency global reprend donc la formule de la Modelling Efficiency, mais en modifiant le dénominateur : la moyenne des
observés du site est remplacée par une valeur de référence, une « moyenne attendue » pour le site évalué. Ce changement permet de mesurer les erreurs non plus relativement à la variance au niveau du site, mais par rapport à l'écart des observations à une référence attendue. Des échanges avec l'équipe AGRI4CAST du JRC ont permis de valider et d'améliorer cet indicateur. La formule de la « Modelling Efficiency global » est
$$EFg = 1 - \frac{\sum_{i=1}^{n} (X_{sim,i} - X_{obs,i})^2}{\sum_{i=1}^{n} (X_{obs,i} - X_{ref})^2}$$
avec $X_{ref}$ la valeur de référence pour le site, choisie par l'utilisateur. La valeur de référence pour un site peut être définie régionalement en fonction des caractéristiques pédoclimatiques, en fonction du type de gestion (fauche ou pâturage, intensif ou extensif). Elle peut aussi provenir du résultat d'une simulation effectuée à l'échelle régionale, ou d'une moyenne observée sur des données historiques du même site. Les valeurs de référence associées à chaque site sont définies avant de lancer la création des rapports. Par défaut, si aucune valeur n'a été fournie pour une variable sur un site, la moyenne des observations de la variable sur l'ensemble des sites est prise comme valeur de référence.

D'autres indicateurs (RMSE, R²...) sont affichés seulement dans un texte présent à la fin des rapports individuels. Ces indicateurs sont inclus dans le **Tableau 2** qui résume l'ensemble des indicateurs utilisés dans les rapports.

Certaines données expérimentales sont fournies avec plusieurs observations le même jour. Il s'agit des mesures brutes faites à différents endroits dans la parcelle et visant à être moyennées, car en pratique aucune parcelle n'est homogène (différence de sol, pente, microclimat, ...). L'ensemble des observations sont affichées sur les graphiques pour que le lecteur puisse constater la variabilité, mais les indicateurs sont eux calculés sur les moyennes quotidiennes.

<table><caption>Tableau 2 : Présentation de l'ensemble des indicateurs affichés dans les rapports automatiques.</caption><thead><tr><th>Indicateur</th><th>Interprétation</th><th>Formule</th><th>Melleure valeur</th><th>Remarques</th></tr></thead><tbody><tr><td>Mean Error (E) / bias</td><td>Écart moyen entre simulation et observation.</td><td>$\frac{1}{n}\sum_{i=1}^{n}(X_{sim,i} - X_{obs,i})$</td><td>0</td><td>$X_{sim}$ et $X_{obs}$ peuvent être inversés dans la somme selon le « sens » souhaité du biais.</td></tr><tr><td>Relative bias (PBI)</td><td>Biais exprimé en % de la moyenne observée.</td><td>$\frac{bias}{|X_{obs}|} \times 100$</td><td>0%</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td>Bias significance p-value (p-valeur du paired t-test, ou du test de Wilcoxon)</td><td>Hypothèse du t.test : les différences ($X_{sim} - X_{obs}$) sont normalement distribuées : à vérifier avec un test de Shapiro. Si p-val &lt; α, le biais est significativement différent de 0 au niveau de confiance 1- α.</td><td>$\sqrt{\frac{1}{n}\sum_{i=1}^{n}(X_{sim,i} - X_{obs,i})^2}$</td><td>0</td><td>Si la normalité des différences n'est pas vérifiée (Shapiro p-val &lt; 0.05), on remplace le t-test par un test non paramétrique : Wilcoxon.</td></tr><tr><td>Root Mean Square Error (RMSE)</td><td>Érreur quadratique moyenne.<br>Précision globale.<br>Sensible aux grandes erreurs.</td><td>$\frac{RMSE}{|X_{obs}|} \times 100$</td><td>0%</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td>Relative RMSE (RRMSE)</td><td>RMSE exprimée en % de la moyenne observée.</td><td>$1 - \frac{\sum_{i=1}^{n}(X_{sim,i} - X_{obs,i})^2}{\sum_{i=1}^{n}(X_{obs,i} - X_{ref})^2}$</td><td>1</td><td>Correspond à la formule du coefficient de détermination (R²), mais calculé sur la droite 1:1 (sans régression linéaire, donc prend en compte aussi les erreurs d'échelle et de biais).</td></tr><tr><td> modified Modelling Efficiency global (EFg)</td><td>Indicateur de performance du modèle variant entre varie entre -∞ et 1. Si EF &lt; 0, la moyenne des observations est meilleure que le modèle.<br>Très sensible aux valeurs extrêmes.</td><td>$1 - \frac{\sum_{i=1}^{n}(X_{sim,i} - X_{obs,i})^2}{\sum_{i=1}^{n}(X_{obs,i} - X_{ref})^2}$</td><td>1</td><td>Par défaut, $X_{ref}$ est la moyenne de la variable en prenant les données de l'ensemble des sites. Des $X_{ref}$ spécifiques à certains sites ou régions peuvent être définies manuellement, selon les valeurs moyennes attendues.</td></tr><tr><td>Mean Absolute Error (MAE)</td><td>Précision globale.<br>Prend d'avantage en compte les petites erreurs que le RMSE.</td><td>$\frac{MAE}{|X_{obs}|} \times 100$</td><td>0</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td>Relative Mean Absolute Error (MAPE)</td><td>MAE exprimé en % de la moyenne observée.</td><td>$1 - \frac{\sum_{i=1}^{n}(X_{sim,i} - X_{obs,i})^2}{\sum_{i=1}^{n}(X_{obs,i} - X_{ref})^2}$</td><td>0%</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td> absolute N.-S. Modelling Efficiency (EF<sub>i</sub>)</td><td>EF avec somme des valeurs absolues plutôt que somme des carrés. Moins sensible aux valeurs extrêmes.</td><td>$\frac{MAE}{|X_{obs}|} \times 100$</td><td>1</td><td>Hypothèses d'indépendance, normalité et homoscédasticité des résidus pas toujours vérifiées !</td></tr><tr><td>linear coefficient of determination (R<sup>2</sup>)</td><td>Représente la part de la variance des observations expliquée par le modèle.<br>Corrélation de Pearson de la régression linéaire, pas sensible aux différences additives et proportionnelles.</td><td>$1 - \frac{\sum_{i=1}^{n}(X_{sim,i} - X_{obs,i})^2}{\sum_{i=1}^{n}(X_{obs,i} - X_{ref})^2}$</td><td>1</td><td></td></tr></tbody></table>

### 3) Présentation des rapports générés automatiquement

Le rapport individuel généré pour une parcelle est divisé en trois parties : « informations générales sur les données observées », « analyses graphiques des observations vs simulations », et « indicateurs statistiques évaluant les performances des modèles ».
Juste en dessous du titre du rapport, la date et l'heure de sa génération sont indiquées, ainsi que les modèles et les méthodes d'ensemble modelling évalués. La partie « information générale sur les données observées » inclut une carte indiquant la localisation du site, les informations facultatives qui ont été fournies (altitude, indice d'aridité, etc.), ainsi que le nombre total d'évènements de fauche, de pâturage et de fertilisation. Chaque variable observée est présentée avec sa description et son unité si elles ont été fournies, ainsi que le nombre et la plage de dates des observations. Les éventuelles modifications apportées aux données, automatiquement ou selon la méthode d'approximation indiquée dans le fichier de configuration, sont précisées par un texte. Il est également indiqué si des variables ont été supprimées (moins de trois dates d'observation). Un exemple de la première partie d'un rapport individuel est présenté en **Annexe 7**.

La partie « analyses graphiques » contient un graphique interactif par variable. Construits avec Plotly, ces graphiques affichent les données observées et les simulations des modèles en fonction du temps. Les points des simulations correspondant aux dates d'observation sont mis en évidence. Les évènements de gestion (fauche, pâturage, fertilisation) sont représentés par des lignes pointillées. L'onglet à droite du graphique permet d'afficher uniquement les modèles souhaités. Le survol de la souris indique les valeurs des observations et de chaque modèle, et il est possible de zoomer sur une partie du graphique. Selon le nombre de modèles présents, la médiane et/ou la moyenne des modèles sont ajoutées à chaque date d'observation. Si plusieurs observations ont été effectuées le même jour, tous les points sont affichés et leur moyenne est mise en avant. Des exemples de graphiques générés sont présentés en **Figure 1**.

<figure><img src="image_2.png" /></figure>

<figure><img src="image_3.png" /><figcaption>Figure 1 : Deux graphiques interactifs issus de rapports individuels.</figcaption></figure>
La dernière partie présente, pour chaque variable, les indicateurs de performance des différents modèles par rapport aux données observées. L'utilisateur peut sélectionner le modèle pour lequel un texte détaillant de nombreux indicateurs et tests est affiché. En dessous, un tableau présente les quatre principaux indicateurs (biais, MAE, EF et EFg) pour chaque modèle. La meilleure valeur de chaque indicateur est affichée en gras. Un exemple de la partie « indicateurs statistiques évaluant les performances des modèles » d'un rapport individuel pour la variable « Yield » est présenté en **Annexe 8**. Une transformation est effectuée automatiquement pour la variable mesurant la teneur en carbone du sol, identifiée par la mention « is_soil_carbon = TRUE » dans le fichier YAML de configuration des variables. En effet, pour cette variable prédite uniquement par le modèle PaSim, la valeur initiale est connue du modèle et l'on cherche à évaluer sa capacité à prédire son évolution au cours du temps. Sur les graphiques, on conserve la variable de la teneur en carbone du sol, car elle est plus visuelle, mais les indicateurs sont calculés sur sa variation annualisée. La transformation est automatique et indiquée dans le rapport.

Le rapport global regroupe les résultats des indicateurs principaux pour l'ensemble des sites. Pour chaque variable étudiée, il propose une carte interactive ainsi qu'une comparaison de la distribution de ces indicateurs selon les modèles.

<figure><img src="image_4.png" /><figcaption>Figure 2 : Carte du Global Report pour la variable « yield » avec « models_mean ».</figcaption></figure>

La carte, créée avec Leaflet, permet de sélectionner un modèle, ou une méthode d'ensemble modelling, pour visualiser sa performance par parcelle. Chaque parcelle est représentée par un point, zoomer sur la carte permet de distinguer les parcelles proches. Le centre de chaque point est coloré selon la valeur de la Modelling Efficiency global (EFg) et le contour du point selon la valeur de la relative Mean Absolute Error (MAEr). Ensemble, ces deux indicateurs complémentaires permettent un aperçu visuel rapide de la performance du modèle. MAEr, exprimé en pourcentage, est facilement interprétable, quelle que soit la
variable. EFg est sensible aux grandes erreurs, tandis que MAEr prend davantage en compte les sommes de petites erreurs. EFg prend en compte l'imprévisibilité des observations du site, tandis que MAEr reste indépendant de la valeur de référence. En cliquant sur une parcelle, une fenêtre s'ouvre et affiche les autres indicateurs principaux, le nombre d'observations et un lien direct vers le rapport individuel de la parcelle. La carte de la variable « yield » est visible en **Figure 2**, avec un faible niveau de zoom.

Dans la partie « comparaison des performances des modèles », l'utilisateur peut sélectionner l'indicateur statistique (MAE, EF, EFg ou biais) dont il veut visualiser la distribution par modèle. Un graphique présente alors un boxplot pour chaque modèle avec la répartition des valeurs de cet indicateur à travers l'ensemble des parcelles où le modèle a été évalué. En dessous, un tableau précise le nombre de parcelles totales concernées, ainsi que la moyenne de l'indicateur, de sa version relative pour la MAE ainsi que le biais. Pour appuyer les interprétations visuelles, une analyse statistique adaptée à chaque indicateur est intégrée.

Pour la Modelling Efficiency, il est indiqué, pour chaque modèle, la proportion de sites pour lesquels EF < 0, c'est-à-dire pour lesquels la moyenne des observations serait un meilleur prédicteur que le modèle. Cette valeur est aussi considérée comme le minimum acceptable pour la croissance de plantes dans les modèles d'agronomie d'après Yang et al 23. De même pour la Modelling Efficiency global, le tableau affiche le pourcentage de sites où EFg < 0, c'est-à-dire pour lesquels la valeur de référence du site serait un meilleur prédicteur que le modèle.

Les boxplots de distribution de la Mean Absolute Error (MAE) sont accompagnés d'un test visant à identifier s'il y a une différence significative de distribution des MAE entre certains modèles. Les tests utilisés sont non paramétriques : ils comparent les distributions des groupes sur la base des rangs. Dans le cas où seuls deux modèles sont évalués, le test effectué est un test de Wilcoxon. Selon si les sites testés sont les mêmes pour les deux modèles ou non, on applique la version pour données appariées (test des rangs signés de Wilcoxon) ou non appariées (test de Mann-Whitney-Wilcoxon). Dans le cas où il y a plus de deux modèles, on effectue un test de Friedman si chaque modèle a été testé exactement sur les mêmes sites, ou un test de Kruskal-Wallis sinon. Le test de Kruskal-Wallis est robuste aux groupes inégaux mais très conservateur, donc peu puissant, ce qui implique qu'il rejette plus difficilement l'hypothèse nulle d'inégalités des distributions entre au moins deux modèles, en particulier si l'échantillon est petit. Si le test de Friedman ou de Kruskal-Wallis est significatif, alors un post-hoc test adapté (Conover ou Dunn) est effectué, avec ajustement Bonferroni, et le résultat est affiché pour identifier quelles paires de modèles présentent une différence de MAE significative.

Pour la distribution des biais des modèles, le test des rangs signés de Wilcoxon, non paramétrique, permet d'identifier si la médiane des biais du modèle est significativement différente de zéro. En complément, on regroupe aussi les p-valeurs individuelles des tests de significativité du biais sur chaque parcelle, afin d'indiquer le pourcentage de parcelles où le biais est significatif. Comme le nombre de parcelles peut être important, un ajustement des p-valeurs est nécessaire pour contrôler le risque d'erreur de type I. J'ai choisi d'utiliser deux procédures d'ajustement différentes : Holm-Bonferroni et Benjamini Hochberg. Holm-Bonferroni est une procédure robuste à la dépendance des p-valeurs. Elle contrôle le Family-Wise Error Rate (FWER), la probabilité de rejeter à tort au moins une hypothèse nulle. Benjamini-Hochberg est moins conservatrice, car elle ne contrôle que le False Discovery Rate (FDR), c'est-à-dire le taux de fausses découvertes parmi les hypothèses rejetées. Le taux de rejet avec chacune de ces deux procédures est affiché dans le tableau.

La **Figure 3** montre l'onglet EFg pour la variable « yield ». Les onglets MAE et biais sont présentés en **Annexe 9** et **Annexe 10**.
<figure><img src="image_5.png" /><figcaption>Figure 3 : Onglet « Modelling Efficiency global » de la variable « yield » dans la partie « comparaison des performances des modèles » du rapport global.</figcaption></figure>

Le rapport global inclut ensuite une partie « performances des modèles en fonction des caractéristiques de la parcelle ». Un tableau répertorie, pour la variable sélectionnée par l'utilisateur, le nombre de fois où chaque modèle est le meilleur en termes de MAE, selon le type de gestion (fauche, pâturage, fauche + pâturage, inconnu). Des graphiques présentent ensuite la MAEr en fonction de l'indice d'aridité de De Martonne des parcelles, avec des points de couleurs et de formes différentes pour chaque modèle. Une régression linéaire par modèle est affichée, avec la valeur de son R² et la p-valeur du test de significativité (test de Student) du coefficient de sa pente. Toutefois, cette régression est limitée lorsqu'un grand nombre de parcelles sont situées dans une même zone et partagent le même indice d'aridité. Un exemple de cette partie est présenté en **Annexe 11**.

Enfin, des liens vers les rapports individuels de l'ensemble des sites utilisés pour la création du rapport global sont fournis, pour simplifier la navigation.

## 4) Analyse des résultats

Le rendement des fauches (« yield ») est la seule variable sur laquelle des conclusions globales peuvent être tirées, l'ensemble des modèles l'ayant simulée. La plupart des parcelles appartenant aux mêmes sites, j'ai pris comme valeur de référence pour EFg le rendement moyen de leur groupe. Les résultats obtenus sont visibles en **Annexe 10** (biais), **Annexe 9** (MAE) et **Figure 3** (EFg). Deux modèles ont un biais significatif sur la
variable *yield* (p-valeur du test de Wilcoxon sur la distribution des biais < 10e-3). GrasProg a un biais négatif sur chacun des sites (moyenne -1646 kg DM ha⁻¹), ce modèle sous-estime en moyenne de près de 50% la production de matière sèche des prairies. Le paramétrage « 2025 » de PaSim a quant à lui un biais significatif positif (moyenne +743 kg DM ha⁻¹). Les autres indicateurs de performance (MAE, EF et EFg) sont concordants et montrent que l'ensemble modelling permet le plus souvent d'obtenir de meilleures performances que chaque modèle individuellement, alors que PaSim apparaît meilleur que GrasProg et ModVege. La Modelling Efficiency global de la moyenne des modèles est inférieure à zéro sur 35 % des parcelles, contre 46 % et 59 % pour les deux paramétrages de PaSim et plus de 70 % pour GrasProg et ModVege. Les tendances sont similaires pour EF < 0 et MAEr, comme le montre le **Tableau 3**. Ainsi, la moyenne des modèles est un meilleur prédicteur que la valeur de référence dans 65 % des cas, et un meilleur prédicteur que la moyenne des observations sur la parcelle dans 52 % des cas. Le test de Kruskal-Wallis indique une différence significative entre la distribution des MAE d'au moins une paire de modèles (p-valeur < 10e-3), et le post-hoc test de Dunn montre des différences significatives entre GrasProg et les deux méthodes d'ensemble modelling ainsi que ModVege et les deux méthodes d'ensemble modelling (p-valeurs ajustées < 0.005). Les différences entre le paramétrage 2025 de PaSim et les deux modèles semi-mécanistes ne sont pas significatives au niveau de confiance 95 % avec l'ajustement Bonferroni. Cependant, si l'on ne conserve que les 31 parcelles fauchées où tous les modèles ont été évalués, le post-hoc du test de Frieman (Conover) indique que cette différence est significative, tout comme celle entre la moyenne des modèles et PaSim. Parcelle par parcelle, en termes de MAE, la moyenne des modèles est la meilleure sur 16 des 34 parcelles où tous les modèles sont évalués, suivie par PaSim\_original avec 10 parcelles. La diversité des données n'est pas suffisante pour tirer des conclusions sur la qualité de prédiction des modèles en fonction des conditions pédoclimatiques.

<table><caption>Tableau 3 : performance globale des modèles pour la variable « yield »</caption><thead><tr><th>Modèle</th><th>moyenne des modèles</th><th>médiane des modèles</th><th>PaSim 2025</th><th>PaSim original</th><th>GrasProg</th><th>ModVege</th></tr></thead><tbody><tr><td>Nombre de sites</td><td>37</td><td>37</td><td>37</td><td>37</td><td>34</td><td>34</td></tr><tr><td>Pourcentage de parcelles avec EFg &lt; 0</td><td>35 %</td><td>38 %</td><td>46 %</td><td>59 %</td><td>71 %</td><td>71 %</td></tr><tr><td>Pourcentage de parcelles avec EF &lt; 0</td><td>48 %</td><td>56 %</td><td>70 %</td><td>72 %</td><td>75 %</td><td>87 %</td></tr><tr><td>MAE relative moyenne</td><td>51 %</td><td>53 %</td><td>58 %</td><td>68 %</td><td>69 %</td><td>62 %</td></tr></tbody></table>

## 3. Outil de reporting à l'échelle de la grille INSPIRE et des régions NUTS

Le Joint Research Centre nous a également fourni des données de rendement annuel exprimé en matière sèche au niveau des régions NUTS 1 ou NUTS 2 de plusieurs pays (e.g. France, Autriche, Pologne, Lituanie), ainsi que les résultats de simulation du modèle LINGRA pour chaque cellule de 10x10km de la grille européenne INSPIRE entre 2018 et 2021. LINGRA est un modèle mécaniste, plus simple que PaSim. Afin d'évaluer les performances des modèles à cette échelle, j'ai développé un outil de reporting dédié. Moins robuste que celui utilisé au niveau des parcelles, cet outil se limite au rendement annuel et ne s'assure pas de la validité de toutes les données avant de construire le rapport. Il s'agit d'un seul script en R Markdown qui lit le fichier de validation régional et un fichier CSV par modèle testé (associant des valeurs de rendement total à une année et un identifiant de cellule INSPIRE). Un fichier Geojson fournit la structure des régions NUTS et un fichier GeoPackage relie chaque identifiant de cellule INSPIRE à sa géométrie. Deux cartes interactives, construites avec le package Leaflet, sont incluses dans le rapport HTML, associées au modèle sélectionné par l'utilisateur. La carte des performances régionales, en **Figure 4**, compare les performances du modèle aux données de validation au niveau des régions NUTS. La valeur de prédiction du modèle au niveau d'une région NUTS est obtenue par la moyenne des prédicitions de toutes les cellules de la grille
INSPIRE incluses dans cette région. Cette approche reste limitée, car les prairies ne sont pas réparties uniformément dans la région. Un travail en cours au JRC, basé sur de nouvelles données satellitaires Copernicus, permet de pondérer cette moyenne selon le taux de prairies dans la cellule INSPIRE. La deuxième carte du rapport affiche le rendement annuel moyen simulé par chaque modèle au niveau de la grille INSPIRE, afin de visualiser spatialement quelles zones géographiques sont plus ou moins productives.

<figure><img src="image_6.png" /><figcaption>Figure 4 : Evaluation du modèle LINGRA sur le rendement total annuel, au niveau des régions NUTS.</figcaption></figure>

Cet outil n'a pu être testé qu'avec les données du modèle LINGRA, déjà intégré dans la librairie multi-modèles de la Commission européenne. Il serait envisageable d'exécuter GrasProg, ModVege et PaSim sur la grille INSPIRE à l'aide des données météorologiques et de sol au format NetCDF, mais en raison du nombre de cellules (des dizaines de milliers) je ne pouvais pas le faire durant mon stage. Le modèle LINGRA présente une erreur moyenne de -96 kg DM ha⁻¹ an⁻¹ (2,15%) sur l'ensemble des régions NUTS, ainsi qu'une erreur absolue moyenne de 1813 DM kg ha⁻¹ an⁻¹ (40,44%). Il est normal que les erreurs absolues moyennes soient moins importantes que celles obtenues lors d'évaluations parcelle par parcelle, car la variable évaluée ici est le rendement annuel en matière sèche, moins difficile à prévoir que celui de chaque coupe. De plus, lors d'une évaluation à grande échelle à partir de plusieurs simulations moyennées, les erreurs dues aux spécificités des sites non intégrés par les modèles sont évitées. On remarque toutefois des disparités géographiques, avec des erreurs absolues moyennes plus importantes dans les régions italiennes ou autrichiennes que françaises ou polonaises. Ces disparités pourraient en partie s'expliquer par l'hétérogénéité de la qualité des données de validation entre les pays, un problème déjà soulevé par le JRC ³⁷. Une limite de la simulation à grande échelle est la fiabilité des dates de coupes estimées par satellite. Ces dates influent sur le rendement, mais les satellites les sous-estiment ou surestiment selon l'angle de leur trajectoire, créant ainsi des « rayures » sur la grille INSPIRE où le rendement estimé est plus faible. Le JRC prévoit de développer des algorithmes pour corriger ces données ³⁷.

IV. Discussion
# 1. Interprétations

Les résultats obtenus, avec mon outil de reporting au niveau de la parcelle, pour la variable de rendement des fauches mettent en exergue l'intérêt de l'ensemble modelling pour la simulation des prairies. Par rapport aux études menées ces dernières années sur l'efficacité de l'ensemble modelling pour la simulation des écosystèmes prairiaux ²⁵, j'ai utilisé certes moins de modèles, mais ces derniers n'avaient pas été calibrés préalablement et les résultats portent sur un plus grand nombre de parcelles. La réutilisation de mon outil pourrait permettre de confirmer ces résultats sur d'autres variables, avec des sites plus variés et en incluant d'autres modèles. Mes résultats mettent également en évidence un problème important de sous-estimation du rendement pour le modèle GrasProg.

# 2. Limites et perspectives

Les données observées au niveau des parcelles présentent plusieurs limites. Un grand nombre de parcelles sont localisées sur les mêmes sites, ce qui implique une dépendance entre elles, bien que les pratiques de gestion (plus ou moins intensives) soient variées puisqu'il s'agit de sites expérimentaux. De plus, 51 des 54 parcelles finalement retenues se situent dans trois pays (France, Italie, Suède), ce qui est peu représentatif de l'ensemble du territoire européen. De nouveaux sites pourraient être intégrés sans aucune modification de l'outil de reporting, la difficulté se situant dans l'acquisition de données réelles dont le format soit compatible avec les évaluations faites par les modèles (rendement en matière sèche des fauches, biomasse aérienne ou indice de surface foliaire).

Les résultats obtenus avec le modèle GrasProg (sous-estimation systématique du rendement des fauches) sont très surprenants, car le modèle a été conçu pour simuler des prairies très productives. Il se pourrait que le faible nombre d'évènements de fauche dans nos parcelles (généralement 2 à 4 par an) par rapport à ce qui est recommandé pour le modèle ²⁰ soit à l'origine de cette sous-estimation du rendement.

Pour rendre l'approche « ensemble modelling » plus robuste, d'autres modèles pourraient être intégrés, comme le modèle LINGRA. L'effet de l'utilisation d'une moyenne pondérée selon les performances attendues des modèles, plutôt que la simple médiane ou moyenne, pourrait alors être testée, bien que la bibliographie n'ait pas montré de différence significative entre ces deux approches ³⁸. L'intégration du modèle LINGRA permettrait aussi de comparer PaSim, ModVege et GrasProg à un modèle déjà utilisé par le JRC.

L'outil d'évaluation à l'échelle des régions NUTS pourrait être davantage développé, notamment en incluant des éléments d'analyse des résultats. Il serait très intéressant d'appliquer les modèles GrasProg et ModVege sur la grille INSPIRE, afin que l'outil puisse être utilisé pour comparer les performances de ces modèles au niveau régional. Pour le modèle PaSim, dont les simulations sont nettement plus longues, il serait envisageable de limiter le nombre de cellules.

La calibration à chaud des modèles apparaît comme une perspective intéressante pour le projet SAMPA, afin d'améliorer la qualité de prédiction future des modèles. Cela consiste à régulièrement calibrer les modèles, par parcelle ou par région, à partir des données historiques. Cela permettrait l'amélioration des résultats au cours du temps, avec pour but de tendre vers le concept de jumeau numérique. Une alternative moins complexe serait de donner des poids à chaque modèle dans l'ensemble modelling pour maximiser ses performances en fonction des données historiques de chaque site. Cela permettrait de ne pas avoir à lancer systématiquement les modèles, en adaptant uniquement l'outil de reporting.

# 3. Reproductibilité

L'outil de reporting d'évaluation de modèles au niveau de la parcelle a été conçu pour être facilement réutilisable, y compris par des personnes moins familières avec les outils informatiques. Le guide utilisateur
détaillé, en **Annexe 6**, permet de comprendre comment faire fonctionner l'outil et comment interpréter les rapports. Il décrit également le fonctionnement du code. La structure de l'outil a aussi été pensée pour faciliter la reproductibilité, en le rendant le plus souple possible (exemples : tous les fichiers de configuration sont facultatifs, les noms des variables ne sont pas sensibles à la casse, les tests s'adaptent en fonction du nombre de données). Les vérifications automatiques de la structure du répertoire, des noms de fichiers et de leurs variables, du bon format des données, ainsi que de la correspondance entre les dates d'observations et de simulations, permettent de générer des messages d'erreur personnalisés en cas de problème. Certaines corrections sont faites automatiquement au sein de l'outil (exemple : utilisation de la virgule comme séparateur numérique au lieu du point). Pour préserver les données brutes, un fichier de configuration permet de définir des transformations à appliquer sur une variable observée (exemple : fonction affine permettant d'évaluer une mesure de biomasse aérienne totale à partir d'une mesure effectuée à 5cm du sol).

Mon outil d'évaluation de modèles au niveau de la parcelle a aussi été testé dans le cadre d'un travail de calibration du modèle PaSim, afin de comparer les performances du nouveau paramétrage par rapport aux anciens. Cela m'a permis de m'assurer du bon fonctionnement de l'outil sur des données différentes et d'avoir des retours utiles.

J'ai créé un fichier de description de tous les jeux de données que j'ai modifiés ou utilisés, car certains avaient été fournis sans aucune documentation. Pour l'intégration de nouveaux sites à l'outil de reporting, j'ai créé une fonction qui construit et formate les fichiers météo et sol nécessaires à partir des coordonnées GPS de la parcelle et des années d'observations, puis appelle les fonctions générant les sorties de modèles. Les données de fauche et de fertilisations doivent être fournies préalablement, car les méthodes pour les obtenir varient.

## 4. Apports du stage

Ce stage m'a permis d'avoir une vue d'ensemble de la modélisation prairiale, un domaine qui m'était inconnu. Pour que mon travail soit pertinent, j'ai dû comprendre le fonctionnement des écosystèmes prairiaux, ainsi que les différentes méthodes de collecte des données expérimentales. J'ai travaillé dans un environnement pluridisciplinaire, dans le cadre d'un projet d'envergure européenne. La collaboration avec le Joint Research Centre m'a permis d'échanger en anglais avec les chercheurs de cette institution chargée du soutien scientifique pour la Commission européenne, lors de réunions en ligne bimensuelles. J'ai ainsi pu recevoir des retours réguliers sur mon travail de la part de personnes extérieures, ce qui m'a permis de l'améliorer.

J'ai pu mettre en pratique mes acquis en analyse de données, en statistiques et en développement R, mais également acquérir de nouvelles compétences. Le développement d'un outil complet m'a apporté beaucoup d'expérience. Il a notamment été important de réfléchir à sa structure globale pour qu'il soit cohérent et robuste, alors que les attendus étaient très peu précis au début du stage. J'ai dû l'adapter pour répondre à de nouvelles demandes, anticiper les besoins futurs potentiels pour permettre sa réutilisation, et rédiger une documentation complète. J'ai utilisé GitLab pour une bonne gestion de mon code. Le fait de n'avoir pu intégrer les modèles GrasProg et ModVege qu'au cours des dernières semaines de mon stage, car leur développement en R était en cours, m'a incité à faire preuve d'anticipation et de réflexion lors de la conception de l'outil. Les difficultés liées à la qualité des données expérimentales, en particulier à la difficulté d'interprétation ou à l'absence de documentation, ont aussi constitué une expérience formatrice, à laquelle j'avais rarement été confronté dans le cadre académique.
## 5. Impact social et environnemental

Durant mon stage, je me suis rendu à mon lieu de travail cinq jours par semaine à vélo. Deux déplacements sur des sites expérimentaux ont été effectués en covoiturage. J'ai travaillé sur un ordinateur qui m'a été fourni, datant de plus de 10 ans, sans utiliser de serveur de calcul. Ainsi, mon impact environnemental personnel durant ce stage s'est essentiellement limité à la consommation d'électricité de cet ordinateur ainsi qu'à celle des outils numériques utilisés en ligne (visioconférences, IA générative, cloud). Si l'électricité est largement décarbonée en France ³⁹, ce n'est pas forcément le cas dans les pays où sont basés les serveurs des outils numériques utilisés en ligne, et les visioconférences ou l'IA générative peuvent être très énergivores ⁴⁰,⁴¹. Néanmoins, sans usage de véhicule polluant ni de serveur de calcul, on peut estimer que mon impact environnemental direct durant ce stage est de l'ordre de quelques kilogrammes de CO₂eq par mois, ce qui est faible.

Mes outils de création de rapports automatiques devraient être réutilisés. Il ne faut que quelques minutes pour les faire fonctionner, même avec un grand nombre de sites et de modèles à évaluer, ce qui n'est pas très énergivore. Cependant, les résultats de très nombreuses simulations sont requis pour une évaluation à grande échelle, ce qui nécessite nettement plus de temps de calcul, en particulier dans le cas du modèle PaSim. Le projet SAMPA vise à terme à intégrer les prairies dans les bulletins de prévision de rendement produits pour la Commission européenne afin de servir de support aux orientations de la Politique Agricole Commune. Les écosystèmes prairiaux jouent en effet un rôle central dans l'alimentation des animaux d'élevage, mais aussi dans la protection du climat, de la biodiversité et de la qualité des sols. Il est donc indispensable de les comprendre pour permettre aux acteurs concernés de prendre des décisions éclairées. Si le projet est mené à bien, il pourrait ainsi contribuer à renforcer la sécurité alimentaire en Europe et à mener à bien la transition agroécologique dans un contexte de changement climatique.

Ma structure d'accueil est une unité d'INRAE, un institut de recherche public qui oriente ses travaux vers la transition agroécologique et la lutte contre le changement climatique. La politique de responsabilité sociale et environnementale (RSE) d'INRAE s'appuie sur le référentiel national « Développement durable et responsabilité sociétale (DD&RS) », commun à tous les établissements d'enseignement supérieur et de recherche. Un réseau de responsables RSE et de référents a été mis en place pour mettre en œuvre les plus de 70 actions identifiées. Le plan inclut une trajectoire de neutralité carbone, avec des choix forts pour réduire les émissions de gaz à effet de serre liées aux activités de l'Institut ⁴².
## Conclusion

Au cours de mes six mois de stage au sein de l'UREP (INRAE), j'ai pu mobiliser mes compétences en analyse de données, en statistiques et en développement R, dans un environnement pluridisciplinaire. J'ai découvert le domaine de la modélisation prairiale, auquel je me suis rapidement adapté, et j'ai développé un outil complet.

L'outil de reporting que j'ai développé est automatisé, robuste et reproductible. Il permet d'évaluer les performances de modèles à partir de données expérimentales recueillies au niveau de la parcelle, en générant à la fois des rapports individuels et un rapport global, au format HTML. Le rapport individuel contient des graphiques interactifs et des indicateurs détaillés, tandis que le rapport global intègre des cartes interactives pour visualiser spatialement les indicateurs de toutes les parcelles, ainsi que des comparaisons statistiques avancées entre les modèles. Cet outil a été conçu pour être flexible et réutilisable avec de nouveaux modèles, de nouvelles variables et de nouvelles parcelles. Les résultats obtenus montrent que la méthode d'ensemble modelling donne de meilleures performances que chaque modèle pris individuellement pour prédire le rendement des fauches. En parallèle, j'ai participé à la structuration et au traitement de données européennes, utilisées pour produire des simulations sur de nouveaux sites expérimentaux. J'ai également développé une première version d'un outil évaluant les modèles à l'échelle des régions NUTS.

Ce stage a consolidé mon intérêt pour la data science et m'a permis d'acquérir une expérience précieuse pour la suite de mon parcours professionnel. Travailler pour un projet européen, en collaborant avec le JRC, m'a apporté une expérience importante de communication scientifique en anglais. Les difficultés que j'ai rencontrées du fait de la qualité hétérogène des données observées se sont avérées formatrices, car c'est un problème auquel tout Data Analyst est régulièrement confronté et doit s'adapter. Mes travaux ont contribué au projet SAMPA, et l'outil développé pourra être réutilisé à la fois par le JRC et par l'UREP.
Références

1. OFB. Les prairies, une question d'équilibre. https://professionnels.ofb.fr/fr/node/1427.

2. Traité sur l'Union européenne (version consolidée). J. Off. L'Union Eur. (2012).

3. The European Green Deal - European Commission. https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/european-green-deal_en (2021).

4. Farm to Fork Strategy - European Commission. https://food.ec.europa.eu/horizontal-topics/farm-fork-strategy_en.

5. Agri4Cast ToolBox. https://agri4cast.jrc.ec.europa.eu/.

6. JRC MARS Bulletin - European Commission. https://joint-research-centre.ec.europa.eu/monitoring-agricultural-resources-mars/jrc-mars-bulletin_en.

7. Carozzi, M. et al. Supporting Agricultural Policies through Advanced Grassland Modelling. (2024).

8. Permanent grassland | Knowledge for policy. https://knowledge4policy.ec.europa.eu/glossary-item/permanent-grassland_en.

9. Theau, J.-P. & Choisis, J.-P. Prairie permanente. in *Dictionnaire d'Agroécologie* (ed. INRAE) (2016). doi:10.17180/46g7-hz56.

10. Huyghe, C., Peeters, A. & de Vliegher, A. La prairie en France et en Europe. (2015).

11. Eurostat. Permanent agricultural grassland in Europe. https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Permanent_agricultural_grassland_in_Europe (2023).

12. Plantureux, S., Pottier, E. & Carrère, P. P. La prairie permanente: nouveaux enjeux, nouvelles définitions? (2012).

13. Maintien des prairies et pâturages permanents. *Les services de l'État dans la Manche*
https://www.manche.gouv.fr/Actions-de-l-Etat/Agriculture/Maintien-des-prairies-et-paturages-permanents/Maintien-des-prairies-et-paturages-permanents.

14. European Environment Agency. *Annual European Union Greenhouse Gas Inventory 1990-2022 and Inventory Document 2024*. (2024).
15. Commissariat général au développement durable. Les émissions de gaz à effet de serre de l'agriculture.
https://www.notre-environnement.gouv.fr/themes/climat/les-emissions-de-gaz-a-effet-de-serre-et-l-empreinte-carbone-ressources/article/les-emissions-de-gaz-a-effet-de-serre-de-l-agriculture (2021).

16. Peyraud, J.-L. & Peeters, A. Place et atouts des prairies permanentes en France et en Europe. (2012).

17. A.-I Graux, R. Ladry, M. Gaurut, E. Duclos, & K. Klump. PaSim User Guide. (2013).

18. Lardy, R. & Martin, R. Pasture Simulation model (PaSim). (2011).

19. Ma, S. et al. Regional-scale analysis of carbon and water cycles on managed grassland systems. *Environ. Model. Softw.* **72**, 356–371 (2015).

20. Peters, T. et al. GrasProg: Pasture Model for Predicting Daily Pasture Growth in Intensive Grassland Production Systems in Northwest Europe. *Agronomy* **12**, 1667 (2022).

21. Jouven, M., Carrère, P. & Baumont, R. Model predicting dynamics of biomass, structure and digestibility of herbage in managed permanent pastures. 1. Model description. *Grass Forage Sci.* **61**, 112–124 (2006).

22. Bittar, A., Meisser, M. & Mosimann, E. Simulation de la croissance de l'herbe et des rendements des pâturages avec ModVege. (2018).

23. Yang, J. M., Yang, J. Y., Liu, S. & Hoogenboom, G. An evaluation of the statistical methods for testing the performance of crop models with observed data. *Agric. Syst.* **127**, 81–89 (2014).

24. Movedi, E. et al. Development of generic crop models for simulation of multi-species plant communities in mown grasslands. *Ecol. Model.* **401**, 111–128 (2019).

25. Ehrhardt, F. et al. Assessing uncertainties in crop and pasture ensemble model simulations of productivity and N₂ O emissions. *Glob. Change Biol.* **24**, (2018).

26. Gupta, H. V., Kling, H., Yilmaz, K. K. & Martinez, G. F. Decomposition of the mean squared error and NSE performance criteria: Implications for improving hydrological modelling. *J. Hydrol.* **377**, 80–91 (2009).

27. GRAIE. Critères et indicateurs d'auto-évaluation des modèles. (2018).

28. D. N. Moriasi et al. Model Evaluation Guidelines for Systematic Quantification of Accuracy in Watershed Simulations. *Trans. ASABE* **50**, 885–900 (2007).
29. Bellocchi, G. et al. Sensitivity of simulated soil water content, evapotranspiration, gross primary production and biomass to climate change factors in Euro-Mediterranean grasslands. *Agric. For. Meteorol.* **343**, 109778 (2023).

30. Vuichard, N. et al. Estimating the greenhouse gas fluxes of European grasslands with a process-based model: 1. Model evaluation from in situ measurements. *Glob. Biogeochem. Cycles* **21**, (2007).

31. Le Noë, J. et al. Soil organic carbon models need independent time-series validation for reliable prediction. *Commun. Earth Environ.* **4**, 158 (2023).

32. Farina, R. et al. Ensemble modelling, uncertainty and robust predictions of organic carbon in long-term bare-fallow soils. *Glob. Change Biol.* **27**, 904–928 (2021).

33. Unidata | NetCDF. https://www.unidata.ucar.edu/software/netcdf/.

34. Pierce, D. ncdf4: Interface to Unidata netCDF (Version 4 or Earlier) Format Data Files. (2025).

35. Leaf Area Index 2014-present (raster 300 m), global, 10-daily - version 1 | Copernicus. https://www.copernicus.eu/en/access-data/copernicus-services-catalogue/leaf-area-index-2014-present-raster-300-m-global-10-daily.

36. Rossi, M., Morel, J., Fumagalli, D. & Claverie, M. TOWARDS A EUROPEAN GRASSLAND PRODUCTIVITY ESTIMATION SYSTEM.

37. Schwalm, C. R. et al. Toward “optimal” integration of terrestrial biosphere models. *Geophys. Res. Lett.* **42**, 4418–4428 (2015).

38. Bilans électriques nationaux et régionaux | RTE. https://www.rte-france.com/analyses-tendances-et-prospectives/bilans-electriques-nationaux-et-regionaux (2025).

39. GES, B. C. Empreinte carbone visioconférences : Comparatif et alternatives. *Bilan carbone GES* https://bilan-carbone-ges.fr/empreinte-carbone-visioconference (2024).

40. Caliman, L. IA générative : la consommation énergétique explose. *Polytechnique Insights* https://www.polytechnique-insights.com/tribunes/energie/ia-generative-la-consommation-energetique-explose/ (2024).

41. Notre responsabilité sociétale et environnementale | INRAE. https://www.inrae.fr/nous-connaitre/notre-responsabilite-societale-environnementale.
# Annexes

**Annexe 1** : Estimation spatiale de la proportion de prairies agricoles permanentes dans l'Union Européenne (2018), Eurostat, Statistics Explained, 2023.

https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Permanent_agricultural_grassland_in_Europe

<figure><img src="image_7.png" /></figure>

The boundaries and names shown and the designations used on this map do not imply official endorsement or acceptance by the European Union.

Source: Eurostat (estimation based on LUCAS 2018, Copernicus HRL - Grassland 2018 and CORINE Land Cover 2018)
<table><caption>Annexe 2 : Tableau présentant les caractéristiques principales de modèles PaSim, GrasProg et ModVege.</caption><thead><tr><th></th><th>PaSim</th><th>GrasProg</th><th>ModVege</th></tr></thead><tbody><tr><th>Objectif</th><td>Modéliser une prairie homogène sur plusieurs années ainsi que ses flux de carbone, d'azote, d'eau et d'énergie à l'interface entre le sol, la végétation, les animaux et l'atmosphère.</td><td>Prédire la croissance quotidienne de prairies gérées de manière intensive sur une saison de croissance.</td><td>Simuler les effets de la fauche (type et intensité) sur la dynamique de la biomasse, la structure et la digestibilité de l'herbe sur quelques années.</td></tr><tr><th>Type de modèle</th><td>Mécaniste (biogéochimique), déterministe et dynamique.</td><td>Semi-mécaniste (deux paramètres ajustés), déterministe et dynamique.</td><td>Semi-mécaniste, déterministe et dynamique.</td></tr><tr><th>Echelle</th><td>Une parcelle homogène</td><td>Une parcelle homogène</td><td>Une parcelle homogène</td></tr><tr><th>Pas de temps</th><td>1/50ème de jour (≈ 1/2 heure)</td><td>Un jour</td><td>Un jour</td></tr><tr><th>Fonctionnement</th><td>Modélisation complexe des flux C/N/eau/énergie via plusieurs sous-modules (plantes, animal, microclimat, biologie du sol, physique du sol et gestion de la parcelle).</td><td>Croissance calculée à partir d'un produit entre la biomasse existante le jour précédant, le taux de croissance relatif et un indice environnemental.</td><td>Combinaison de deux approches simples :<br/>- fonctionnelle (basée sur les traits fonctionnels moyens de la communauté)<br/>- structurelle (basée sur la distinction entre végétatif et reproductif).</td></tr><tr><th>Inputs</th><td>- météo horaire ou journalière<br/>- sol (texture, pH, profondeur, C et N initiaux)<br/>- date et quantité de fertilisants organiques ou minérales<br/>- date de fauche<br/>- pâturage (type d'animaux, date d'entrée, durée, chargement)</td><td>- météo journalière<br/>- Plant Available Water</td><td>- météo journalière<br/>- traits de la végétation (pré-paramétré en 4 groupes fonctionnels)<br/>- sol (capacité de rétention en eau et indice nutritionnel agrégé)</td></tr><tr><th>Outputs</th><td>Flux de GES, C, N, H2O et énergie, stock de C et N du sol, rendement.</td><td>Taux de croissance quotidiens et production annuelle.</td><td>Biomasse et digestibilité des 4 compartiments.<br/>Croissance et rendement, et réserve en eau.</td></tr><tr><th>Durée de simulation</th><td>Une ou plusieurs années</td><td>Une saison de croissance</td><td>Quelques années (INN fixe)</td></tr><tr><th>Type de prairie</th><td>Prairies permanentes.</td><td>Prairies gérées de manière intensive, avec une fertilisation azotée non limitante</td><td>Prairies permanentes.</td></tr></tbody></table>
<table><tr><td></td><td></td><td>(prairies très productives).</td><td></td></tr><tr><td>Zone géographique</td><td>Conditions pédoclimatiques européennes.</td><td>Europe du Nord-Ouest : climat tempéré de la Bretagne au Jütland (Danemark).</td><td>Initialement Auvergne (climat tempéré). Applicable ailleurs après paramétrage des quatre groupes fonctionnels de Cruz et al.</td></tr><tr><td>Types d'animaux simulés</td><td>Vaches de races françaises. Trois types possibles : vaches allaitantes, vaches laitières et génisses (adultes sans veau).</td><td>Vaches laitières approximées via fauche</td><td>Approximation via fauche</td></tr><tr><td>Approche des végétaux</td><td>Approche par « compartiments ». Plantes représentées par une racine et trois compartiments, avec quatre classes d'âge pour chacun.</td><td>Basé sur une prairie monospécifique de ray-grass.</td><td>- Paramétrage réalisé via 4 groupes fonctionnels. Les résultats sont alors la moyenne pondérée de chacun de ces groupes en fonction de leur pourcentage.<br/>- Le couvert est divisé en 4 « compartiments » représentant les composants structurels de l'herbe (feuilles vertes et gaines, feuilles mortes et graines, tiges vertes et fleurs et tiges mortes et fleurs).</td></tr><tr><td>Autres hypothèses</td><td></td><td></td><td>- Herbe considérée coupée 0,05 m au-dessus du sol.</td></tr><tr><td>Simulations spécifiques</td><td>- Simulation « d'état stable » : génération de valeurs d'équilibre dans le cas de données manquantes (teneur en C et N du sol...).<br/>- Optimisation du type de fertilisation, et du taux de couverture des pâturages par les animaux.<br/>- Simulation du <sup>14</sup>C et <sup>13</sup>C pour mesurer les traces radioactives dans le lait ou la viande.</td><td>/</td><td>/</td></tr><tr><td>Forces du modèle</td><td>Modèle très complet qui simule de manière approfondie et mécanique : (i) les bilans énergétique, carbone, d'azote et hydrique des écosystèmes de prairies.</td><td>GrasProg permet d'identifier les meilleures stratégies de pâturage ou de coupe pour un rendement et une</td><td>ModVege permet de prévoir la croissance de l'herbe, ainsi que sa structure et sa digestibilité. Outputs simples, directement réutilisables</td></tr></table>
<table><tr><td></td><td>(ii) l'approvisionnement en fourrage.<br/>(iii) les performances des ruminants en pâturage.<br/>(iv) le potentiel de séquestration du carbone dans les sols des prairies.<br/>(v) les émissions de GES dans les pâturages.<br/>(vi) les effets climatiques (chaleur, eau...) sur le fonctionnement des écosystèmes de prairies.<br/>-> PaSim permet d'étudier les impacts du changement climatique sur les systèmes d'élevage et les possibilités d'adaptation.</td><td>qualité de fourrage optimaux.</td><td>dans un modèle de production de ruminant.</td></tr><tr><td>Limites du modèle</td><td>- Ne prend pas en compte le rôle de la diversité végétale dans la parcelle.<br/>- Ne reproduis pas fidèlement les pics d'émissions déclenchés par l'application d'engrais ou les événements pluvieux.</td><td>- Simplification dans le modèle, par exemple utilisation de la température de l'air plutôt que du sol.<br/>- Pas de paramétrage sur le type de prairie en input.</td><td>- Certains traits fonctionnels sont difficiles à paramétrer, notamment l'effet saisonnier auquel le modèle est particulièrement sensible.<br/>- Moins précis en cas de sécheresse prolongée.</td></tr></table>
<table><caption>Annexe 3 : Tableau résumé des indicateurs utilisés dans la bibliographie pour évaluer la performance de modèles en agroécologie et dans les domaines connexes 23–27.</caption><thead><tr><th>Indicateur</th><th>Abréviations</th><th>Interprétation</th><th>Formule</th><th>Meilleure valeur</th><th>Remarques</th></tr></thead><tbody><tr><td>Biais, ou erreur moyenne</td><td>Biais ou E</td><td>Écart moyen entre simulation et observation.</td><td>1/n &sum;<sub>i=1</sub><sup>n</sup>(X<sub>sim,i</sub> - X<sub>obs,i</sub>)</td><td>0</td><td>X<sub>sim</sub> et X<sub>obs</sub> peuvent être inversés dans la somme selon le « sens » souhaité du blais.</td></tr><tr><td>Biais relatif, ou coefficient de masse résiduelle</td><td>PBI ou CRM</td><td>Biais exprimé en % de la moyenne observée.</td><td>100 &times; (1/n &sum;<sub>i=1</sub><sup>n</sup>(X<sub>sim,i</sub> - X<sub>obs,i</sub>) / &sum;<sub>i=1</sub><sup>n</sup>X<sub>obs,i</sub>)</td><td>0%</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td>p-valeur du paired t-test</td><td>t.test</td><td>Hypothèse du test : les différences (X<sub>sim</sub> - X<sub>obs</sub>) sont normalement distribuées : à vérifier avec un test de Shapiro. Si p-val &lt; α, le blais est significativement différent de 0 au niveau de confiance 1-α.</td><td></td><td>&gt; 0.05</td><td>Si la normalité des différences n'est pas vérifiée (Shapiro p-val &lt; 0.05), on remplace le t-test par un test non paramétrique : Wilcoxon.</td></tr><tr><td>Érreur quadratique moyenne</td><td>RMSE</td><td>Précision globale. Sensible aux grandes erreurs.</td><td>&radic;[1/n &sum;<sub>i=1</sub><sup>n</sup>(X<sub>sim,i</sub> - X<sub>obs,i</sub>)<sup>2</sup>]</td><td>0</td><td></td></tr><tr><td>Érreur quadratique relative</td><td>RRMSE ou nRMSE</td><td>RMSE exprimée en % de la moyenne observée.</td><td>(RMSE / X<sub>obs</sub>) &times; 100</td><td>0%</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td>Nash-Sutcliffe modelling efficiency coefficient, ou Model Efficiency</td><td>EF ou NS ou NSE</td><td>Indicateur de performance du modèle variant entre -∞ et 1, basé sur le rapport entre la somme des carrés des erreurs et la variance des observations. Si EF &lt; 0, la moyenne des observations est meilleure que le modèle.</td><td>1 - (1/n &sum;<sub>i=1</sub><sup>n</sup>(X<sub>obs,i</sub> - X<sub>sim,i</sub>)<sup>2</sup> / &sum;<sub>i=1</sub><sup>n</sup>(X<sub>obs,i</sub> - X<sub>obs</sub>)<sup>2</sup>)</td><td>1</td><td>Correspond à la formule du coefficient de détermination (R<sup>2</sup>), mais calculé sur la droite 1:1 (sans régression linéaire, donc prend en compte aussi les erreurs d'échelle et de blais).</td></tr><tr><td>Indice de concordance de Willmott, ou Index of agreement</td><td>d</td><td>Mesure l'accord global. Basé, comme EF, sur l'erreur quadratique, donc sensible aux valeurs extrêmes. Compris entre 0 et 1.</td><td>1 - (1/n &sum;<sub>i=1</sub><sup>n</sup>(X<sub>sim,i</sub> - X<sub>obs,i</sub>)<sup>2</sup> / &sum;<sub>i=1</sub><sup>n</sup>(X<sub>sim,i</sub> + |X<sub>sim,i</sub> - X<sub>obs,i</sub>| + |X<sub>obs,i</sub> - X<sub>sim,i</sub>|))</td><td>1</td><td>Plusieurs variantes du dénominateur existent, pour réduire la vitesse de convergence vers 1 et l'impact des valeurs extrêmes et (voir Yang 2014).</td></tr><tr><td>Érreur absolue moyenne</td><td>MAE</td><td>Précision globale. Prend d'avantage en compte les petites erreurs que le RMSE.</td><td>1/n &sum;<sub>i=1</sub><sup>n</sup>|X<sub>sim,i</sub> - X<sub>obs,i</sub>|</td><td>0</td><td></td></tr><tr><td>Érreur absolue moyenne relative</td><td>C ou nMAE</td><td>MAE exprimé en % de la moyenne observée.</td><td>MAE / X<sub>obs</sub> &times; 100</td><td>0%</td><td>Peut aussi être exprimé sous forme décimale.</td></tr><tr><td>Modified modelling efficiency</td><td>EF<sub>1</sub></td><td>EF avec somme des valeurs absolues plutôt que somme des carrés. Moins sensible aux valeurs extrêmes.</td><td>1 - (1/n &sum;<sub>i=1</sub><sup>n</sup>|X<sub>sim,i</sub> - X<sub>obs,i</sub>| / &sum;<sub>i=1</sub><sup>n</sup>|X<sub>obs,i</sub> - X<sub>sim,i</sub>|)</td><td>1</td><td></td></tr><tr><td>Coefficient de détermination linéaire (R<sup>2</sup>)</td><td>R<sup>2</sup> ou R<sup>2</sup><sub>lin_reg</sub></td><td>Représente la part de la variance des observations expliquée par le modèle. Corrélation de Pearson de la régression linéaire, pas sensible aux différences additives et proportionnelles.</td><td></td><td>1</td><td>Hypothèses d'indépendance, normalité et homoscédasticité des résidus pas toujours vérifiées !</td></tr><tr><td>R<sup>2</sup> pondéré</td><td>wR<sup>2</sup></td><td>Pondère le R<sup>2</sup> selon le coefficient b de la régression y = a + b*x.</td><td>{|b| &times; R<sup>2</sup> si b &le; 1<br>|b<sup>-1</sup> &times; R<sup>2</sup> si b &gt; 1}</td><td>1</td><td></td></tr></tbody></table>
**Annexe 4 :** Exemples de visualisations spatiales de variables sol ou météo à partir de la grille européenne INSPIRE avec masque prairies européennes (cartes interactives Leaflet créées en R).

<figure><img src="image_8.png" /><figcaption>Pourcentage de sable dans la première couche du sol</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Précipitations moyennes quotidiennes sur l'année 2000</figcaption></figure>
**Annexe 5** : Diagramme présentant la structure de l'outil de reporting au niveau du site et les formats attendus pour les données.

<figure><img src="image_10.png" /></figure>
<figure><img src="image_11.png" /></figure>
## User Guide:

## Grassland model evaluation reporting tool

July 2025

Louis Campiglia internship, supervised by Raphael Martin.

This site-level Grassland Model Evaluation Reporting Tool creates automatic reports to evaluate the performance of multiple grassland simulation models compared to observed data.

The User Guide describes how to use the tool, how to read the reports, and sums up how it technically works.

## Table of content

* Launching the reports.................................................................................................................. 2

How to install the tool ................................................................................................................................. 2

Folder structure and data format .................................................................................................................. 2

How to run the scripts ................................................................................................................................. 5

Potential errors.................................................................................................................................................. 5

* Reports overview .................................................................................................................. 5

Statistical indicators.................................................................................................................................................. 6

Reports structure.................................................................................................................................................. 6

- Global report.................................................................................................................................................. 6

- Individual reports........................................................................................................................................ 9

* Technical description.................................................................................................................. 11

Launch_reporting.R ........................................................................................................................................ 11

Reporting_1site.Rmd ........................................................................................................................................ 11

Reporting_global.Rmd ........................................................................................................................................ 12
* Launching the reports

How to install the tool

You need to copy the **reporting** folder on your computer. You can clone it (or download it) from forge INRAE
GitLab here: https://forge.inrae.fr/urep/project/sampa/-/tree/main/Louis/reporting

To clone with SSH:

1. You must have created a SSH key, added your public key into to your forge.inrae GitLab profile and configured your private key in Git Bash or Tortoise git. You need to have access to the project.

2. On the GitLab page, select "Code" (top right of the page) and copy the URL for "Clone with SSH".

3. If you are using Git Bash, open a terminal in the directory where you want to clone the folder and run the command `git clone <copied URL>`.

3. If you are using Tortoise Git, right click -> Git Clone, and make sure the GitLab url, your directory name and your ssh key are correct.

4. You will have to enter your private key passphrase.

If you only want to download the folder, you can simply select "Code" (top right of the page), choose "zip" and extract the archive.

## Folder structure and data format

The diagram in the two pages below represents the structure of the directory, in a case where two sites are evaluated (Theix_6 and Easter_Bush_UK), and describes the required format of each file.

Remarks:

* Variable names are not case sensitive.

* If you use Excel to modify CSV data, you may receive warnings when saving and closing your file, asking you if you want to keep using the CSV format, which makes you lose formatting options. You must ignore it and keep the same format.

* The decimal separator is the point (e.g. 0.75).

* You can edit YAML files with a text editor such as NotePad++.

* All files from the *config* folder are optional, but the folder itself must exist.

* Your EFg references files do not need to include all the variables from the sites they are linked with, default values (global means) will be used for missing ones.

* To add new sites semi-automatically, the script `add_new_data_to_reporting.R` can create the folder and run the models (`PaSim`, `GrasProg` and `ModVege`). You need to give its function the observed data, the localisation of the site(s) and the management data. Weather and soil data needed by the models will automatically be taken from the NetCDF INSPIRE grid data.
<figure><img src="image_12.png" /></figure>
<figure><img src="image_13.png" /></figure>

Example of the structure of a site's events CSV file (all columns are optional):

<table><thead><tr><th>year</th><th>doy</th><th>mowing</th><th>grazing</th><th>fertilization</th><th>remaining_biomass</th><th>N_amount</th></tr></thead><tbody><tr><td>2020</td><td>120</td><td>TRUE</td><td>NA</td><td>FALSE</td><td>0.2</td><td>NA</td></tr><tr><td>2020</td><td>150</td><td>FALSE</td><td>NA</td><td>TRUE</td><td>NA</td><td>5</td></tr><tr><td>2020</td><td>204</td><td>TRUE</td><td>NA</td><td>FALSE</td><td>0.2</td><td>NA</td></tr><tr><td>2020</td><td>240</td><td>TRUE</td><td>NA</td><td>FALSE</td><td>0.2</td><td>NA</td></tr><tr><td>2021</td><td>125</td><td>FALSE</td><td>NA</td><td>TRUE</td><td>NA</td><td>2</td></tr><tr><td>2021</td><td>140</td><td>FALSE</td><td>25</td><td>FALSE</td><td>NA</td><td>NA</td></tr></tbody></table>

Example of the structure of `variables_description.yaml`:

```yaml
lai:
  description: leaf area index
  unit: m2 leaf / m2 soil

worganic:
  description: total organic carbon in soil
  unit: kg C /m2
  is_soil carbon: TRUE # TRUE for soil Carbon variable (yearly stored Carbon will be automatically computed and evaluated)
```

`Approx_methods.yaml` is useful if an observed variable (or its unit) differs from the one in the models outputs. Here is the required structure:

```yaml
shoot_biomass: # y (corresponds to the name of a model outputs column)
  method: affine_function # y = a*x + b
  x: mowed_biomass # name of an observed variable
  a: 1.05
  b: 0.2
```
## How to run the scripts

To create all the reports, you only need to run `launch_reporting.R`

- If you are using RStudio: Open `launch_reporting.R`. Select all the code (`CTRL+A`). Run it (`CTRL+Enter`, or click the Run button).

- If you are using another environment: you need to remove line 5 of `launch_reporting.R` and use another method to set the working directory to the reporting folder (you can use the `setwd()` function).

## Potential errors

When `launch_reporting.R` is running, you can follow the progress in the R Console.

If any folder or mandatory file is missing, or if the structure of a file is incorrect, the run stops immediately and an error message explains where the problem is. In the example below, the column 'value' was missing from `Borgo_A_lai.csv`.

```
borgo_A: Error lai: observed data file must contain columns 'year', 'doy' (day of the year) and 'value', with sep=','
```

If there is an error related to the data itself, the run stops when the report for the corresponding site is being rendered. In the example below, none of the site's variables can be compared to any model output (the site report would be empty). It happens when the observed variables are not present in the models outputs, or when the models outputs dates do not match the observations ones. If at least one variable has two matching dates with a model output, the render will not be stopped, but the variables that could not be processed will be listed in the report.

```
error dans value[[3L]](cond):
Error while rendering site 'Ecrins_high':
Site Ecrins_high: none of the observed variables correspond to any model output (variable missing for all models or less
than 2 matching dates).
```

In case of an error without custom message defined, the name of the site where the problem occurred will be displayed, along with the Rmd chunk where it occurred and the R error name.

If there are no errors, the message "All reports have been created" will be displayed at the end of the process.

## Reports overview

Once the R script is fully run, one global report and an individual report for each site have been created in the `_Reports` folder. These are HTML files that can simply be opened with your web browser (e.g. Chrome or Firefox). The first time, you might have to right click -> "open with" -> select your web browser.

<figure><img src="image_14.png" /></figure>
## Statistical indicators

To evaluate a model's performance on a variable, we compare the model's predictions $X_{sim,i}$ to the observed data $X_{obs,i}$, for all dates i where we have both.

The main indicators chosen are:

- The Mean Error (bias) $E = \frac{1}{n} \sum_{i=1}^{n} (X_{sim,i} - X_{obs,i})$ represents the difference between the mean of $X_{sim}$ and the mean of $X_{obs}$. The closer to zero it is, the smaller is the model's bias. We also use the relative bias $PBI = 100 \times \frac{bias}{|X_{obs}|}$ and test the significance of the bias, with either a paired t-test (if the normality of differences is verified) or a Wilcoxon test: if the p-value is < 0.05, the bias is significantly different from zero at a confidence level of 95%.

- The Mean Absolute Error $MAE = \frac{1}{n} \sum_{i=1}^{n} |X_{sim,i} - X_{obs,i}|$ assesses the global accuracy, based on absolute values of the errors. Unlike RMSE or EF, MAE does not square the errors, so it is less sensitive to bigger errors. We also use the relative Mean Absolute Error: $E = 100 \times \frac{MAE}{|X_{obs}|}$.

- The Nash-Sutcliffe modelling efficiency coefficient (Modelling Efficiency) $EF = 1 - \frac{\sum_{t=1}^{n} (X_{sim,t} - X_{obs,t})^2}{\sum_{t=1}^{n} (X_{obs,t} - X_{ref,t})^2}$ is a metric initially developed to assess the predictive skill of hydrological models, and is also widely used in agronomy and ecology. It is defined as one minus the ratio of the sum of squared differences between simulated and observed values to the variance of the observations. The ideal EF value is 1, and EF < 0 means that the observed mean is a better predictor than the model (in terms of the sum of the squared error).

- We introduced the Modelling Efficiency global $EFg = 1 - \frac{\sum_{t=1}^{n} (X_{sim,t} - X_{obs,t})^2}{\sum_{t=1}^{n} (X_{obs,t} - X_{ref,t})^2}$ where the site-specific mean used in the EF denominator is replaced by a reference value ($X_{ref}$). This change shifts the focus from site-level variance to deviation from an expected or common reference. By default, $X_{ref}$ is the global mean of the variable across all sites, but it can also be an expected mean based on larger scale simulations, regional characteristics, management types, or measurement regularity. EFg is displayed with the MAEr on the global maps. These two indicators provide complementary information: EFg is more sensitive to bigger errors whereas MAEr takes greater account of small errors, EFg accounts for the unpredictability of site-level observations while MAEr remains independent of any reference. It is important to read them together, as in some specific cases one metric may appear satisfactory while the model predictions are actually poor (EFg if the reference value is very far from the observations, MAEr if the observations have a small variance...).

Other indicators are given in the individual site reports (RMSE, R²...), they are described (in French) in the table in code_and_doc/description_indcateurs_statistiques.pdf.

## Report structure

### Global report

In the first part of the Global Report, a map is displayed for each variable, with a point for each site.

* You can select the model whose results you want to see using the tab at the top of each map.

* The outlines of the points are coloured according to the MAE value: light blue if very good, dark red if very bad. The centres of the points are coloured according to the EFg value: light yellow if very good (close to 1), black if very bad (<< 0). You can click on a point to see more details about the site
(number of observation days, other indicators evaluating the model's performance on this variable, and a direct link to the full site report).

If multiple plots are close to each other, you may need to zoom in to see them all.

<figure><img src="image_15.png" /></figure>

Then, for each variable, boxplots and tables compare the performance of every models across all sites, through four different indicators.

* The indicator used to compare the models is selected by the tab above the boxplots

* Below the boxplots, which show the distribution of the indicator for each model, the table information includes the number of sites where each model was evaluated and the mean value of the selected indicator.

* For the Mean Absolute Error, a non-parametric test is added to show if the differences between models are significant. If all models have been evaluated exactly on the same sites, the used test will be a paired test (Friedman), otherwise it will be a test robust to unequal groups (Kruskal-Wallis). If a significant difference is detected (low p-value), a post-hoc test table is shown to identify which models have significantly different MAEs. Note: The Kruskal-Wallis test is very conservative; it will detect significant differences less often.

* For the Modelling Efficiency (global), the percentage of sites where EF < 0 - meaning the mean (or reference) value is a better predictor than the model - is included in the table.

* For the bias, a Wilcoxon signed-ranks test (non-parametric) tests whether the median of the biases is significantly different from zero. Furthermore, two different procedures are used to adjust the individual p-values of bias significance tests (Holm-Bonferroni and Benjamini Hochberg) and the
percentage of sites with significant bias is displayed. Holm-Bonferroni (controls the Family Wise Error Rate) is more conservative than Benjamini Hochberg (controls the False Discovery Rate).

<figure><img src="image_16.png" /></figure>

The models performances in term of MAE are then compared to site characteristics. A table shows how often each model is the best depending on the type of management (grazing, mowing, ...). And a graphic displays MAEr by site aridity (only works if De Martonne aridity index was given in the YAML description files), with linear regression for each model.

<figure><img src="image_17.png" /></figure>
Finally, at the bottom of the Global Report, there are direct link to every individual site report created
together with the Global Report.

- Individual reports

The date when the report was generated is written on the top-right of the report. It is recommended to
open the site reports using the Direct Links section of the Global Report.

The long names of the models evaluated are listed.

General information on observed data is displayed (site information, observed variable descriptions, information about the automatic data transformation, etc.)

<figure><img src="image_18.png" /></figure>

Then, interactive graphics allow you, for each variable, to compare visually the observations to the model
outputs.

➤ You can zoom in on the graphic (click and drag). You can return to initial view using the "Reset axes" button (house icon). You can also choose between "zoom" (default) and "pan" (to drag without changing the zoom level) mode.

<figure><img src="image_19.png" /></figure>

> The right tab allows you to select what you want to see on the graphic (click to hide a model, double-click to select only one trace).

➤ When you hover over the points, the date and all values are displayed.

> The management events (mowing, grazing and fertilization) are shown with dotted vertical lines (+ a horizontal line for grazing).

> When there are multiple observations on the same date (made on different parts of the plot), they are all displayed on the graphics as circles, and the daily mean, which will be used to compute the indicators, is shown as connected crosses.
<figure><img src="image_20.png" /></figure>

<figure><img src="image_21.png" /></figure>

<figure><img src="image_22.png" /></figure>

Then, for each variable, a text summary per model and a table present the statistical indicators.

The text provides details based on many indicators. It is associated with a variable and with a model that you select with the tab above.

The table summarizes the most important indicators for each model, with the best value shown in bold.

* For the soil carbon variable, the indicators are calculated based on the annualized quantity of stored carbon, instead of the total amount in the soil.
<figure><img src="image_23.png" /></figure>

<figure><img src="image_24.png" /></figure>

## Technical description

### Launch_reporting.R

This script prepares the data, checks the structure of the reporting folder is correct, and then calls R Markdown files which will create the individual reports and the global report.

The run is stopped if one folder (e.g. *data* or *config...*) is missing in the directory. *sites_list* is defined as the names of all subfolders in *data*, the run is stopped if a file is missing in one of those subfolders, or if its format is incorrect (e.g. missing column or non-numeric value). The format of *approx_methods.yaml* is also checked.

For every variable, the global mean value across-sites is calculated and written in *config/EFg_references*. When multiple observation values are recorded the same day, the data are merged using the daily mean, and if the variable is the soil carbon one (is soil carbon = TRUE in *variables_description.yaml*), observations occurring within a few days of each other are merged too, and the annualized quantity of stored carbon is computed and included in the means. If an approximation can be made with the variable (with *approx_methods.csv*) it is also included.

Finally, for each site in *sites_list*, *reporting_1site.Rmd* is called with the *render()* function and *site* as a parameter, to create the site report, and then *reporting_global.Rmd* is called with *sites_list* as a parameter.

### Reporting_1site.Rmd

This R Markdown file renders an HTML document, styled using *styles.css* (which hides the default title and defines the layout for clickable tabs), evaluating the models' performance on the variables of the site given as a parameter.
The block **import observed data** retrieves all variable names and fills in *observed_data*, a named list of data frames with *date* and *value* columns. The *value* column is converted to numeric, after replacing potential "," decimal separators with ".". The approximations (from *approx_methods.yaml*) are also computed and included in *observed_data*.

The block **import model outputs** retrieves the models names and their data. The columns are checked and the date is added.

The block **print models names** retrieves the models full names (or keeps the model code if the long name is missing) from *models_descriptions.yaml* and formats them into a text.

The block **long variable name** defines a function to return the long name of a variable if it exists or the variable code.

In the block **prepare data**, *observed_data_mean* groups *observed_data* rows by *date*, using the mean for the *value* column. Then, with *observed_data_merg ed* and *observed_data_mean_merg ed* we add columns with model simulations of the variable when at least one *date* is matching. If we add at least two models, a column *modelsabb median* is also included. If no model output matches the observed variable, it is removed. The names of removed variables are kept in a list and the variables names list is updated.

The block **soil carbon days merge** groups the soil carbon observations within a few days of each other, because we assume it is observations made on different parts of the plot (usually every 2 to 5 years) to be averaged.

The block **import and prepare events data** uses the site's *events_data* CSV file to create *grazing_events*, *mowing_events* and *fertilization_events* in a format easy to use for the graphics.

The block **general information on observed data**, which is included in an HTML div that will display the text on the left part of the section, displays various information (when available) about the data and the transformation that has been made (e.g. number of management events, list of removed variables...) and presents the observed variables (unit, number of observations...).

The block **map** displays, on the right part of the section, a map with the site's location. The map is created with **leaflet**. The render stops if **latitude** and/or **longitude** (not case sensitive) is missing in the site description YAML file.

The block **graphics** creates plotly graphics (one for each variable) which are stored in a list and displayed with **browsable**. A graphic is built with multiple layers: the daily mean of observations, all observations points, all models (points on observation dates & a thin line for the rest, grouped in the legend), dot lines for all management events.
Then, the layout is defined and the toolbar is configured. Date limits are based on the observations. For the carbon soil variable, a text with average annualized quantity of stored carbon is added.

In the block **all indicators function**, the references for global Modelling Efficiency are retrieved and completed. Then, the function **calculate_stats** is defined: it computes all indicators for a var and a model (the tests and R2 are only computed if there is at least 3 observation points) and writes a summary text with it.

The block **key indicators function** defines *create_indicators_table*, a function which creates, for a variable, a table of four indicators for each model, puts the best value of each indicator in bold, and return the table with kable().

The block **tabsets to display indicators** creates, for each variable, a Markdown tabset to select the model, and calls the functions to display the indicators.

## Reporting_global.Rmd

This R Markdown file renders an HTML document, styled using *styles.css*, which hides the default title and defines the layout for clickable tabs, evaluating the models performance across all the sites given as a parameter.

The block **prepare all data** use parts of the code from *Reporting_1site.Rmd* to calculate the main indicators of each site, variable and model (including approximated variable, annualized carbon storage, etc.). The results are stored in
`all_data`, a dataframe with all the information needed for all the next blocks. The dataframe is sorted so that the variables are displayed in the same order as in `variable_description.yaml` (those missing will be at the bottom).

The block *creation of maps* includes a function to create maps with Leaflet with points outline coloured according to MAEr and point fill coloured according to the EFg, detailed popups and two legends. It stocks one map for each variable and model in `all Maps[[var_]][[model_]]`.

In the block *display maps with tabset*, for each variable, maps are displayed using knit_print, with a tab to select the models made with a Markdown tabset.

The block *boxplot with ggplot* uses a function to create, for each variable and for ME, MAE EF and EFg, a graphic with boxplots of the distribution of the indicators for each model. The graphics are displayed, together with a table, in a Markdown tabset with tabs for the different metrics. The table is different for each metric. For the bias, it includes the Wilcoxon median test and the proportion of significative individual p-values after BH or BY correction. For MAE, we also write the results of a test identifying if there is a significant difference between at least two models: to choose the best test, we count the number of models (2: Wilcoxon; >2: Friedman/Kruskal-Wallis) and look if they have all been evaluated on the same sites (paired or unpaired test). If a significant difference is detected, the table of a post-hoc test is shown, with p-values adjusted using the Bonferroni method.

The block *best_model_table* counts how often each model has the smallest MAE for a site, depending on the management method (defined based on the events data) and create a table with kable.

The block **MAE by environmental factors** includes a function to create a MAEr ~ aridity graphic with linear regression for each model. The graphic is only built if there is at least 3 different aridity values. I did not manage to include Plotly graphics in a Markdown tabset, so all graphics are displayed one after another.

The block *links* create a direct link to the individual report of each site in `sites_list`.
Annexe 7 : Première partie du rapport individuel d'une parcelle.

Automatic Report: Evaluation of Grassland Model Performance on
observed data from Theix_6 site.

Report generated on 2025-08-08 17:18

The observed data will be compared to GrasProg, ModVege and PaSim with original parametrization models outputs. When
several models estimate the same variable, the median and the mean of these models at each observation date will also be
evaluated (ensemble modelling).

* **General information on observed data:**

Plot name: Theix_6.

Plot altitude: 875 meters.

De Martonne aridity index: 41.11786.

In total, there were 42 mowing events.

In total, there were 41 fertilization events.

**Observed variables:**

- **wcorganic**, total organic carbon in soil (kg C /m2) : 3 observation days
  from 2005-05-05 to 2012-01-05.

- **yield**, Harvested biomass (dry matter) (kg DM /ha) : 45 observation days
  from 2005-05-27 to 2019-10-17.

There are several observations per day (different locations within the plot).
Each observation and their average are displayed on the graphics.The
indicators are calculated using the daily averages.

<figure><img src="image_25.png" /></figure>
**Annexe 8 :** Partie « indicateurs statistiques évaluant la performance d'un modèle » du rapport individuel d'une parcelle pour la variable « yield ».

- On Harvested biomass (dry matter) (yield):

grasprog

modvege

pasim_2025

pasimOriginal</text>

models_mean

modelsmedian

PaSim with 2025 parametrization for Harvested biomass (dry matter) (39 observation days):

The mean error (bias) is E = -480.95kg DM /ha, which results in a relative bias of PBI = -15.19 %.

Bias significance: the normality of the differences is verified by the Shapiro test (p-value = 0.7786 > 0.05), so we perform a paired t-test :
the resulting p-value is 0.0295 < 0.05, so the bias is significantly different from 0 at a confidence level of 95%.

The Root Mean Square Error is RMSE = 1395.92kg DM /ha, which corresponds to a Relative RMSE of RRMSE = 44.1 %.

The Nash-Sutcliffe modelling efficiency coefficient, whose ideal value is 1, is EF = 0.5467.

The Modelling Efficiency global, which normalizes errors with the squared deviations from the reference value of the *each_ref.csv* rather
than the site mean, is EFg = 0.613.

The Mean Absolute Error is MAE = 1085.89kg DM /ha, and the Relative Mean Absolute Error is MAEr = 34.3 %.

The absolute N.-S. Modelling Efficiency, based on absolute errors instead of squared error, is EF_1 = 0.4266.

The linear coefficient of determination, which measures the proportion of the variance in the observations explained by the model, is R2 = 0.5934.

Summary table of key indicators (yield).

<table>
   <thead>
    <tr>
     <td>
     </td>
     <td>
      Mean Error (Relative)
     </td>
     <td>
      Mean Absolute Error (Relative)
     </td>
     <td>
      N.S. Modelling Efficiency
     </td>
     <td>
      Modelling Efficiency global
     </td>
    </tr>
   </thead>
   <tbody>
    <tr>
     <td>
      grasprog
     </td>
     <td>
      -1846.47 kg DM /ha (-58.3 %) *
     </td>
     <td>
      1853.04 kg DM /ha (58.5 %)
     </td>
     <td>
      -0.3312
     </td>
     <td>
      -0.1367
     </td>
    </tr>
    <tr>
     <td>
      modvege
     </td>
     <td>
      -1028.38 kg DM /ha (-32.5 %) *
     </td>
     <td>
      1774.06 kg DM /ha (56 %)
     </td>
     <td>
      -0.1026
     </td>
     <td>
      0.0585
     </td>
    </tr>
    <tr>
     <td>
      pasim_2025
     </td>
     <td>
      <strong>
       -480.95 kg DM /ha (-15.2 %)
      </strong>
      *
     </td>
     <td>
      1085.89 kg DM /ha (34.3 %)
     </td>
     <td>
      0.5467
     </td>
     <td>
      0.613
     </td>
    </tr>
    <tr>
     <td>
      pasimOriginal
     </td>
     <td>
      560.29 kg DM /ha (17.7 %) *
     </td>
     <td>
      <strong>
       899.66 kg DM /ha (28.4 %)
      </strong>
     </td>
     <td>
      <strong>
       0.7014
      </strong>
     </td>
     <td>
      <strong>
       0.745
      </strong>
     </td>
    </tr>
    <tr>
     <td>
      models_mean
     </td>
     <td>
      -748.39 kg DM /ha (-23.6 %) *
     </td>
     <td>
      1071.93 kg DM /ha (33.9 %)
     </td>
     <td>
      0.5115
     </td>
     <td>
      0.5829
     </td>
    </tr>
    <tr>
     <td>
      modelsmedian
     </td>
     <td>
      -801.89 kg DM /ha (-25.3 %) *
     </td>
     <td>
      1239.67 kg DM /ha (39.2 %)
     </td>
     <td>
      0.3865
     </td>
     <td>
      0.4762
     </td>
    </tr>
   </tbody>
  </table>
<figure><img src="image_26.png" /><figcaption>Annexe 9 : Onglet « Mean Absolute Error » de la variable « yield » dans la partie « comparaison des performances des modèles » du rapport global.</figcaption></figure>
**Annexe 10 :** Onglet « bias » de la variable « yield » dans la partie « comparaison des performances des modèles » du rapport global.

<figure><img src="image_27.png" /></figure>
Annexe 11 : Partie « performance des modèles en fonctions des caractéristiques de la parcelle » du rapport global.

<figure><img src="image_28.png" /></figure>