Bueno, pues vamos a explicar como tocar la base de datos de Weewx.
Lo que se explique aquí, vale para cualquiera de los registros: temperatura, viento, precipitación, etc, etc. Solo habrá que modificar la variable correspondiente, y solo es válido para las versiones 3.0 y superiores de Weewx.
Para versiones anteriores de Weewx es todo similar, pero las tablas están en dos bases de datos diferentes, en lugar de estar todas mezcladas en un solo fichero.
Primero explicaremos como funciona la base de datos de Weewx.
La base de datos, heredada de Wview, se compone de una tabla principal, llamada
archive y un montón de tablas auxiliares para cada variable medida. Estas se denominan
archive_day_xxxxxxxx siendo xxxxxxx la variable almacenada.
Para comprobar como está compuesta podemos hacer lo siguiente:
sudo /etc/init.d/weewx stop #Paramos weewx
sqlite3 /var/lib/weewx/weewx.sdb #Abrimos la base de datos
.schema #Nos imprimirá toda la estructura de la base de datos.....abrumador
Bien, cuando corrijamos un error, tendremos que tocar dos tablas.
archive para corregir o eliminar el registro incorrecto y el correspondiente
archive_day_xxxPara muestra, un botón.
Vamos a corregir unos registros incorrectos de precipitación en una de mis estaciones de prueba (La Ventus W831). Como el driver de weewx para esta estación, está un poco locuelo, pues de vez en cuando me salen registros de miles y miles de milímetros de precipitación inexistente.
Así que nos ponemos a corregir estos registros, todos ellos de Agosto y Septiembre de 2015.
La situación anterior es la siguiente:
*VER=DATA2 *COD=ESMAD2800000028522A *UPD=01-11-2015 12:45 *TMP=19.0 *WND=7 *AZI=134 *BAR=1017.9 *HUM=48 *SUN= N/A *UVI= N/A *DHTM=19.5 *DLTM=13.1 *DHHM=80 *DLHM=47 *DHBR=1020.8 *DLBR=1017.9 *DGST=25 *DSUN= N/A *DHUV= N/A *DPCP=0.0 *WRUN= *MHTM=19.5 *MLTM=13.1 *MHHM=80 *MLHM=47 *MHBR=1020.8 *MLBR=1017.9 *MGST=25 *MSUN= N/A *MHUV= N/A *MPCP=0.0 *YHTM=42.1 *YLTM=8.8 *YHHM=93 *YLHM=5 *YHBR=1026.6 *YLBR=1003.3 *YGST=216 *YSUN= N/A *YHUV=90.1 *YPCP=581624.8 *EOT* © jantoni (02/2015)
Vemos como en la plantilla de Meteoclimatic tenemos la escalofriante cantidad de casi 600.000mm. de precipitación en el año.
Si vemos el informe NOAA del mes de Septiembre de 2015, podemos ver....(podíamos, ya que ahora está corregido) lo siguiente:
INFORME CLIMATOLOGICO DEL MES sep 2015
Estacion Ubicada en Rivas-Vaciamadrid
Altitud: 630 meters LAT: 40-21.37 N LONG: 003-31.21 W
TEMPERATURA (C), HUMEDAD (%), PRESION ATMOSFERICA (hPa), LLUVIA (mm) Y VIENTO (km/h)
---TEMPERATURA---- --HUMEDAD-- ---BAROMETRO--- ---VIENTO---
DIA MEDIA MAX. MIN. MAX. MIN. MAXIMA MINIMA VEL. MAXIMA LLUVIA
--- ------------------ ----------- --------------- ------------ ------
01 24,4 34,1 16,5 85 26 1016,4 1014,3 13,4 0,0
02 25,8 34,2 18,7 77 24 1015,1 1012,1 160,9 43101,7
03 24,1 32,2 17,5 61 15 1014,8 1011,9 19,2 0,0
04 22,3 32,2 15,7 66 21 1017,1 1012,8 21,1 0,0
05 21,5 31,7 12,9 68 21 1019,6 1015,9 21,9 0,0
06 23,4 33,7 16,5 66 23 1020,8 1018,7 13,8 0,0
07 22,0 30,9 17,1 71 29 1020,3 1017,4 16,1 0,0
08 22,9 33,4 14,3 78 15 1017,8 1014,2 144,8 43101,7
09 23,3 33,5 14,3 51 20 1015,7 1013,9 96,6 43101,7
10 25,0 32,9 18,0 54 21 1015,4 1012,6 25,9 0,0
11 N/A N/A N/A N/A N/A 1014,4 1012,9 18,8 0,0
12 22,7 27,4 20,4 46 25 1014,4 1012,2 19,6 86202,1
13 22,0 30,3 17,6 78 13 1013,4 1010,8 33,2 0,0
14 21,0 30,1 14,1 80 23 1014,4 1011,9 21,9 0,0
15 16,8 17,1 16,7 62 60 1008,9 1006,6 8,2 0,0
16 18,5 26,4 14,3 93 48 1006,6 1003,3 41,4 10590,6
17 16,3 24,5 9,9 89 31 1015,9 1006,2 18,3 0,0
18 17,9 28,9 9,3 77 24 1019,3 1015,3 15,6 0,0
19 19,9 31,0 11,7 67 22 1021,4 1019,1 14,2 43085,9
20 20,7 33,4 11,9 68 19 1021,1 1018,4 15,3 0,0
21 22,7 34,6 13,5 54 16 1019,8 1016,2 18,8 0,0
22 22,1 34,2 12,9 56 15 1017,7 1014,1 20,6 0,0
23 19,7 28,7 13,8 58 25 1020,2 1015,9 18,3 86171,8
24 15,8 27,1 12,3 69 27 1020,3 1019,1 13,2 0,0
25
26
27
28
29
30
---------------------------------------------------------------------------------------
21,6 34,6 9,3 93 13 1021,4 1003,3 160,9 355355,4
Pues ya sabemos lo que tenemos que corregir.
Antes de meternos en materia, vamos a ver que herramientas vamos a usar para apoyarnos:
Nos hará falta un conversor de fecha/hora Unix a "humano". Salvo que seas un portento con un cerebro matemático prodigioso, aquí podrás encontrar una ayuda:
http://www.epochconverter.com/Y para recordarnos un poco el lenguaje SQL, ya que lo usamos muy de vez en cuando.
https://www.sqlite.org/lang.htmlDespués de parar Weewx, abrimos la base de datos
sudo sqlite3 /var/lib/weewx/weewx.sdb
Dados los registros que queremos corregir, no nos hace falta convertir, así que vamos a buscar los registros de lluvia de más de 1000 pulgadas (ojo con las unidades)
sqlite> select * from archive where rain>1000;
1442079900|1|5|29.9173065564087|||84.2||28.0||||0.0||714.469482901577|1696.86502189125||||||70.7||||||||||0.0|||||||||1.0||||||||1.0|1.0|1.0|
1442635500|1|5|30.1129651506202|27.9011303736297|30.0703059696404|73.85|54.6309090909091|41.5652173913044|62.0|3.43635509402163|84.8540246362613|3.59999105087981|67.5|5605.14960058196|1696.29527386033|41.8735072594801|52.9290909090909|54.6309090909091|||50.5||||||||||0.0|||||||||1.0||||||||1.0|1.0|1.0|
1442970300|1|5|30.0262057838215|27.8320697212961|29.996909139393|77.8590909090909|60.98|34.8695652173913|48.0|0.24545393528726|231.971424087356|1.39999651978659|247.5|1770.04724228904|1696.29527386033|41.1492757929552|58.9018181818182|60.98|||0.4||||||||||0.0|||||||||1.0||||||||1.0|1.0|1.0|
1443045900|1|5|30.1203434093384|27.9099031723455|30.0796294447874|77.0204545454545|63.14|34.8695652173913|49.2727272727273|0.549998632773304|28.0236290823171|4.79998806783974|22.5|5605.14960058196|1696.29527386033|43.808046375362|61.16|63.14|||50.8||||||||||0.0|||||||||1.0||||||||1.0|1.0|1.0|
sqlite>
Vemos que hay 4 registros que cumplen la condición de búsqueda.
Si queremos ver solo lo que nos interesa que es la fecha/hora y el registro de lluvia, lo indicamos:
sqlite> select dateTime, Rain from archive where rain>1000;
1442079900|1696.86502189125
1442635500|1696.29527386033
1442970300|1696.29527386033
1443045900|1696.29527386033
sqlite>
Más sencillo, ¿verdad?
Ahora borramos esos registros. OJO, OJO, puedo borrar estos registros porque no me dan información adicional que necesite. Lo mejor, hubiera sido poner los registros de lluvia de esos "fecha/hora" a cero. Pero de ese modo explicaba como borrar registros, ya que luego voy a explicar como modificar registros más adelante.
sqlite> delete from archive where Rain>1000;
Y comprobamos que ya no tenemos diluvios universales:
sqlite> select dateTime, Rain from archive where rain>1000;
sqlite>
Cerramos la base de datos con CTRL-D
Pero las estadísticas de precipitación siguen ahí. Para corregirlas, tenemos que tocar la tabla que tiene las estadísticas diarias.
Si volvemos a ver la estructura de la tabla de datos, veremos que la estructura de la tabla de precipitación es la siguiente:
CREATE TABLE archive_day_rain (dateTime INTEGER NOT NULL UNIQUE PRIMARY KEY, min REAL, mintime INTEGER, max REAL, maxtime INTEGER, sum REAL, count INTEGER, wsum REAL, sumtime INTEGER);
Esta estructura se repite en el resto de variables.
Ahora lo que queremos es NO BORRAR LOS REGISTROS, ya que borraríamos el registro del día, sino ponerlo a cero, ya que sabemos que ese día no llovió:
sudo sqlite3 /var/lib/weewx/weewx.sdb
sqlite> update archive_day_rain set min=0, max=0, sum=0, wsum=0 where sum>100;
sqlite>
Ahora arrancamos Weewx como es habitual y esperamos 5-10 minutos para que se rehagan las estadísticas. Antes de iniciar hay que borrar los informes NOAA, ya que Weewx no detecta si tiene que corregirlos. Pero si detecta que no están confeccionados, pues se pone manos a la obra y en la siguiente generación los crea de nuevo.
*VER=DATA2 *COD=ESMAD2800000028522A *UPD=01-11-2015 16:35 *TMP=17,9 *WND=7 *AZI=120 *BAR=1015,9 *HUM=48 *SUN= N/A *UVI= N/A *DHTM=20,3 *DLTM=13,1 *DHHM=80 *DLHM=43 *DHBR=1020,8 *DLBR=1015,9 *DGST=25 *DSUN= N/A *DHUV= N/A *DPCP=0,0 *WRUN= *MHTM=20,3 *MLTM=13,1 *MHHM=80 *MLHM=43 *MHBR=1020,8 *MLBR=1015,9 *MGST=25 *MSUN= N/A *MHUV= N/A *MPCP=0,0 *YHTM=42,1 *YLTM=8,8 *YHHM=93 *YLHM=5 *YHBR=1026,6 *YLBR=1003,3 *YGST=216 *YSUN= N/A *YHUV=90,1 *YPCP=2,6 *EOT* © jantoni (02/2015)
Parece que el diluvio universal se ha terminado.
Ahora volvemos a ver el informe NOAA de septiembre
INFORME CLIMATOLOGICO DEL MES sep 2015
Estacion Ubicada en Rivas-Vaciamadrid
Altitud: 630 meters LAT: 40-21.37 N LONG: 003-31.21 W
TEMPERATURA (C), HUMEDAD (%), PRESION ATMOSFERICA (hPa), LLUVIA (mm) Y VIENTO (km/h)
---TEMPERATURA---- --HUMEDAD-- ---BAROMETRO--- ---VIENTO---
DIA MEDIA MAX. MIN. MAX. MIN. MAXIMA MINIMA VEL. MAXIMA LLUVIA
--- ------------------ ----------- --------------- ------------ ------
01 24,4 34,1 16,5 85 26 1016,4 1014,3 13,4 0,0
02 25,8 34,2 18,7 77 24 1015,1 1012,1 160,9 0,0
03 24,1 32,2 17,5 61 15 1014,8 1011,9 19,2 0,0
04 22,3 32,2 15,7 66 21 1017,1 1012,8 21,1 0,0
05 21,5 31,7 12,9 68 21 1019,6 1015,9 21,9 0,0
06 23,4 33,7 16,5 66 23 1020,8 1018,7 13,8 0,0
07 22,0 30,9 17,1 71 29 1020,3 1017,4 16,1 0,0
08 22,9 33,4 14,3 78 15 1017,8 1014,2 144,8 0,0
09 23,3 33,5 14,3 51 20 1015,7 1013,9 96,6 0,0
10 25,0 32,9 18,0 54 21 1015,4 1012,6 25,9 0,0
11 N/A N/A N/A N/A N/A 1014,4 1012,9 18,8 0,0
12 22,7 27,4 20,4 46 25 1014,4 1012,2 19,6 0,0
13 22,0 30,3 17,6 78 13 1013,4 1010,8 33,2 0,0
14 21,0 30,1 14,1 80 23 1014,4 1011,9 21,9 0,0
15 16,8 17,1 16,7 62 60 1008,9 1006,6 8,2 0,0
16 18,5 26,4 14,3 93 48 1006,6 1003,3 41,4 0,0
17 16,3 24,5 9,9 89 31 1015,9 1006,2 18,3 0,0
18 17,9 28,9 9,3 77 24 1019,3 1015,3 15,6 0,0
19 19,9 31,0 11,7 67 22 1021,4 1019,1 14,2 0,0
20 20,7 33,4 11,9 68 19 1021,1 1018,4 15,3 0,0
21 22,7 34,6 13,5 54 16 1019,8 1016,2 18,8 0,0
22 22,1 34,2 12,9 56 15 1017,7 1014,1 20,6 0,0
23 19,7 28,7 13,8 58 25 1020,2 1015,9 18,3 0,0
24 15,8 27,1 12,3 69 27 1020,3 1019,1 13,2 0,0
25
26
27
28
29
30
---------------------------------------------------------------------------------------
21,6 34,6 9,3 93 13 1021,4 1003,3 160,9 0,0
Lo que no he conseguido es que se modifiquen los gráficos.....ya lo miraré con detenimiento