# 84. Mutation: calibra e pulisci YieldDataset

La calibrazione del "YieldDataset" è una funzionalità che corregge la distribuzione dei valori in conformità con principi matematici, migliorando l'integrità complessiva dei dati. Rafforza la qualità delle decisioni e rende il dataset utile per analisi approfondite successive.

I casi d'uso comuni per questa funzionalità includono:

* Sincronizzare i dati quando più mietitrebbiatrici hanno lavorato contemporaneamente o in giorni diversi, garantendo coerenza.
* Rendere il dataset più omogeneo e accurato attenuando le variazioni.
* Rimuovere il rumore nei dati e le informazioni estranee che possono offuscare le intuizioni.
* Eliminare inversioni di marcia o geometrie anomale, che potrebbero distorcere i reali modelli e trend nel campo.
* Regolare i dati di resa per corrispondere a medie o totali stabiliti per ciascun attributo.

Per un'esplorazione più dettagliata ed esempi, fare riferimento al nostro [Caso d'uso: Calibrazione e Pulizia della Resa](/geopard-tutorials/it/agronomia/calibrazione-e-pulizia-della-resa.md) uso.

### YieldDataset originale con attributo WetMass

Cinque mietitrebbiatrici hanno lavorato in parallelo nel campo di 30 ha mostrato di seguito. La calibrazione di una delle mietitrebbiatrici non è stata sincronizzata con le altre, risultando in <mark style="color:arancione;">arancione</mark> punti, indicando che è necessaria ulteriore `CALIBRAZIONE` Inoltre, ci sono numerose inversioni di marcia <mark style="color:rosse;">rosse</mark> più vicine ai bordi del "Campo" che devono essere eliminate.

<figure><img src="/files/4e45c921dfef50bb0e5e23e38af02bb158a30a4e" alt=""><figcaption><p>YieldDataset originale con attributo WetMass</p></figcaption></figure>

### YieldDataset calibrato e pulito con attributo WetMass

Il risultato sotto mostra il dataset dopo l'applicazione automatica di `CALIBRA` e `PULISCI` operazioni utilizzando i parametri predefiniti. Il "YieldDataset" risultante è diventato omogeneo, senza outlier o cambiamenti bruschi tra geometrie adiacenti.

<figure><img src="/files/4ee54eb36c2476172775b0a8e6473a647fd21c6a" alt=""><figcaption><p>YieldDataset calibrato e pulito con attributo WetMass</p></figcaption></figure>

### Opzioni Percorso macchina vs Media/Totale vs Condizionale

**Calibrazione per percorso macchina** corrisponde alle tracce della macchina. Ogni traccia macchina viene trattata come una regione individuale ai fini della calibrazione. Il team GeoPard suggerisce di usare questo metodo come approccio standard.

**Calibrazione media/totale** si concentra sulla ridistribuzione dei valori degli attributi. Se i pattern geospaziali sono corretti ma le cifre assolute deviano dai valori reali, questo metodo risulta utile. Per risultati ottimali, GeoPard consiglia di combinarlo con la calibrazione per percorso macchina: applicare prima il percorso macchina, quindi regolare sui valori noti di Media/Totale.

**Calibrazione condizionale** regola i valori degli attributi in base alle soglie minime e massime fornite. Questo metodo è particolarmente prezioso quando i pattern geospaziali sono precisi, ma la distribuzione dei valori richiede aggiustamenti, specialmente se esistono valori minimi e massimi noti. Per i migliori risultati, GeoPard raccomanda di abbinarlo alla calibrazione per percorso macchina: iniziare con il percorso macchina e poi adattare i valori per allinearsi ai minimi e massimi noti.

### Suggerimenti

{% hint style="warning" %}
**Suggerimento per anomalie nei dati**

Se un utente riscontra anomalie nei dati, come valori pari o prossimi a zero, o valori insolitamente elevati (per esempio una media di 10 con un massimo di 8000), è consigliato il **flusso di lavoro Pulizia & Calibrazione** È configurato utilizzando i parametri `azioni: [PULISCI, CALIBRA]`.&#x20;

Dare priorità alla Pulizia dei dati prima della Calibrazione assicura la rimozione di errori, valori mancanti o incoerenze, migliorando così la qualità e l'accuratezza dei dati.
{% endhint %}

{% hint style="warning" %}
**Suggerimento per dati senza errori iniziali**&#x20;

Per dataset inizialmente privi di errori, valori mancanti o incoerenze, e quando è noto che sono coinvolte più mietitrebbiatrici, considerare il **flusso di lavoro Calibrazione & Pulizia** È configurato utilizzando i parametri `azioni:  [CALIBRA, PULISCI]`.

Pulire i dati dopo la calibrazione aiuta a perfezionare ulteriormente il dataset eliminando potenzialmente eventuali artefatti introdotti durante la calibrazione.
{% endhint %}

### Documentazione: dettagli della mutation

La configurazione standard predefinita abilita l'auto-calibrazione e la pulizia del "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"
        }
      }
      
      azioni:  [CALIBRA, PULISCI]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

Un esempio più avanzato fornisce controllo manuale degli intervalli min/max e incorpora attributi aggiuntivi.

{% 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
        }]
      }
      azioni:  [CALIBRA, PULISCI]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

{% hint style="info" %}
Per seguire il protocollo USDA per l' `PULISCI` operazione, è necessario menzionare TUTTE le colonne in `cleanAction` -> `conditionMinMaxClean` o specificare una parte di esse in `cleanAction` -> `conditionMinMaxClean` e le restanti in `condtionAutoClean` -> `excludedAttributes`.
{% endhint %}

Parametri di input:

* `azioni` come array, permettendo di scegliere *le azioni correttive e la loro sequenza* di applicazione; i valori supportati includono `PULISCI` e `CALIBRA`.
* `calibrateAction` come oggetto contenente dettagli di configurazione legati all' `CALIBRA` operazione.&#x20;
  * `calibrationAttributes` come array di attributi che richiedono calibrazione, tipicamente collegati alla colonna Yield.
  * `smoothWindowSize` come un intero dispari che smussa i valori risultanti, riducendo salti bruschi nei valori.
  * `conditionPathwiseCalibration` come oggetto con la **Calibrazione per percorso macchina** la calibrazione corrisponde alle tracce della macchina. Ogni traccia macchina viene processata come una regione individuale ai fini della calibrazione.
    * `calibrationBasis` come stringa che rappresenta l'attributo utilizzato come base per la calibrazione.
    * `maxHomogeneityRegion` come booleano che indica se la regione di massima omogeneità è usata come regione di riferimento per la calibrazione.
    * `syntheticMachinePath` come booleano che indica la simulazione delle rotte della macchina; è utile quando l'attributo di percorso macchina preciso è assente e necessita di essere simulato basandosi su timestamp o attributi simili.
  * `conditionAvgTotalCalibration` come oggetto con la **Calibrazione Media/Totale** la calibrazione si concentra sulla ridistribuzione dei valori degli attributi. Se i pattern geospaziali sono accurati ma le cifre assolute differiscono dai valori reali, questo metodo risulta vantaggioso.
    * `calibrationAttribute` come stringa che rappresenta l'attributo da calibrare.
    * `average` come numero che rappresenta i valori medi dell'attributo; i valori dell'attributo dovrebbero allinearsi a questa media. Deve essere utilizzata una sola opzione alla volta, o `average` o `total`, dovrebbe essere utilizzata una sola opzione alla volta.
    * `total` come numero che rappresenta la somma totale dei valori dell'attributo; l'aggregato di questi valori dovrebbe corrispondere al totale. Deve essere utilizzata una sola opzione alla volta, o `average` o `total`, dovrebbe essere utilizzata una sola opzione alla volta.
  * `conditionMinMaxCalibration` come oggetto con la **Calibrazione Condizionale** la calibrazione regola i valori degli attributi basandosi sulle soglie minime e massime fornite.
    * `calibrationAttribute` come stringa che rappresenta l'attributo da calibrare.
    * `min` come numero che rappresenta i valori minimi dell'attributo, servendo come limite inferiore per la calibrazione.
    * `minIncluded` come booleano che indica se includere o meno il valore minimo
    * `max` come numero che rappresenta i valori massimi dell'attributo, servendo come limite superiore per la calibrazione.
    * `maxIncluded` come booleano che indica se includere o meno il valore massimo.
* `cleanAction` come oggetto che include le specifiche di configurazione legate a `PULISCI` operazione.
  * `conditionAutoClean` come oggetto che include le configurazioni specifiche all'algoritmo di pulizia automatica.
    * `targetAttribute` come stringa che rappresenta i valori di resa target.
    * `excludedAttributes` come array di stringhe che definiscono attributi che non influenzano l'operazione di pulizia.
  * `conditionMinMaxClean` come array di oggetti contenenti le regole di pulizia descritte; ogni oggetto include i seguenti parametri.
    * cleanAttribute come stringa che specifica il nome della colonna per la regola.
    * `min` come numero che indica il valore minimo.
    * `max` come numero che indica il valore massimo.

{% hint style="info" %}
Per visualizzare gli input e accedere ai valori più recenti disponibili delle enumerazioni (come `operazioni`), è consigliato utilizzare [Altair](/geopard-tutorials/it/documentazione-api/introduzione-allapi-geopard.md).
{% endhint %}

### Documentazione: query YieldDataset

Come consumatore dell'API GeoPard, puoi recuperare dettagli riguardanti le correzioni applicate ai YieldDataset tramite gli attributi `appliedCorrections` e `appliedCorrectionsVersion`. Il primo fornisce un elenco delle correzioni effettuate (es., `CALIBRA` e `PULISCI`), con l'ordine di esecuzione indicato dalla loro sequenza nell'array. Nel frattempo, `appliedCorrectionsVersion` indica la versione dell'algoritmo impiegato.

{% 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/it/documentazione-api/panoramica-delle-richieste-api-geopard/84.-mutation-calibra-e-pulisci-yielddataset.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.
