Software > WeeWX

SqliteDatabaseBrowser

<< < (2/3) > >>

edlmeteo:
Hola, con este programa puedo generar graficas a partir del archivo weewx.sdb ?

jantoni:
No.

jmsolher:
Hola
recupero este hilo solo para aportar, para aquellos usuarios de Linux, otra forma de modificar la base de datos de forma eficiente. Estaba acostumbrado a DB Browser pero empecé a tener algún que otro problemilla porque a pesar de que editaba con esta herramienta, la base de datos en WeeWX, en ocasiones, no se actualizaba correctamente así que me decidí a investigar una solución con Linux. Seguro que los usuarios avanzados ya la conocerán pero para los que nos estamos iniciando como yo en este SO fue todo un descubrimiento y desde entonces lo uso cada vez que tengo que modificar la base de datos. Os lo cuento a continuación y espero ser lo más claro  posible. ::)
A los admin del foro, si fuera necesario, moved este post a otro hilo que ya pudiera existir relacionado.

EDITAR BASE DE DATOS WEEWX.sdb PARA MODIFICAR UN REGISTRO

Vamos a proceder a eliminar un registro de lluvia debido a que el día 22/07/2021 a las 13:25 el pluviómetro, por error, marcó 0,8 mm de precipitación. Seguimos los siguientes pasos:

- Para realizar este cambio debemos entrar en la terminal y colocarnos en la ruta de la base de datos que, por defecto, es var/lib/weewx en las últimas versiones de WeeWX que es el software que utilizo. Antes de nada paramos WeeWX con sudo /etc/init.d/weewx stop
- Vemos que existe la base de datos como archivo weewx.sdb y sus permisos de escritura gracias al comando ls -la también sirve el comando ls -l
- A continuación invocamos el comando sqlite3 que será con el que manejemos la base de datos. Si no lo tenemos instalado se procederá con el habitual sudo apt install sqlite3
- Una vez dentro del servidor de bases de datos, vamos a seleccionar los registros dateTime, rainRate, rain que coinciden con el período de tiempo comprendido entre dateTime>1626952800 and dateTime<1626953400 and rainRate>0  (entre las 13:20 y 13:30. Para saber la fecha en formato UNIX podemos usar https://www.epochconverter.com/)
- sqlite3 buscará aquellos que satisfacen la orden anterior y vemos, según este ejemplo, que a las 13:25 del 22/07/2021 la estación marcó un registro de 0,79999999512 mm.
- Tenemos que actualizar la base de datos y poner ese registro a cero, es decir, hay que actualizar y que rain y rainRate sean cero. Para realizar esto invocamos el comando update de la siguiente manera: update archive set rainRate=0, rain=0 where dateTime>1626952800 and dateTime<1626953400 and rainRate=0;
- En este paso nos puede dar Error: attempt to write a readonly database, es decir, tenemos que salir con el comando exit y hacer un sudo su para pasar a superusuario y repetir el comando update.
- Una vez realizada la actualización hay que reconstruir la base de datos con el comando sudo wee_database –rebuild-daily –date=2021-07-22.
- No debería dar ningún error y la reconstrucción no tardará más de unos segundos.
- Tras el paso anterior debemos hacer una copia de la base de datos actual por si a futuro tenemos otro problema podamos recomenzar desde este punto. La copia se puede hacer desde la ruta en la que se encuentra con cp -a weewx.sdb weewx.sdb.OLD
- Volveremos a iniciar WeeWX con sudo /etc/init.d/weeewx start y esperaremos a que se realicen los cambios en el próximo ciclo.
- Tras la espera se puede apreciar que ya no hay registro ni de lluvia ni de intensidad de lluvia.

jmviper:
Gracias JosMar por tu aportación.

Todo esto está explicado también por jantoni en este tema del foro aunque está muy bien lo que dices de reconstruir solo ese día, así se queda el diario ya bien.

Como único apunte la base de datos se debe de editar con sudo delante (sudo sqlite3 /var/lib/weewx/weewx.sdb), no con sudo su que tras pedir contraseña dejará a root en la línea de comandos y accidentalmente se puede poner mal algo del sistema que vaya con root.

Saludos

jmsolher:

--- Cita de: jmviper en 25 de Octubre del 2021, 11:53:44 am ---Como único apunte la base de datos se debe de editar con sudo delante (sudo sqlite3 /var/lib/weewx/weewx.sdb), no con sudo su que tras pedir contraseña dejará a root en la línea de comandos y accidentalmente se puede poner mal algo del sistema que vaya con root.

--- Fin de la cita ---
correcto, gracias por la corrección.

saludos.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa