Autor Tema: Toqueteo de la base de datos - Errores, inconsistencias, añadir registros  (Leído 32803 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #30 en: 17 de Mayo del 2021, 10:48:12 am »
Hola PacoJavi

Da igual mayúsculas o minúsculas, el problema es que has dado una orden sin cerrarla con punto y coma, así que tendrías que haber puesto select * from archive where rain>0;
De todas formas en lo que te ha salido la línea con ...> indica que no está cerrada la orden y que espera que se la sigas poniendo, así que si ahí le pones el punto y coma y le das a Enter termina la orden y te saca el resultado.

La orden queda mejor así:

select datetime,rain from archive where rain>0;

Eso te sacará la fecha (Unix) y los registros de lluvias superiores a 0. Para ponerlos a 0 tendrás que poner el intervalo en el que quieras que los ponga:

update archive set rain=0.0 where dateTime>fechaunix and dateTime<fechaunix;

fechaunix serán las fechas en hora unix entre las que quieras que la ponga a 0.

También tendrás que poner a 0 el archive_day_rain:

select dateTime,sum from archive_day_rain where sum>0;

y corregir con:

update archive_day_rain set sum=0.0 where dateTime=fechaunix;

también puedes hacerlo con el resto de valores (intensidad de lluvia etc). Para ver los campos que hay ejecuta .schema archive y .schema archive_day_rain (observa que para esas órdenes no hace falta terminar en punto y coma).

Haz copia de BBDD antes por si algo sale mal.

También puede editar de una manera más cómoda con una GUI o interfaz gráfica por ejemplo con DB Browser for SQLite

Lo instalas con sudo apt install sqlitebrowser





Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado PacoJavi

  • Full Member
  • ***
  • Mensajes: 161
    • Ver Perfil
  • Estación: La Nava de Jadraque - ESCLM1900000019238A Palancares - ESCLM1900000019225A Valverde de los Arroyos - ESCLM1900000019224A Tamajón - ESCLM1900000019222A Semillas - ESCLM1900000019237A Majaelrayo - ESCLM1900000019223B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #31 en: 17 de Mayo del 2021, 12:53:22 pm »
No hay signo de puntuación al azar en estas cosas  :;

Ya lo he apañado, muchas gracias jmviper  :) :)

El SqliteBrowser lo uso mucho para las otras estaciones que tienen bases de datos bastante extensas ya. Para esta nueva me he atrevido con las instrucciones de Jantoni directamente: es mucho más rápido y no necesitas andar con la base de datos de la raspberry a un pc y viceversa, consumiendo megas de internet.

Aprender de estas cosas nunca está de más.

Un saludo.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #32 en: 17 de Mayo del 2021, 15:09:00 pm »

No hay signo de puntuación al azar en estas cosas  :;


No, la mayoría de lenguajes de programación son poco permisivos con los errores de sintaxis. Sólo conozco a JavaScript que le da igual que cierres las líneas con punto y coma o no... lo que importa es el salto de línea.

Y sí... en remoto es bueno enseñarse a manejar la consola. Lo bueno es que se quedarán en el buffer las últimas órdenes y con la tecla de flecha arriba en el teclado podrás ir recuperando las órdenes antiguas cuando estés metido en la consola de sqlite3. Yo lo uso por ejemplo para corregir precipitación y no tener que estar tecleando los comandos nuevamente... cambio fecha unix y cantidad de lluvia por las correspondientes y ya está.

Saludos


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado ogalvan

  • Newbie
  • *
  • Mensajes: 42
    • Ver Perfil
  • Estación: Parque Oriente Zaragoza ESARA5000000050014C
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #33 en: 02 de Agosto del 2021, 13:17:33 pm »
Buenos días

¿Alguien tiene experiencia tocando la base de datos para corregir los datos de “dirección del viento” ?
El caso es que se me estropeó la veleta y los registros han marcado siempre dirección norte durante 15 días del mes de julio.

Tengo experiencia borrando algún registro de lluvia que accidentalmente se ha marcado al hacer limpieza del pluviómetro; respecto a la dirección del viento no me queda muy claro ya que hace medias de la dirección mensuales y tal.

Gracias

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.703
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #34 en: 02 de Agosto del 2021, 15:19:04 pm »
Ummmmm

Si tuviste estropeada la veleta….entonces ¿qué vas a tocar? ¿Qué dirección del viento vas a poner si la veleta estaba estropeada?


Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #35 en: 02 de Agosto del 2021, 16:56:48 pm »
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: [Seleccionar]
select windDir,windGustDir from archive where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;

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: [Seleccionar]
update archive set windDir=NULL,windGustDir=NULL where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;

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: [Seleccionar]
sudo wee_database --rebuild-daily --from=YYYY-mm-dd --to=YYYY-mm-dd
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.



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado ogalvan

  • Newbie
  • *
  • Mensajes: 42
    • Ver Perfil
  • Estación: Parque Oriente Zaragoza ESARA5000000050014C
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #36 en: 02 de Agosto del 2021, 17:43:51 pm »
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




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: [Seleccionar]
select windDir,windGustDir from archive where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;

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: [Seleccionar]
update archive set windDir=NULL,windGustDir=NULL where dateTime>fechadeiniciounix and dateTime<fechadefinalizacionunix;

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: [Seleccionar]
sudo wee_database --rebuild-daily --from=YYYY-mm-dd --to=YYYY-mm-dd
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.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #37 en: 02 de Agosto del 2021, 20:08:55 pm »
Citar
Entiendo que el Archive_day_windGustDir y Archive_day_windDir al hacer el "Rebuild-daily" se apaña solo ¿no?

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).

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: [Seleccionar]
sudo wee_database --rebuild-daily --date=YYYY-mm-dd
Poniendo la fecha a reconstruir.


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #38 en: 03 de Agosto del 2021, 00:28:54 am »
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.



Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es

Desconectado ogalvan

  • Newbie
  • *
  • Mensajes: 42
    • Ver Perfil
  • Estación: Parque Oriente Zaragoza ESARA5000000050014C
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #39 en: 03 de Agosto del 2021, 12:35:25 pm »
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.


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.

Desconectado PacoJavi

  • Full Member
  • ***
  • Mensajes: 161
    • Ver Perfil
  • Estación: La Nava de Jadraque - ESCLM1900000019238A Palancares - ESCLM1900000019225A Valverde de los Arroyos - ESCLM1900000019224A Tamajón - ESCLM1900000019222A Semillas - ESCLM1900000019237A Majaelrayo - ESCLM1900000019223B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #40 en: 03 de Agosto del 2021, 12:43:29 pm »
Disculpad el off-topic, pero eso de que "la dirección del viento es menos importante"... Que se lo digan a un malagueño o a un vasco  *+*

Desconectado jantoni

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 5.703
    • Ver Perfil
  • Estación: ESMAD2800000028522A
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #41 en: 03 de Agosto del 2021, 13:15:53 pm »
Pero insisto, si tú veleta se averió…..¿qué dirección de viento vas a poner? ¿La de un vecino?

Si no registró dirección. Pues así se queda. Si se atascó, pues con la que se quedó fijada.

Lo contrario es falsear datos.

Es que es rizar el rizo. Una cosa es corregir algún error puntual, eliminando un dato, y otra es reconstruir un dato que se forma de muchas muestras.

No se cual es la intención.

Davis Vantage Vue (sin datalogger) + Orange Pi PC + Weewx

GW2000 + WS90 con Weewx (https://www.ecowitt.net/home/index?id=199315)
WH2650 con WH65 con Home Assistant y Weewx (https://www.ecowitt.net/home/index?id=40387)
GW1000 con WH32 y Home Assistant (https://www.ecowitt.net/home/index?id=17080)
Sensores adicionales: WH31 (3) + WH41

Desconectado ogalvan

  • Newbie
  • *
  • Mensajes: 42
    • Ver Perfil
  • Estación: Parque Oriente Zaragoza ESARA5000000050014C
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #42 en: 03 de Agosto del 2021, 14:05:39 pm »
La intención era pone NULL , que no registró ningún valor.
Ya que al registrar siempre 0° (N) las dominantes y medias de dirección del viento son erróneas.
NO voy a poner datos inventados.

Pero en eso te doy la razón, intentando ser pulcro con los datos al máximo, la puedo liar y opto por dejarlo como está.

Saludos
« Última modificación: 03 de Agosto del 2021, 14:07:43 pm por ogalvan »

Desconectado ogalvan

  • Newbie
  • *
  • Mensajes: 42
    • Ver Perfil
  • Estación: Parque Oriente Zaragoza ESARA5000000050014C
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #43 en: 03 de Agosto del 2021, 14:06:57 pm »
Disculpad el off-topic, pero eso de que "la dirección del viento es menos importante"... Que se lo digan a un malagueño o a un vasco  *+*

Bueno; ya dependerá de zonas 😅, aquí principalmente es el típico Cierzo el dominante.

Desconectado jmviper

  • Investigación
  • Hero Member
  • ******
  • Mensajes: 4.576
  • "Vortex Complex"
    • Ver Perfil
    • www.meteoarchena.es
  • Estación: Archena - ESMUR3000000030600B
Re:Toqueteo de la base de datos - Errores, inconsistencias, añadir registros
« Respuesta #44 en: 03 de Agosto del 2021, 17:06:17 pm »
La intención era pone NULL , que no registró ningún valor.
Ya que al registrar siempre 0° (N) las dominantes y medias de dirección del viento son erróneas.
NO voy a poner datos inventados.

Pero en eso te doy la razón, intentando ser pulcro con los datos al máximo, la puedo liar y opto por dejarlo como está.

Saludos

Exactamente esa era también mi intención al darte esa opción... NO falsear datos... si pones a NULL los valores erróneos no se deja ningún dato inventado.

Es igual que si se queda la HR fija en el 20% durante días por avería del sensor, dejamos ese 20% que es erróneo para que nos haga el mes de HR más baja del historial de la estación en los NOAA ?? La respuesta es NO y más teniendo las utilidades y opciones de weewx con la BBDD. Ponemos esos valores a NULL y no entraran en los cálculos que sí serían erróneos. Lo mismo con la dirección o cualquier otro valor.

Si quieres con DB Browser puedes poner también a NULL las tablas diarias de dirección del viento (todas las columnas menos la de la hora). Las tablas de dirección son como pusiste antes Archive_day_windGustDir y Archive_day_windDir. Esas tablas van por días y si solo han sido unos días no es tan tedioso ponerlas a NULL seleccionándolas y no tienes que reconstruir diarios, solo regenerar informes.

La decisión ya es tuya, como ves hay salidas más o menos elaboradas para todo con weewx.

saludos


Archena, Valle de Ricote (Murcia). 120 msnm. 19.622 hab.
Davis Vantage Pro2 Plus

www.meteoarchena.es