# 84. Mutación: Calibrar y limpiar YieldDataset

Calibrar el "YieldDataset" es una funcionalidad que corrige la distribución de valores en alineación con principios matemáticos, mejorando la integridad general de los datos. Refuerza la calidad de la toma de decisiones y convierte el conjunto de datos en algo valioso para análisis más profundos.

Casos de uso comunes para esta funcionalidad incluyen:

* Sincronizar datos cuando múltiples cosechadoras han trabajado ya sea simultáneamente o durante varios días, asegurando consistencia.
* Hacer que el conjunto de datos sea más homogéneo y preciso suavizando las variaciones.
* Eliminar ruido de datos e información extránea que puede enturbiar los conocimientos.
* Eliminar giros de vuelta o geometrías anormales, que pueden distorsionar los patrones y tendencias reales en el campo.
* Ajustar los datos de rendimiento para que correspondan con promedios o totales establecidos para cada atributo.

Para una exploración más detallada y ejemplos, por favor consulte nuestro [Caso de uso: Calibración y Limpieza de Rendimiento](/geopard-tutorials/esp/agronomia/calibracion-y-limpieza-de-rendimiento.md) de caso.

### YieldDataset original con el atributo WetMass

Cinco cosechadoras trabajaron en paralelo en el campo de 30 ha mostrado abajo. La calibración de una de las cosechadoras no se sincronizó con las demás, resultando en <mark style="color:naranja;">naranja</mark> puntos, indicando que se requieren más `CALIBRACIÓN` Adicionalmente, hay numerosos giros de vuelta <mark style="color:rojos;">rojos</mark> puntos más cerca de los bordes del "Field" que deben ser eliminados.

<figure><img src="/files/a92c0e8a6c40cd3049121007c6182ce4536ca9c9" alt=""><figcaption><p>YieldDataset original con el atributo WetMass</p></figcaption></figure>

### YieldDataset calibrado y limpiado con el atributo WetMass

El resultado a continuación muestra el conjunto de datos después de aplicar automáticamente `CALIBRAR` y `LIMPIAR` operaciones usando parámetros por defecto. El "YieldDataset" resultante se ha vuelto homogéneo, sin valores atípicos ni cambios abruptos entre geometrías vecinas.

<figure><img src="/files/0f99cda05aabc855b415b363cd630fece3dc354f" alt=""><figcaption><p>YieldDataset calibrado y limpiado con el atributo WetMass</p></figcaption></figure>

### Opciones Ruta por ruta vs Promedio/Total vs Condicional

**Calibración ruta por ruta** corresponde a las trazas de la máquina. Cada traza de la máquina se procesa como una región individual con fines de calibración. El equipo de GeoPard sugiere usar este método como el enfoque estándar.

**Calibración Promedio/Total** se centra en redistribuir los valores de los atributos. Si los patrones geoespaciales son precisos pero las cifras absolutas se desvían de la realidad, este método resulta beneficioso. Para resultados óptimos, GeoPard recomienda combinarlo con la calibración ruta por ruta: aplicar primero Ruta por ruta y luego ajustar a los valores conocidos de Promedio/Total.

**Calibración condicional** ajusta los valores de los atributos basándose en umbrales mínimos y máximos proporcionados. Este método es especialmente valioso cuando los patrones geoespaciales son precisos, pero la distribución de valores requiere ajustes, particularmente cuando existen valores mínimos y máximos conocidos. Para los mejores resultados, GeoPard recomienda emparejarlo con la calibración ruta por ruta: comenzar con Ruta por ruta y luego ajustar para alinearse con los valores mínimos y máximos conocidos.

### Consejos

{% hint style="warning" %}
**Consejo para anomalías de datos**

Si un usuario encuentra anomalías en los datos, como valores en o cerca de cero, o valores inusualmente grandes (por ejemplo, un promedio de 10 con un máximo de 8000), se aconseja el **flujo de trabajo Limpieza y Calibración** Se configura usando los parámetros `acciones: [LIMPIAR, CALIBRAR]`.&#x20;

Priorizar la Limpieza de datos antes de la Calibración asegura la eliminación de errores, valores faltantes o inconsistencias, mejorando así la calidad y precisión de los datos.
{% endhint %}

{% hint style="warning" %}
**Consejo para datos sin errores iniciales**&#x20;

Para conjuntos de datos inicialmente libres de errores, valores faltantes o inconsistencias, y cuando se sabe que participaron múltiples cosechadoras, considere el **flujo de trabajo Calibración y Limpieza** Se configura usando los parámetros `acciones:  [CALIBRAR, LIMPIAR]`.

Limpiar los datos después de la calibración ayuda a refinar aún más el conjunto de datos al eliminar potencialmente artefactos introducidos durante la calibración.
{% endhint %}

### Documentación: Detalles de la mutación

La configuración estándar por defecto habilita la autocilibración y limpieza 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"
        }
      }
      
      acciones:  [CALIBRAR, LIMPIAR]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

Una muestra más avanzada proporciona control manual de los rangos mínimo/máximo e incorpora atributos adicionales.

{% 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
        }]
      }
      acciones:  [CALIBRAR, LIMPIAR]
    }
  }) {
    uuid
    fieldUuid
    originalUuid
    statusCode
    statusMessage
  }
}
```

{% endcode %}

{% hint style="info" %}
Para seguir el protocolo del USDA para la `LIMPIAR` operación, debe mencionar TODAS las columnas en la `cleanAction` -> `conditionMinMaxClean` o especificar una parte de ellas en `cleanAction` -> `conditionMinMaxClean` y las restantes en `condtionAutoClean` -> `excludedAttributes`.
{% endhint %}

Parámetros de entrada:

* `acciones` como un arreglo, permitiéndole elegir *las acciones correctivas y su secuencia* de aplicación; los valores soportados incluyen `LIMPIAR` y `CALIBRAR`.
* `calibrateAction` como un objeto que contiene detalles de configuración relacionados con la `CALIBRAR` operación.&#x20;
  * `calibrationAttributes` como un arreglo de atributos que requieren calibración, típicamente vinculados a la columna Yield.
  * `smoothWindowSize` como un entero impar que suaviza los valores resultantes, reduciendo saltos abruptos en los valores.
  * `conditionPathwiseCalibration` como un objeto con la **Ruta por ruta** la calibración corresponde a las trazas de la máquina. Cada traza de la máquina se procesa como una región individual con fines de calibración.
    * `calibrationBasis` como una cadena que representa el atributo usado como base para la calibración.
    * `maxHomogeneityRegion` como un booleano que indica si la región de máxima homogeneidad se usa como la región de referencia para la calibración.
    * `syntheticMachinePath` como un booleano que indica la simulación de las rutas de la máquina; es beneficioso cuando el atributo de la ruta precisa de la máquina está ausente y necesita simularse a partir de marcas temporales u otro atributo similar.
  * `conditionAvgTotalCalibration` como un objeto con la **Promedio/Total** la calibración se centra en redistribuir los valores de los atributos. Si los patrones geoespaciales son precisos pero las cifras absolutas se desvían de la realidad, este método resulta beneficioso.
    * `calibrationAttribute` como una cadena que representa el atributo que se va a calibrar.
    * `average` como un número que representa los valores promedio del atributo; los valores del atributo deben alinearse con este promedio. Sólo una opción, ya sea `average` o `total`, debe utilizarse a la vez.
    * `total` como un número que representa la suma total de los valores del atributo; el agregado de estos valores debe coincidir con el total. Sólo una opción, ya sea `average` o `total`, debe utilizarse a la vez.
  * `conditionMinMaxCalibration` como un objeto con la **Condicional** la calibración ajusta los valores de los atributos basándose en los umbrales mínimos y máximos proporcionados.
    * `calibrationAttribute` como una cadena que representa el atributo que se va a calibrar.
    * `min` como un número que representa los valores mínimos del atributo, sirviendo como el rango más bajo para la calibración.
    * `minIncluded` como un booleano que indica si incluir o no el valor mínimo
    * `max` como un número que representa los valores máximos del atributo, sirviendo como el rango más alto para la calibración.
    * `maxIncluded` como un booleano que indica si incluir o no el valor máximo.
* `cleanAction` como un objeto que incluye las especificaciones de configuración vinculadas a la `LIMPIAR` operación.
  * `conditionAutoClean` como un objeto que incluye las configuraciones específicas del algoritmo de limpieza automática.
    * `targetAttribute` como una cadena que representa los valores objetivo de Yield.
    * `excludedAttributes` como un arreglo de cadenas que definen atributos que no influyen en la operación de limpieza.
  * `conditionMinMaxClean` como un arreglo de objetos que contienen las reglas de limpieza descritas; cada objeto incluye los siguientes parámetros.
    * cleanAttribute como una cadena que especifica el nombre de la columna para la regla.
    * `min` como un número que indica el valor mínimo.
    * `max` como un número que indica el valor máximo.

{% hint style="info" %}
Para ver las entradas y acceder a los valores disponibles más recientes de enumeraciones (como `operaciones`), se recomienda utilizar [Altair](/geopard-tutorials/esp/documentacion-de-la-api/primeros-pasos-con-la-api-de-geopard.md).
{% endhint %}

### Documentación: consulta YieldDataset

Como consumidor de la API de GeoPard, puede recuperar detalles sobre las correcciones aplicadas a YieldDatasets a través de los atributos `appliedCorrections` y `appliedCorrectionsVersion`. El primero proporciona una lista de correcciones realizadas (por ejemplo, `CALIBRAR` y `LIMPIAR`), con el orden de ejecución denotado por su secuencia en el arreglo. Mientras tanto, `appliedCorrectionsVersion` indica la versión del algoritmo empleado.

{% 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/esp/documentacion-de-la-api/resumen-de-solicitudes-de-la-api-de-geopard/84.-mutacion-calibrar-y-limpiar-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.
