Software > WeeWX
Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
jmviper:
weewx pone NULL cuando no pone ningún valor en la base de datos. NULL es estar vacío pero no a 0. Ese NULL lo pone en la dirección de la media o de la racha de la tabla archive cuando la media o la racha son 0.0 (km/h)
Si lo que tienes es dirección constante 360º con viento puedes poner esas direcciones a NULL pero tienes que hacerlo sabiendo exactamente las fechas en las que estaba mal la veleta.
Primero detén weewx antes y haz copia de la BBDD antes de ningún toqueteo en ella.
Abrir con sudo sqlite3 /var/lib/weewx/weewx.sdb
Y en la línea de comandos de sqlite3 pones:
--- Código: ---select windDir,windGustDir from archive where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;
--- Fin del código ---
Cambiando fechadeiniciounix y fechadefinalizacionunix por las fechas unix desde las que tuviste estropeada la dirección.
Ahí te saldrán muchas líneas seguramente con 360|360 o valor equivalente que indique dirección norte (0º ??)
para ponerlas a NULL:
--- Código: ---update archive set windDir=NULL,windGustDir=NULL where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;
--- Fin del código ---
Una vez puestas a NULL puedes consultar otra vez si se han quedado a NULL con el primer comando.
Sal de la BBDD (.exit) y ya puedes usar las utilidades de weewx.
Sin arrancar todavía weewx usa este comando en la línea de comandos de Linux:
--- Código: ---sudo wee_database --rebuild-daily --from=YYYY-mm-dd --to=YYYY-mm-dd
--- Fin del código ---
poniendo las fechas de inicio y de final en --from y en --to en ese formato para reconstruir las tablas diarias con los nuevos datos de viento.
Para regenerar los informes NOAA si pertenecen al pasado mes borra el mes de /var/www/html/weewx/NOAA y te lo generará.
Quizás te sea más fácil ver visualmente desde cuando están mal las direcciones con DB Browser
Puedes cambiarlas ahí directamente a NULL o como te he dicho con la línea de comandos.
Eso sí, como he dicho haz copia de la BBDD antes por si sale algo mal.
ogalvan:
Vale, parece sencillo y muy bien explicado, se agradece un montón. Con tranquilidad un rato de estos me pongo a ello.
Entiendo que el Archive_day_windGustDir y Archive_day_windDir al hacer el "Rebuild-daily" se apaña solo ¿no?
Las veces que he tocado la base de datos siempre ha sido con el DB Browser (es más visual); y en el caso de la lluvia, iba a Archive y a Archive_day_rain a borrar los registros manualmente. En este caso como ya son 15 días aproximadamente serán muchos registros para hacerlo a mano, así que usaré el método que has explicado.
Una ultima duda, referente a la lluvia; en "Archive" ¿tambien se debería borrar los registros de la columna "rainRATE" ? , para cuando marca una falsa descarga del balancín al manipular el pluviómetro y borro los registros manualmente con DB Browser (rain, max, sum y wsum).
Gracias de nuevo
--- Cita de: jmviper en 02 de Agosto de 2021, 16:56:48 ---weewx pone NULL cuando no pone ningún valor en la base de datos. NULL es estar vacío pero no a 0. Ese NULL lo pone en la dirección de la media o de la racha de la tabla archive cuando la media o la racha son 0.0 (km/h)
Si lo que tienes es dirección constante 360º con viento puedes poner esas direcciones a NULL pero tienes que hacerlo sabiendo exactamente las fechas en las que estaba mal la veleta.
Primero detén weewx antes y haz copia de la BBDD antes de ningún toqueteo en ella.
Abrir con sudo sqlite3 /var/lib/weewx/weewx.sdb
Y en la línea de comandos de sqlite3 pones:
--- Código: ---select windDir,windGustDir from archive where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;
--- Fin del código ---
Cambiando fechadeiniciounix y fechadefinalizacionunix por las fechas unix desde las que tuviste estropeada la dirección.
Ahí te saldrán muchas líneas seguramente con 360|360 o valor equivalente que indique dirección norte (0º ??)
para ponerlas a NULL:
--- Código: ---update archive set windDir=NULL,windGustDir=NULL where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;
--- Fin del código ---
Una vez puestas a NULL puedes consultar otra vez si se han quedado a NULL con el primer comando.
Sal de la BBDD (.exit) y ya puedes usar las utilidades de weewx.
Sin arrancar todavía weewx usa este comando en la línea de comandos de Linux:
--- Código: ---sudo wee_database --rebuild-daily --from=YYYY-mm-dd --to=YYYY-mm-dd
--- Fin del código ---
poniendo las fechas de inicio y de final en --from y en --to en ese formato para reconstruir las tablas diarias con los nuevos datos de viento.
Para regenerar los informes NOAA si pertenecen al pasado mes borra el mes de /var/www/html/weewx/NOAA y te lo generará.
Quizás te sea más fácil ver visualmente desde cuando están mal las direcciones con DB Browser
Puedes cambiarlas ahí directamente a NULL o como te he dicho con la línea de comandos.
Eso sí, como he dicho haz copia de la BBDD antes por si sale algo mal.
--- Fin de la cita ---
jmviper:
--- Citar ---Entiendo que el Archive_day_windGustDir y Archive_day_windDir al hacer el "Rebuild-daily" se apaña solo ¿no?
--- Fin de la cita ---
Sí, debería.
--- Citar ---Una ultima duda, referente a la lluvia; en "Archive" ¿tambien se debería borrar los registros de la columna "rainRATE" ? , para cuando marca una falsa descarga del balancín al manipular el pluviómetro y borro los registros manualmente con DB Browser (rain, max, sum y wsum).
--- Fin de la cita ---
Puedes claro está. Así dejas los dos campos de la lluvia en el archive a 0. Si no ha llovido ese día y has tenido vuelcos por manipulación también puedes poner a 0 esos valores en el diario de lluvia o reconstruirlo a la manera del rebuild-daily, en este caso sería:
--- Código: ---sudo wee_database --rebuild-daily --date=YYYY-mm-dd
--- Fin del código ---
Poniendo la fecha a reconstruir.
jmviper:
Por cierto, se me olvidaba...hacer el rebuild-daily significa reconstruir las tablas diarias a partir de los datos de la tabla archive
Si por ejemplo tienes que se genere cada 5 minutos cada registro de esa tabla puede que esos días no sea exactamente la temperatura máxima o la mínima la que se haya alcanzado...por ejemplo si la temp máxima de un día fue a las 14:53 con 34,5°C y a las 14:50 y 14:55 hay 34,4°C se quedará esa temperatura máxima de 34,4°C en ese día y en los informes.
Todo eso se minimizaría con un registro cada minuto, a costa de una BBDD más grande.
Cuando los reconstruyas mira a ver la BBDD que tienes de copia a ver si tiene esas máx/mín en cada tabla diaria y si no actualízalas en la tabla actual.
ogalvan:
El registro lo tengo que se genera cada 5 minutos.
La verdad que para mis conocimientos, se me empieza a complicar la cosa.
Sopesando que "la media dominante de la dirección del viento y dirección del viento" no es tan importante (al menos eso creo, por unos días de error), como los datos que sí están correctos (velocidad del viento, temperaturas, pluviometria, etc).... creo que voy a optar por dejar todo como está.
Considero más importante las máximas, mínimas de temperatura que las muestre bien que el tema de la dirección del viento.
Al menos voy aprendiendo, poquito a poquito esto de la base de datos y su estructura.
--- Cita de: jmviper en 03 de Agosto de 2021, 00:28:54 ---Por cierto, se me olvidaba...hacer el rebuild-daily significa reconstruir las tablas diarias a partir de los datos de la tabla archive
Si por ejemplo tienes que se genere cada 5 minutos cada registro de esa tabla puede que esos días no sea exactamente la temperatura máxima o la mínima la que se haya alcanzado...por ejemplo si la temp máxima de un día fue a las 14:53 con 34,5°C y a las 14:50 y 14:55 hay 34,4°C se quedará esa temperatura máxima de 34,4°C en ese día y en los informes.
Todo eso se minimizaría con un registro cada minuto, a costa de una BBDD más grande.
Cuando los reconstruyas mira a ver la BBDD que tienes de copia a ver si tiene esas máx/mín en cada tabla diaria y si no actualízalas en la tabla actual.
--- Fin de la cita ---
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa