# 84. Mutation : calibrer et nettoyer le jeu de données de rendement

Calibrer le "YieldDataset" est une fonctionnalité qui corrige la distribution des valeurs en accord avec des principes mathématiques, renforçant l'intégrité globale des données. Elle améliore la qualité de la prise de décision et rend le jeu de données précieux pour des analyses approfondies ultérieures.

Les cas d'utilisation courants de cette fonctionnalité incluent :

* Synchroniser les données lorsque plusieurs moissonneuses ont travaillé soit simultanément soit sur plusieurs jours, en garantissant la cohérence.
* Rendre le jeu de données plus homogène et précis en lissant les variations.
* Éliminer le bruit des données et les informations superflues qui peuvent obscurcir les analyses.
* Supprimer les demi-tours ou géométries anormales, qui peuvent déformer les motifs et tendances réels dans la parcelle.
* Ajuster les données de rendement pour correspondre aux moyennes ou totaux établis pour chaque attribut.

Pour une exploration plus détaillée et des exemples, veuillez consulter notre [Cas d'utilisation Calibration & Nettoyage des Rendements](/geopard-tutorials/fr/agronomie/calibrage-et-nettoyage-des-rendements.md) d'utilisation.

### YieldDataset d'origine avec l'attribut WetMass

Cinq moissonneuses ont travaillé en parallèle sur la parcelle de 30 ha illustrée ci-dessous. La calibration de l'une des moissonneuses n'a pas été synchronisée avec les autres, entraînant <mark style="color:orange;">orange</mark> points, indiquant que des `CALIBRATIONS` sont nécessaires. De plus, il y a de nombreux demi-tours <mark style="color:rouges;">rouges</mark> plus proches des bords du "Field" qui doivent être éliminés.

<figure><img src="/files/b152ec19720087de7ff2304ba957acdf181ada4e" alt=""><figcaption><p>YieldDataset d'origine avec l'attribut WetMass</p></figcaption></figure>

### YieldDataset calibré et nettoyé avec l'attribut WetMass

Le résultat ci-dessous montre le jeu de données après application automatique des opérations de `CALIBRAGE` et `NETTOYAGE` en utilisant les paramètres par défaut. Le "YieldDataset" résultant est devenu homogène, sans valeurs aberrantes ni changements brusques entre géométries voisines.

<figure><img src="/files/a93fc11aa8bcf82823e0775ca64e36a02bf8ee38" alt=""><figcaption><p>YieldDataset calibré et nettoyé avec l'attribut WetMass</p></figcaption></figure>

### Options Chemin par chemin vs Moyenne/Total vs Conditionnel

**La calibration chemin par chemin** correspond aux traces de la machine. Chaque trace de machine est traitée comme une région individuelle à des fins de calibration. L'équipe GeoPard suggère d'utiliser cette méthode comme approche standard.

**La calibration Moyenne/Total** se concentre sur la redistribution des valeurs d'attribut. Si les motifs géospatiaux sont exacts mais que les chiffres absolus s'écartent des valeurs réelles, cette méthode s'avère bénéfique. Pour des résultats optimaux, GeoPard conseille de la combiner avec la calibration chemin par chemin : appliquer d'abord la méthode chemin par chemin, puis ajuster selon les valeurs Moyenne/Total connues.

**La calibration conditionnelle** ajuste les valeurs d'attribut en fonction des seuils min et max fournis. Cette méthode est particulièrement utile lorsque les motifs géospatiaux sont précis, mais que la distribution des valeurs nécessite des ajustements, notamment lorsqu'il existe des valeurs min et max connues. Pour les meilleurs résultats, GeoPard recommande de la coupler avec la calibration chemin par chemin : commencer par chemin par chemin, suivi d'ajustements pour aligner avec les valeurs min et max connues.

### Conseils

{% hint style="warning" %}
**Conseil pour les anomalies de données**

Si un utilisateur rencontre des anomalies dans les données, telles que des valeurs nulles ou proches de zéro, ou des valeurs exceptionnellement élevées (par exemple, une moyenne de 10 avec un maximum de 8000), le workflow **Nettoyage & Calibration** est conseillé. Il est configuré à l'aide des paramètres `actions : [NETTOYER, CALIBRER]`.&#x20;

Donner la priorité au nettoyage des données avant la calibration garantit la suppression des erreurs, des valeurs manquantes ou des incohérences, améliorant ainsi la qualité et la précision des données.
{% endhint %}

{% hint style="warning" %}
**Conseil pour les données sans erreurs initiales**&#x20;

Pour les jeux de données initialement exempts d'erreurs, de valeurs manquantes ou d'incohérences, et lorsque plusieurs moissonneuses sont connues pour avoir été impliquées, envisagez le workflow **Calibration & Nettoyage** Il est configuré à l'aide des paramètres `actions :  [CALIBRER, NETTOYER]`.

Nettoyer les données après la calibration permet d'affiner davantage le jeu de données en éliminant potentiellement les artefacts introduits lors de la calibration.
{% endhint %}

### Documentation : Détails de la mutation

La configuration standard par défaut active l'auto-calibration et le nettoyage automatique du "YieldDataset".

{% code overflow="wrap" lineNumbers="true" %}

```graphql
mutation AutoCalibrateYieldDataset {
  calibrateYieldDataset(input: {
    fieldUuid: "<placeholder_of_field_uuid>"
    yieldDatasetUuid: "<placeholder_of_dataset_uuid>"
    actions: {
      calibrateAction: {
        calibrationAttributes:["WetMass", "VRYIELDVOL"]
        conditionPathwiseCalibration: {
          calibrationBasis: "WetMass"
          maxHomogeneityRegion: true
          syntheticMachinePath: true
        }
      }
      cleanAction: {
        condtionAutoClean: {
          targetAttribute: "WetMass"
        }
      }
      
      actions :  [CALIBRER, NETTOYER]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

Un exemple plus avancé fournit un contrôle manuel des plages min/max et incorpore des attributs supplémentaires.

{% code overflow="wrap" lineNumbers="true" %}

```graphql
mutation CustomCalibrateYieldDataset {
  calibrateYieldDataset(input: {
    fieldUuid: "<placeholder_of_field_uuid>"
    yieldDatasetUuid: "<placeholder_of_dataset_uuid>"
    actions: {
      calibrateAction: {
        calibrationAttributes:["WetMass", "VRYIELDVOL"]
        smoothWindowSize: 11
        conditionPathwiseCalibration: {
          calibrationBasis: "Machine"
          maxHomogeneityRegion: true
          syntheticMachinePath: false
        }
        conditionAvgTotalCalibration:[{
          calibrationAttribute: "WetMass"
          average:8.0
        }]
      }
      cleanAction: {
        condtionAutoClean: {
          targetAttribute: "WetMass"
        }
        conditionMinMaxClean: [{
          cleanAttribute: "Distance"
          min: 1.5
          max: 10.0
        }]
      }
      actions :  [CALIBRER, NETTOYER]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

{% hint style="info" %}
Pour suivre le protocole USDA pour l' `NETTOYAGE` opération, vous devez soit mentionner TOUTES les colonnes dans la `cleanAction` -> `conditionMinMaxClean` ou spécifier une partie d'entre elles dans `cleanAction` -> `conditionMinMaxClean` et les restantes dans `condtionAutoClean` -> `excludedAttributes`.
{% endhint %}

Paramètres d'entrée :

* `actions` comme un tableau, vous permettant de choisir *les actions de correction et leur séquence* d'application ; les valeurs prises en charge incluent `NETTOYAGE` et `CALIBRAGE`.
* `calibrateAction` comme un objet contenant les détails de configuration liés à l' `CALIBRAGE` opération.&#x20;
  * `calibrationAttributes` comme un tableau d'attributs nécessitant une calibration, généralement liés à la colonne Rendement.
  * `smoothWindowSize` comme un entier impair qui lisse les valeurs résultantes, réduisant les sauts brusques des valeurs.
  * `conditionPathwiseCalibration` comme un objet avec la **Pathwise** la calibration chemin par chemin correspond aux traces de la machine. Chaque trace de machine est traitée comme une région individuelle à des fins de calibration.
    * `calibrationBasis` comme une chaîne représentant l'attribut utilisé comme base de calibration.
    * `maxHomogeneityRegion` comme un booléen indiquant si la région de homogeneité maximale est utilisée comme région de référence pour la calibration.
    * `syntheticMachinePath` comme un booléen indiquant la simulation des itinéraires de la machine ; c'est utile lorsque l'attribut de chemin de machine précis est absent et doit être simulé à partir des horodatages ou d'un attribut similaire.
  * `conditionAvgTotalCalibration` comme un objet avec la **Moyenne/Total** la calibration se concentre sur la redistribution des valeurs d'attribut. Si les motifs géospatiaux sont exacts mais que les chiffres absolus s'écartent des réels, cette méthode est bénéfique.
    * `calibrationAttribute` comme une chaîne représentant l'attribut à calibrer.
    * `average` comme un nombre représentant les valeurs moyennes de l'attribut ; les valeurs de l'attribut doivent s'aligner sur cette moyenne. Une seule option, soit `average` ou `total`, doit être utilisée à la fois.
    * `total` comme un nombre représentant la somme totale des valeurs de l'attribut ; l'agrégat de ces valeurs doit correspondre au total. Une seule option, soit `average` ou `total`, doit être utilisée à la fois.
  * `conditionMinMaxCalibration` comme un objet avec la **Conditionnel** la calibration ajuste les valeurs d'attribut en fonction des seuils min et max fournis.
    * `calibrationAttribute` comme une chaîne représentant l'attribut à calibrer.
    * `min` comme un nombre représentant les valeurs minimales de l'attribut, servant de borne inférieure pour la calibration.
    * `minIncluded` comme un booléen indiquant s'il faut inclure ou non la valeur minimale
    * `max` comme un nombre représentant les valeurs maximales de l'attribut, servant de borne supérieure pour la calibration.
    * `maxIncluded` comme un booléen indiquant s'il faut inclure ou non la valeur maximale.
* `cleanAction` comme un objet qui inclut les spécificités de configuration liées à la `NETTOYAGE` opération.
  * `conditionAutoClean` comme un objet qui inclut les configurations spécifiques à l'algorithme de nettoyage automatique.
    * `targetAttribute` comme une chaîne représentant les valeurs cibles de Rendement.
    * `excludedAttributes` comme un tableau de chaînes définissant les attributs qui n'influencent pas l'opération de nettoyage.
  * `conditionMinMaxClean` comme un tableau d'objets contenant les règles de nettoyage décrites, chaque objet inclut les paramètres suivants.
    * cleanAttribute en tant que chaîne spécifiant le nom de colonne pour la règle.
    * `min` comme un nombre indiquant la valeur minimale.
    * `max` comme un nombre indiquant la valeur maximale.

{% hint style="info" %}
Pour afficher les entrées et accéder aux dernières valeurs disponibles des énumérations (telles que `operations`), il est recommandé d'utiliser [Altair](/geopard-tutorials/fr/docs-api/premiers-pas-avec-lapi-geopard.md).
{% endhint %}

### Documentation : requête YieldDataset

En tant que consommateur de l'API GeoPard, vous pouvez récupérer des détails concernant les corrections appliquées aux YieldDatasets via les attributs `appliedCorrections` et `appliedCorrectionsVersion`. Le premier fournit une liste des corrections effectuées (par ex., `CALIBRAGE` et `NETTOYAGE`), l'ordre d'exécution étant indiqué par leur séquence dans le tableau. Pendant ce temps, `appliedCorrectionsVersion` indique la version de l'algorithme employé.

{% code overflow="wrap" lineNumbers="true" %}

```graphql
query DetailsAboutAppliedCalibrations {
  getFields (filter: {fieldUuid: "<placeholder_of_field_uuid>"}){
    fields {
      uuid
      yieldDatasets  {
        uuid
        appliedCorrections
        appliedCorrectionsVersion
      }
    }
  }
}
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.geopard.tech/geopard-tutorials/fr/docs-api/vue-densemble-des-requetes-de-lapi-geopard/84.-mutation-calibrer-et-nettoyer-le-jeu-de-donnees-de-rendement.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
