RCLIMDEX CON FUNCIONALIDADES EXTRAS DE
CONTROL DE CALIDAD
Manual de Uso, versión 1.0
por Enric Aguilar, Javier Sigró y Manola Brunet, C3. 1 Control de Calidad. Necesidad y Concepto
El Control de Calidad – generalmente referido como QC – supone un paso necesario e imprescindible para el correcto análisis de las series climáticas. Debe realizarse como tarea previa a los procesos de homogeneización y nos permite eliminar errores no sistemáticos, entendiendo como tales aquellos que comprometen la validez de valores puntuales por causas diversas, aunque frecuentemente relacionadas con errores de anotación o
digitalización, o manipulación de las bases de datos. El control de calidad, que consiste en someter a las series a tests estadísticos simples y a inspección visual mediante gráficos específicos, permite también avanzarse a problemas de continuidad u homogeneidad que las mismas puedan presentar.
2 rclimdex_extraQC.r. Origen y desarrollo
rclimdex_extraQC.r (RCEQC, a partir de ahora) es una rutina que corre sobre la plataforma R. Se origina en el software de control de calidad y cálculo de índices de cambio climático desarrollada por Environment Canada para el Expert Team on Climate Change Detection and Indices y representa una modificación de la versión “oficial” de éste. Incluye un conjunto rutinas adicionales (Extra_QC) para un control de calidad más preciso e intensivo preparadas por Enric Aguilar (Centre for Climate Change, C3) y Marc Prohom (Servei Meteorològic de Catalunya).
3 Carga del software y utilización de las rutinas Extra_QC.
El primera paso lo constituirá la carga de la plataforma R. Este paso se realizará de forma distinta en función del sistema operativo en uso. En caso de trabajar con alguna versión de Windows, será necesario hacer doble click sobre el icono de R que aparece en nuestro escritorio tras la instalación de dicha plataforma. En caso de usar alguna variedad de Linux, será necesario abrir un terminal y ejecutar la orden “R”. Dado que una de las ventajas de
trabajar sobre entorno R es que se trata de una herramienta multisistema lo más probable es que esta sea la única diferencia para el usuario relacionada con el OS en uso. La primera – y tan sólo la primera – vez que ejecutemos RCEQC, será necesario instalar un paquete estadístico adicional. Para ello, desde el prompt de R teclearemos
install.packages('tkrplot'). Se
nos ofrecerá seleccionar de una lista un repositorio de R para bajar el paquete extra y – tras escoger uno cercano geográficamente a nosotros – el mismo se instalará en breves instantes. Tras este preliminar, la carga de RCEQC se realizará mediante la escritura en el prompt de R
de la orden source('rclimdex_extraQC.r'). La carga del programa puede realizarse también mediante el menú ofrecidio por la GUI (Graphical User Interface). Tras la carga de RCEQC aparecerá en nuestras pantallas un nuevo GUI, basado en TCL/TK, con el aspecto que aparece en la imagen de la izquierda
4 La ejecución de las funcionalidades del paquete Extra_QC es extremadamente sencilla. Tan solo es necesario presionar con el puntero del ratón el botón “Run extra QC” (segundo por arriba) y utilizar la utilidad de navegación por el árbol de directorios para seleccionar el fichero que contiene nuestros datos originales (“raw data”).
5 El mismo debe estar en el formato internacional-mente conocido como “formato Rclimdex” que responde a las siguientes especificaciones:
- Un registro (fila) por día
- Seis campos (columnas) por registro: año (YYYY), mes (MM), día (DD), precipitación acumulada diaria (en mm, 0.1 para IP), temperatura máxima diaria (ºC, con un valor decimal), temperatura mínima diaria (ºC, con un valor decimal)
- Los campos deben ir delimitados por tabulador (otros delimitadores como espacio o incluso comas son tolerables, pero problemáticos)
- Los valores ausentes deben ser consignados como -99.9 y – si para un registro (día) no existe ninguno de los tres valores (pc, tx, tn) no es necesario incluirlo. Se muestra a continuación un ejemplo de formato válido:
1971 01 02 0.0 31.0 22.6 1971 01 03 0.0 31.5 22.4 1971 01 04 0.0 30.2 23.0 1971 01 05 0.0 27.3 22.5 1971 01 06 14.0 30.5 22.6 1971 01 07 0.0 31.1 24.0 1971 01 08 0.0 31.5 22.3 1971 01 09 0.0 31.5 22.7 1971 01 10 0.0 31.0 23.0 1971 01 11 0.0 29.5 24.4 1971 01 12 0.0 30.5 22.4 1971 01 13 10.0 29.5 22.7 1971 01 14 0.3 28.9 22.7 1971 01 15 2.0 29.0 22.9 1971 01 16 12.5 29.9 22.1 1971 01 18 5.3 -99.9 22.4 1971 01 19 4.5 30.2 22.7 1971 01 20 13.5 29.5 22.0 1971 01 21 0.1 30.4 22.4 1971 01 22 8.1 30.0 22.4 1971 01 23 17.3 28.3 21.4 1971 01 24 12.9 28.5 22.0 1971 01 25 3.0 29.3 21.2 1971 01 26 10.2 29.5 22.0 1971 01 27 44.3 26.6 21.8 1971 01 28 31.9 28.2 21.5 1971 01 29 45.8 27.1 21.5 1971 01 30 8.8 27.2 21.5
6 Una vez cargado el fichero de datos, si RCEQC reconoce el formato adecuado, nos mostrará casi inmediatamente un mensaje de bienvenida. Tras presionar “OK”, y con un retraso inversamente proporcional a las prestaciones de vuestro ordenador, un segundo indicando que el proceso ha finalizado (ver abajo). Tras un nuevo 'OK', pasaremos a inspeccionar el nuevo directorio “extraqc” aparecido en nuestra área de trabajo. En este punto, es necesario
hacer una advertencia. RCEQC ,
durante su ejecución, intentará crear el directorio mencionado. En caso de que no tengamos suficientes permisos para crear un nuevo directorio, el programa se interrumpirá al no poder escribir los resultados. Por ello, es necesario asegurarse que gozamos de permiso de
escritura sobre el directorio de trabajo seleccionado.
7 Tomando como ejemplo la estación miestacion En el directorio extraqc aparecerán los siguientes ficheros:
7.1 Tres ficheros con gráficos
7.1.1 miestacion_boxes.pdf: diagramas box-plot mensuales para el conjunto de la serie, para precipitación por encima de 0 mm; temperatura máxima diaria,
temperatura mínima diaria y DTR (máxima – mínima). Aparecen identificados en forma de círculo aquellos valores que superan el tercer cuartil + 3 veces el rango intercuartílico (5 en precipitación) o los que no alcanzan el primer cuartil – 3 veces el rango intercuartílico (5 en precipitación). Los datos así resaltados representan outliers y su localización concreta – habitualmente evidente precisamente por la su singularidad – puede obtenerse a partir de la inspección del fichero
miestacion_outliers. txt
7.1.2 miestacion_boxseries.pdf: diagramas de caja para las mismas variables, pero graficados como series anuales.
7.1.3 miestacion_rounding.pdf: diagramas de frecuencia de los 10 valores posibles del punto decimal (i.e., x.0. x.1, x.2, … x.9). En precipitación se omiten los valores 0 y permite comprobar si las series están redondeadas.
7.2 Ocho ficheros de texto
7.2.1 miestacion_duplicates.txt: volcado de fechas duplicadas. En caso de que una combinación de año/mes/día aparezca más de una vez, será mostrada en este fichero. 7.2.2 miestacion_outliers.txt: volcado de los valores observados determinados
como outliers segun las especificaciones indicadas para el gráfico 1.
7.2.3 miestacion_tmaxmin.txt: volcado de registros en los que la temperatura máxima es inferior o igual a la mínima.
7.2.4 miestacion_tn_flatline.txt: volcado de valores de temperatura mínima. que participan en rachas de al menos tres valores consecutivos idénticos. Naturalmente, se excluye la precipitación 0.0. En caso de series redondeadas al entero, este test es
de poca utilidad.
7.2.5 miestacion_tx_flatline.txt: análogo al anterior, para temperatura máxima 7.2.6 miestacion_tn_jumps.txt: volcado de diferencias en temperatura mínima en
dos días consecutivos superiores a 20ºC
7.2.7 miestacion_tx_jumps.txt: análogo al anterior, para temperatura máxima. 7.2.8 miestacion_toolarge.txt: volcado de valores considerados excesivamente
elevados (valor absoluto > 50 para tx y tn y 200 mm para precipitación).
Como se puede observar, algunos de los umbrales establecidos so discutibles, aunque justificables por la vocación global del software. No obstante, estos son modificables a petición y en versiones posteriores se pretende facilitar opciones de configuración de los mismos. Debe tenerse en cuenta que la filosofía de este método de QC no es identificar sólo y únicamente errores, sino identificar una gama amplia de valores sospechosos para que – con nuestro conocimiento – decidamos si se tratan de un error o de un valor legítimo, quizás un extremo. Con cada valor identificado debemos decidir:
a) Se trata de un valor correcto: VALIDACIÓN
b) Se trata de un valor incorrecto y puedo sustituirlo (valor correcto es evidente, puedo consultar la ficha original): CORRECCIÓN
c) Se trata de un valor incorrecto, pero no puedo inferir su valor real: SUSTITUCIÓN POR CÓDIGO de VALOR PERDIDO (-99.9)
En cualquier caso, la estadística y la inspección visual, deben ser complementadas con nuestro conocimiento de los rangos de valores posibles en cada estación, con el contraste con valores adyacentes y, muy especialmente, con la comparación
8 EJEMPLO DE TRABAJO CON “miestacion” 8.1 Observación de la información gráfica:
A partir del gráfico anterior podemos observar a simple vista la presencia de diversos problemas:
8.1.1 Existe un valor de precipitación superior a 800 mm, de dudosa veracidad 8.1.2 Observamos numerosos outliers de temperatura máxima y mínima que será
8.1.3 la inspección del gráfico de DTR nos advierte de – además de algunas
oscilaciones diarias excesivamente altas – de la existencia de un valor negativo y, por tanto, incorrecto con toda seguridad.
8.1.4 La gráfica adyacente nos reitera la presencia de los problemas anteriormente mencionados,localizándolos en su año de ocurrencia. También nos muestra que los valores de 1977 son sensiblemente inferiores. Dado que el software computa los cuartiles y valores externos a partir de todas las informaciones disponibles, ello puede ser traza de ausencia de valores (en este caso en el periodo más cálido del año)
8.1.5 Finalmente, el gráfico de redondeo, nos muestra que no existen problemas graves en temperatura, pero si en precipitación, donde la mayor parte de
observaciones > 0 están redondeadas al milímetro. En el caso de la temperatura existe una prevalencia del grado entero y de los decimales pares, aunque no exagerada.
8.2 Inspección de los ficheros de texto. Nos servirá para localizar precisamente aquellos problemas que ya hemos identificado mediante el estudio de los gráficos 8.2.1 Empezamos por observar cuáles de ellos están vacíos, indicando la ausencia
de observaciones que han fallado el test relativo a los mismos. En nuestro ejemplo, no existen ni fechas duplicadas, ni valores interdiarios excesivamente elevados. 8.2.2 Continuaremos por la inspección del fichero de miestacion_tmaxmin.txt. Su
contenido nos indica un valor a corregir, que con toda seguridad se corresponderá con el valor negativo de DTR identificado gráficamente:
1993 1 15 9 21.6 25.2
La inspección de los valores adyacentes nos permite adivinar que en el proceso de digitalización se ha tecleado erróneamente 21.6 en lugar de 31.6:
1993 01 12 0.0 30.8 25.0 1993 01 13 0.0 33.2 25.2 1993 01 14 3.0 33.6 24.7 1993 01 15 9.0 21.6 25.2 1993 01 16 0.0 30.4 26.4 1993 01 17 5.0 31.1 23.9 1993 01 18 35.0 30.0 25.2 1993 01 19 1.0 30.4 24.9
Tanto la inspección del diagrama de caja de máximas como la ulterior del fichero de outliers, nos confirman esta apreciación como correcta. En este punto, es interesante mencionar que normalmente es recomendable correr de nuevo el QC una vez hechas modificaciones sustanciales. No obstante, esta versión mejorada de Rclimdex nos permite ser más permisivos, ya que al trabajar con mediana y rangos intercuartílicos, la presencia de un “gran outlier” no compromete excesivamente la detección de otros.
8.2.3 Continuaremos s el proceso observando el fichero de outliers. El mismo agrupa la información en 7 categorías distintas: pc up (precipitación alta); tx up (máxima alta); tx low (máxima baja); tn up (mínima alta); tn low (mínima baja); tr up (DTR alto); tr low (dtr bajo). Los valores aquí mostrados se corresponden con los círculos del gráfico miestacion_boxes.pdf y deberían ser comprobados uno a uno,a pesar de que la experiencia (y el propio diseño estadístico de los tests) indican que la mayoría de ellos serán validados. Se resaltan en negrita algunos claramente erróneos. pc up 1972 1 8 146 29.5 21.6 7.9 1972 1 14 203 25.5 21.7 3.8 1973 1 19 837 30.6 23.3 7.3 1974 1 14 296.4 26.5 22.2 4.3 1976 1 22 199.8 24 22.1 1.9 1976 1 24 201.1 27.5 20.5 7 1979 1 17 223 28.5 23.1 5.4 1982 1 17 157 27.8 23 4.8 1993 1 29 276 26 22.6 3.4 1993 1 30 153 26.7 22.2 4.5 1997 1 19 197.5 30.2 22.1 8.1 2000 1 22 179 30.4 22.4 8 1981 2 27 181 28.2 23.2 5 1985 2 22 252 28 22 6 1989 2 6 142 26.5 23.3 3.2 1976 3 4 122 27.5 21.6 5.9 1980 3 25 192 29.9 22.6 7.3 1997 3 4 154 29.7 23.2 6.5 1996 4 24 117 30.9 24.5 6.4 1989 5 17 141 30.4 24.2 6.2 1986 9 13 130 30.8 21.2 9.6 1985 10 21 110 31.2 22.6 8.6 2000 11 4 150 30.8 22.7 8.1 1974 12 20 331 30.6 22.7 7.9 1979 12 27 126 30.5 23 7.5 1981 12 26 253 29.6 23.2 6.4
1988 12 17 174 27.8 21.8 6 1991 12 26 138 28.8 23.4 5.4 1995 12 13 125 26.8 23.4 3.4 tx up 1998 1 14 1 35.1 27.4 7.7 1998 1 16 11 35.3 25.4 9.9 1978 2 18 16 34.2 NA NA 1988 2 28 1 34 26 8 1998 2 4 0 34.7 25.2 9.5 1998 2 14 4 34 25.6 8.4 1972 12 7 0 36.9 22.9 14 1972 12 22 0 35.6 25 10.6 1997 12 5 0 35.7 25.7 10 2002 12 19 0 35.6 27.6 8 tx low 1972 1 15 80 24.5 21.7 2.8 1976 1 19 9.8 22.7 22 0.700 1976 1 22 199.8 24 22.1 1.9 1993 1 15 9 21.6 25.2 -3.6 1971 2 11 126 25.9 21 4.9 1982 2 15 70 26 23 3 1989 2 4 28 25.4 22.8 2.6 1989 2 8 1 25.8 23 2.8 1991 2 24 70 25.9 23.4 2.5 1983 5 28 0 28.3 24.4 3.9 1984 5 15 0 27 22 5 2002 5 10 -1 28.2 25.6 2.6 1971 6 21 42.6 27.5 20.4 7.1 1978 6 8 0 26.2 NA NA 1993 6 9 19 27.6 24.6 3 1996 6 10 5 28.1 24.6 3.5 2000 6 19 11 28 23.1 4.9 1978 7 12 41 27 NA NA 1989 7 19 9 28.2 24 4.2 1998 7 28 29 27 24.4 2.6 1997 9 11 0 26 22 4 1984 12 13 73 25.8 23.4 2.4 tn up tn low 1976 9 13 0 33.5 15 18.5 1976 9 14 0 34.5 16.3 18.2 1982 9 2 0 34.2 16.8 17.4 1976 10 8 0 31.3 18 13.3 1972 12 29 0 31.2 16.2 15 tr up 1972 3 25 2 35 22.3 12.7 1972 12 7 0 36.9 22.9 14 1972 12 29 0 31.2 16.2 15 tr low 1993 1 15 9 21.6 25.2 -3.6
8.2.4 La inspección de los ficheros “flatline” nos llevará a intentar identificar rachas excesivamente largas de valores iguales. En ocasiones, esto puede llamar nuestra atención sobre el posible relleno con la media de la serie de valores ausentes o de problemáticas similares. Reproducimos el volcado correspondiente a la temperatura mínima. En el se muestra la localización del valor (año, mes, día), el valor y el número de veces que aparece repetido. En función de este último y – sobre todo – de nuestro conocimiento sobre la variabilidad interdiaria del clima, debemos actuar. 1973 5 19 23.5 4 1974 2 5 23 3 1975 12 29 22.5 3 1980 3 5 24 3 1983 5 5 24.4 3 1983 9 22 23.2 3 1987 12 9 24.8 3 1989 6 9 24.8 3 1991 9 3 25 3 1997 9 25 22 3
8.2.5 El fichero miestación_toolarge.txt nos nos muestra el siguiente contenido: 1971 11 30 -1 31 23.3 1972 1 14 203 25.5 21.7 1973 1 19 837 30.6 23.3 1974 1 14 296.4 26.5 22.2 1974 12 20 331 30.6 22.7 1976 1 24 201.1 27.5 20.5 1976 4 8 -1 32 22.5 1976 4 20 -1 32 24 1976 4 21 -1 32.2 22.5 1976 4 30 -1 33 24.2 1977 3 12 -1 30 23.3 1977 3 17 -1 31 24 1977 3 19 -1 30.6 24 1977 4 3 -1 33.8 23.9 1977 5 1 -1 33.5 23.7 1977 6 10 -1 31.4 23.2 1977 6 23 -1 33.3 23.5 1977 7 24 -1 32.9 22.4 1977 8 2 -1 33 19.4 1977 8 3 -1 32.4 20.5 1977 8 25 -1 34.4 21 1977 8 27 -1 34.6 22 1977 9 27 -1 35.4 24.4 1977 9 30 -1 36.6 21.5
1977 10 2 -1 35.8 21.8 1977 10 5 -1 36.3 21.6
Observamos la presencia de valores negativos de precipitación. Los mismos no han aparecido en ninguna de las gráficas ni tests lanzados anteriormente, ya que todos ellos filtran la precipitación > 0 mm para trabajar más cómodamente. Este fichero nos permite detectar este error, en este caso de carácter sistemático, ya que proviene de la utilización como código del valor -1.
Aunque la secuencia aquí presentada es una buena secuencia de trabajo, esta no debe ser tomada como mandatoria ni jerárquica. Los gráficos/ficheros pueden ser inspeccionados en distinto orden o en paralelo, siempre apoyándose en la propia serie de datos. Las
modificaciones que decidamos realizar, deben hacerse sobre una copia del original (i.e. mantener bases de datos separadas para las series originales y las series controladas de
calidad, así como posteriormente para las series ajustadas). Siempre, tras finalizar un proceso de QC es recomendable ejecutar de nuevo RCEQC para cerciorarnos de que los resultados son satisfactorios.