Control de calidad de datos meteorológicos EJECUCIÓN DE PROCESOS Y SIMPLIFICACIÓN DE RUTINAS El enfoque de ANDESQC, previsto para el control de calidad simultáneo de una red de estaciones, la agilidad del proceso es de vital importancia, como también lo es la reducción del código y para una documentación más simple y su posterior mantenimiento. Por ello, se continuado con la mejora, simplificación y documentación de algunas rutinas que, si bien ya eran funcionales en extraqc.R y en las versiones anteriores de ANDESQC, duplicaban líneas de código, procesos o simplemente no estaban bien documentadas. En la Figura 1 se muestra la rutina jumps, que sustituye a jumps_tx y jumps_tn, puesto que realizaban idéntico proceso sobre dos elementos distintos. Figura 1. Ejemplo de rutina simplificada y documentada. MEJORA DEL CONTROL DE CALIDAD DE PRECIPITACIÓN Dadas las características inherentes a la variable precipitación (distribución no gaussiana, limitada por la izquierda y con claro sesgo positivo; gran variabilidad interdiaria e interanual; rápida decorrelación espacial) su control de calidad es más dificultoso y en ocasiones se reduce a meras representaciones del a información. La versión 3.0 de ANDESQC, añade al test presentado con anterioridad (detección de valores sospechosos de ser acumulados) un tres novedades importantes. Función preclean para sustitución de códigos específicos: es frecuente que muchos bancos de datos incorporen códigos especiales para indicar determinadas circunstancias asociadas con la medida de precipitación. Los más comunes son, sin duda, la marca de traza de precipitación o valor inferior a 0.1 mm y la indicación de valor acumulado. De forma similar a los valores perdidos, esta consigna utiliza valores imposibles de la variable en cuestión (por ejemplo, -1 para indicar traza), los cuales no deben ser leídos como un valor regular ya que inducirían a error o – en el caso de ser alfabéticos – a errores en aquellas rutinas que requieran cómputos matemáticos. Contrariamente a lo que sucede con los valores perdidos, la solución óptima no es siempre determinar la inexistencia del valor y la respuesta adecuada varía caso a caso y en función del banco de datos que se está controlando. Por ejemplo, los valores traza de un banco de datos destinado a ser analizado con RClimdex deben ser igualados a cero, puesto que dicho software no utiliza valores de precipitación inferioes a 1 mm. La rutina preclean permite al usuario indicar aquellos códigos que conoce y el valor por los que desea sustituirlo. Dado que también consigna – de forma vectorial – la columna del elemento al que se refiere, puede ser también utilizado para las variables de temperatura. Función precipouts para detección de outliers de precipitación: esta función ajusta, separadamente a cada mes, una distribución gamma, considerada la más generalizada para describir paramétricamente las distribuciones de precipitación acumulada diaria. No se ha incluido – en la presente versión – la posibilidad de ajustar otras distribuciones y valorar la bondad del ajuste mediante criterios objetivos como el habitual AIC. Entendemos que para la finalidad de este test (etiquetar posibles outliers) el enfoque utilizado es suficiente. Función markovprecip para detección de cadenas improbables de observaciones 0: con el objetivo de monitorizar el relleno de datos ausentes en precipitación con valor 0 (algo que se conoce que ocurre con una cierta frecuencia) se han valorado distintas posibilidades y, finalmente, se ha optado por el la utilización de un modelo de Markov de dos estados y primer orden, que se computa individualmente para cada día juliano utilizando sus propios valores y los de los 5 días adyacentes anteriores y posteriores. Aunque las asunciones de estacionareidad y el orden de la cadena seleccionado puede ser discutible, creemos que la aproximación es suficientemente sólida como para utilizar la matriz transicional combinada con la distribución geométrica de probabilidad para determinar rachas de ceros improbables estadísticamente y etiquetarlas. El quantil de la distribución geométrica a utilizar es configurable por el usuario. INTRODUCCIÓN DEL CONTROL DE CALIDAD ESPACIAL Dada la naturaleza de las series temporales diarias de temperatura y precipitación, la comparación con valores de estaciones adyacentes se demuestra vital para insistir en discernir entre outliers que se corresponden con valores extremos pero legítimos de una estación y aquellos que se producen por distintos errores. Si bien estos contrastes pueden realizarse a través de la inspección visual de valores o mediante contrastes climatográficos, la función que se introduce, spatialouts, se realiza al final del proceso de control de calidad, ya que se apoyará en los valores de los tests anteriores y aborda el problema a través de distintos pasos, realizados por funciones subsidiarias: Generación de una matriz de correlación entre las primeras diferencias de los datos diarios. La primera diferencia se utiliza al objeto de desestacionalizar los valores y evitar las correlaciones ficticiamente elevadas introducidas por el ciclo anual. Cálculo de la distribución empírica de densidad acumulada (ECDF) estratificada por péntadas móviles (es decir, se computa independientemente para cada día juliano incluyendo el mismo día y los dos días adyacentes anteriores y posteriores) Generación de series temporales en las que el valor de cada día es sustituído por el cuantil que representa en la ECDF que le corresponde. Determinación para cada serie de estaciones suficientemente correlacionadas. Si existen al menos tres series que cumplan con la correlación mínima exigida (configurable) se procede a los siguientes pasos. De lo contrario, el QC espacial no puede (ni debe) realizarse. Cómputo de cuantiles de referencia para cada día a partir de las series correlacionadas. Se han explorado tres opciones para este cálculo: ponderación por coeficiente de correlación, diferencia mínima, diferencia mediana. Finalmente se ha optado por la última. Generación de series de diferencia entre los cuantiles de la serie sometida al control de calidad y sus cuantiles de referncia. De superar el límite configurado por el usuario, se determina provisionalmente que se trata de un outlier espacial Se estudia el resto de tests aplicados a las observaciones que han sido marcadas como outliers espaciales provisionales. De haber fallado otro tests, se registra como outlier espacial definitivo. El enfoque utilizado es muy conservador e intenta evitar el etiquetado de un excesivo número de valores. Ofrece una confirmación adicional de que el valor que habíamos identificado previamente con otro test es, efectivamente erróneo. Este razonamiento es el mismo que se ha utilizado en los procesos de control de calidad de Rclimdex y extraqc, aunque las comparaciones se hacían de forma enteramente manual. Sin descartar la necesidad de una decisión experta al final de proceso, la automatización ofrecida por esta función acelera notablemente el proceso de QC. OUTPUT GRÁFICO Y NUMÉRICO DE AYUDA A LA DECISIÓN INTEGRADO EN FICHEROS HTML ANDESQC incluye una rutina que genera automáticamente series en formato RClimdex con aquellos valores que no han pasado el control de calidad convenientemente sustituidos por el código de valor perdido. No obstante, dado que ni este ni muy dificilmente ningún proceso de QC será perfecto, se ofrece una output gráfico integrado en un solo fichero por estación que nos permite, de forma visual, inspecionar los valores etiquedatos. La Figura 2 muestra un ejemplo dela información gráfica que se ofrece en los ficheros de salida en formato html. Para cada período de 5 años, se grafican los datos de la estación en cuestión. Los outliers están identificados en forma de puntos de colores. Los colores están escogidos de forma que aquellas observaciones que han sido tan solo identificadas por un único test aparecen en verde, mientras que las que han fallado más de un control de calidad, y por tanto presentan una mayor probabilidad qualitativa de ser erróneas, se representan progresivamente en amarillo, naranja, rojo y púrpura. Finalmente, aquellos valores detectados en cualquier test y que no han pasado el control de calidad espacial descrito en el apartado anterior, se inscriben en un circulo negro. El output ofrece igualmente los valores involucrados para su inspección. Técnicamente, el fichero se genera en html a través del lenguaje Markdown y su implementación en R R-markdown. Se ha seleccionado este formato por su facilidad y su universalidad, en comparación con otros que también han sido explorados y que quizás permiten un mejor formato del output, como laTeX, pero de mayor complejidad y que requiren la instalación de lectores expresos. Por contra, html puede ser visionado por cualquier navegador a modo de página web en modo local. Figura 2: Output Gráfico de Temperatura Mínima