# 84. Mutation: YieldDataset kalibreren en opschonen

Het kalibreren van de "YieldDataset" is een functionaliteit die de waardeverdeling corrigeert in overeenstemming met wiskundige principes, waardoor de algehele integriteit van de gegevens verbetert. Het versterkt de kwaliteit van besluitvorming en maakt de dataset waardevol voor verdere diepgaande analyse.

Veelvoorkomende toepassingsgevallen voor deze functionaliteit zijn onder andere:

* Het synchroniseren van gegevens wanneer meerdere hakselaar(sen) gelijktijdig of over meerdere dagen hebben gewerkt, om consistentie te waarborgen.
* De dataset homogener en nauwkeuriger maken door variaties te egaliseren.
* Gegevensruis en overtollige informatie verwijderen die inzichten kunnen vertroebelen.
* Draaiingen of abnormale geometrieën elimineren, die de werkelijke patronen en trends in het perceel kunnen vertekenen.
* Opbrengstgegevens aanpassen zodat ze overeenkomen met vastgestelde gemiddelden of totalen voor elk attribuut.

Voor een meer gedetailleerde verkenning en voorbeelden, raadpleeg alstublieft onze [Opbrengstkalibratie & Schoonmaak](/geopard-tutorials/nl/agronomie/opbrengstkalibratie-en-opschoning.md) use case.

### Originele YieldDataset met WetMass-attribuut

Vijf hakselaar(sen) werkten parallel op het onderstaande perceel van 30 ha. De kalibratie van één van de hakselaar(sen) was niet gesynchroniseerd met de anderen, wat resulteerde in <mark style="color:oranje;">oranje</mark> vlekken, wat aangeeft dat extra `KALIBRATIE` nodig is. Bovendien zijn er talrijke keerbewegingen <mark style="color:rood;">rood</mark> vlekken dichter bij de randen van het "Perceel" die verwijderd moeten worden.

<figure><img src="/files/cec06791526bd07e642fb206ba34ec5f18e26795" alt=""><figcaption><p>Originele YieldDataset met WetMass-attribuut</p></figcaption></figure>

### Gekalibreerde en geschoonde YieldDataset met WetMass-attribuut

Het onderstaande resultaat toont de dataset na het toepassen van automatische `KALIBREREN` en `SCHOONMAKEN` bewerkingen met standaardparameters. De resulterende "YieldDataset" is homogeen geworden, zonder uitschieters of abrupte veranderingen tussen aangrenzende geometrieën.

<figure><img src="/files/6c30db046801ca9c777beb6c14387ed9a97eaa0f" alt=""><figcaption><p>Gekalibreerde en geschoonde YieldDataset met WetMass-attribuut</p></figcaption></figure>

### Padgewijze vs Gemiddelde/Totalen vs Voorwaardelijke opties

**Padgewijze kalibratie** komt overeen met de machinebanen. Elke machinebaan wordt verwerkt als een afzonderlijke regio voor kalibratiedoeleinden. Het GeoPard-team raadt aan deze methode als standaardbenadering te gebruiken.

**Gemiddelde/Totalen kalibratie** richt zich op het herverdelen van attribuutwaarden. Als de geospatiale patronen kloppen maar de absolute cijfers afwijken van de werkelijke waarden, is deze methode nuttig. Voor optimale resultaten adviseert GeoPard deze te combineren met padgewijze kalibratie: eerst padgewijs toepassen en daarna aanpassen aan bekende gemiddelde/totalen waarden.

**Voorwaardelijke kalibratie** past attribuutwaarden aan op basis van opgegeven minimum- en maximumdrempels. Deze methode is vooral waardevol wanneer de geospatiale patronen nauwkeurig zijn, maar de waardeverdeling aanpassing behoeft, voornamelijk wanneer bekende min- en maxwaarden beschikbaar zijn. Voor de beste uitkomsten raadt GeoPard aan dit te koppelen aan padgewijze kalibratie: beginnen met padgewijs en vervolgens aanpassen om te voldoen aan de bekende min- en maxwaarden.

### Hints

{% hint style="warning" %}
**Hint voor gegevensanomalieën**

Als een gebruiker anomalieën in de gegevens tegenkomt, zoals waarden op of nabij nul, of ongewoon grote waarden (bijvoorbeeld een gemiddelde van 10 met een maximum van 8000), wordt de **Schoonmaak & Kalibratie** workflow geadviseerd. Deze wordt geconfigureerd met parameters `acties: [SCHOONMAKEN, KALIBREREN]`.&#x20;

Het prioriteren van gegevensschoonmaak vóór kalibratie zorgt voor het verwijderen van fouten, ontbrekende waarden of inconsistenties, en verbetert daarmee de gegevenskwaliteit en nauwkeurigheid.
{% endhint %}

{% hint style="warning" %}
**Hint voor gegevens zonder initiële fouten**&#x20;

Voor datasets die aanvankelijk vrij zijn van fouten, ontbrekende waarden of inconsistenties, en wanneer bekend is dat meerdere hakselaar(sen) betrokken zijn, overweeg dan de **Kalibratie & Schoonmaak** workflow. Deze wordt geconfigureerd met parameters `acties:  [KALIBREREN, SCHOONMAKEN]`.

Het schoonmaken van de gegevens na kalibratie helpt de dataset verder te verfijnen door mogelijk artefacten te elimineren die tijdens de kalibratie zijn geïntroduceerd.
{% endhint %}

### Documentatie: Mutatie details

De standaardconfiguratie schakelt automatische kalibratie en reiniging van de "YieldDataset" in.

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

```graphql
mutatie 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"
        }
      }
      
      acties:  [KALIBREREN, SCHOONMAKEN]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

Een meer geavanceerd voorbeeld biedt handmatige controle over min/max-bereiken en omvat aanvullende attributen.

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

```graphql
mutatie 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
        }]
      }
      acties:  [KALIBREREN, SCHOONMAKEN]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

{% hint style="info" %}
Om het USDA-protocol voor de `SCHOONMAKEN` bewerking te volgen, moet u ofwel ALLE kolommen vermelden in de `cleanAction` -> `conditionMinMaxClean` of een deel daarvan opgeven in `cleanAction` -> `conditionMinMaxClean` en de overige in `condtionAutoClean` -> `excludedAttributes`.
{% endhint %}

Invoervariabelen:

* `acties` als een array, waarmee u kunt kiezen *de corrigerende acties en hun volgorde* van toepassing; ondersteunde waarden omvatten `SCHOONMAKEN` en `KALIBREREN`.
* `calibrateAction` als een object dat configuratiedetails bevat gerelateerd aan de `KALIBREREN` bewerking.&#x20;
  * `calibrationAttributes` als een array van attributen die kalibratie vereisen, doorgaans gekoppeld aan de Opbrengst-kolom.
  * `smoothWindowSize` als een oneven geheel getal dat de resulterende waarden gladstrijkt en abrupte sprongen in de waarden vermindert.
  * `conditionPathwiseCalibration` als een object met de **Padgewijze** kalibratie komt overeen met de machinebanen. Elke machinebaan wordt verwerkt als een afzonderlijke regio voor kalibratiedoeleinden.
    * `calibrationBasis` als een string die het attribuut vertegenwoordigt dat als basis voor kalibratie wordt gebruikt.
    * `maxHomogeneityRegion` als een boolean die aangeeft of de maximale homogeniteitsregio wordt gebruikt als referentieregio voor kalibratie.
    * `syntheticMachinePath` als een boolean die de simulatie van machineroutes aangeeft; dit is nuttig wanneer het exacte machinepadattribuut ontbreekt en simulatie op basis van tijdstempels of een vergelijkbaar attribuut nodig is.
  * `conditionAvgTotalCalibration` als een object met de **Gemiddelde/Totalen** kalibratie richt zich op het herverdelen van attribuutwaarden. Als de geospatiale patronen kloppen maar de absolute cijfers afwijken van de werkelijke waarden, is deze methode nuttig.
    * `calibrationAttribute` als een string die het attribuut vertegenwoordigt dat gekalibreerd moet worden.
    * `average` als een getal dat de gemiddelde waarden van het attribuut vertegenwoordigt; de attribuutwaarden moeten in lijn zijn met dit gemiddelde. Slechts één optie, ofwel `average` of `total`, moet tegelijkertijd worden gebruikt.
    * `total` als een getal dat de totale som van de attribuutwaarden vertegenwoordigt; de aggregate van deze waarden moet overeenkomen met het totaal. Slechts één optie, ofwel `average` of `total`, moet tegelijkertijd worden gebruikt.
  * `conditionMinMaxCalibration` als een object met de **Voorwaardelijke** kalibratie past attribuutwaarden aan op basis van opgegeven minimum- en maximumdrempels.
    * `calibrationAttribute` als een string die het attribuut vertegenwoordigt dat gekalibreerd moet worden.
    * `min` als een getal dat de minimumwaarden van het attribuut vertegenwoordigt en dient als de laagste range voor kalibratie.
    * `minIncluded` als een boolean die aangeeft of de minimumwaarde al dan niet moet worden opgenomen
    * `max` als een getal dat de maximumwaarden van het attribuut vertegenwoordigt en dient als de hoogste range voor kalibratie.
    * `maxIncluded` als een boolean die aangeeft of de maximumwaarde al dan niet moet worden opgenomen.
* `cleanAction` als een object dat de configuratiespecificaties bevat die verband houden met de `SCHOONMAKEN` bewerking.
  * `conditionAutoClean` als een object dat de configuraties bevat die specifiek zijn voor het auto-clean-algoritme.
    * `targetAttribute` als een string die doelopbrengstwaarden vertegenwoordigt.
    * `excludedAttributes` als een array van strings die attributen definiëren die de schoonmaakbewerking niet beïnvloeden.
  * `conditionMinMaxClean` als een array van objecten die de beschreven schoonmaakregels bevatten; elk object omvat de volgende parameters.
    * cleanAttribute als een string die de kolomnaam voor de regel specificeert.
    * `min` als een getal dat de minimumwaarde aangeeft.
    * `max` als een getal dat de maximumwaarde aangeeft.

{% hint style="info" %}
Om de inputs te bekijken en toegang te krijgen tot de laatst beschikbare waarden van enumeraties (zoals `bewerkingen`), wordt aanbevolen om te gebruiken [Altair](/geopard-tutorials/nl/api-docs/aan-de-slag-met-de-geopard-api.md).
{% endhint %}

### Documentatie: YieldDataset-query

Als GeoPard API-gebruiker kunt u details ophalen over de correcties die op YieldDatasets zijn toegepast via de attributen `appliedCorrections` en `appliedCorrectionsVersion`. Het eerste biedt een lijst van aangebrachte correcties (bijv. `KALIBREREN` en `SCHOONMAKEN`), waarbij de uitvoeringsvolgorde wordt aangeduid door hun volgorde in de array. Ondertussen geeft `appliedCorrectionsVersion` de versie van het gebruikte algoritme aan.

{% 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/nl/api-docs/overzicht-van-api-verzoeken-van-geopard/84.-mutation-yielddataset-kalibreren-en-opschonen.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.
