No you've not missed anything, but I have. I thought that rainRate was calculated by wee_database --calc-missing but on looking at the rain rate calculation code I can see that it will never calculate rainRate under wee_database --calc-missing. Let me look at this some more.
Gary On Saturday, 27 August 2022 at 20:35:21 UTC+10 peted...@gmail.com wrote: > Hi Gary, > > Thanks for the quick response. Your answer makes complete sense, but > unfortunately it doesn't seem to work. Even after I have set the rainRate > fields to NULL, wee_database --calc-missing just seems to refill the > rainRate with 0.0. > > I've checked that I have definitely set the rain rate fields to NULL using > the command you suggested above: > > > SELECT dateTime,datetime(dateTime, > 'unixepoch','localtime'),rain,rainRate FROM archive > WHERE dateTime>=1661385600; > 1661405100|2022-08-25 06:25:00|0.016904| > 1661405400|2022-08-25 06:30:00|0.065687| > 1661405700|2022-08-25 06:35:00|0.037562| > 1661406000|2022-08-25 06:40:00|0.185201| > 1661406300|2022-08-25 06:45:00|0.178290| > 1661406600|2022-08-25 06:50:00|0.038078| > 1661406900|2022-08-25 06:55:00|0.075650| > 1661407200|2022-08-25 07:00:00|0.376993| > 1661407500|2022-08-25 07:05:00|1.389899| > 1661407800|2022-08-25 07:10:00|1.569504| > 1661408100|2022-08-25 07:15:00|1.018610| > > But after running wee_database --calc-missing --from=2022-08-25 the > database looks like this > > > SELECT dateTime,datetime(dateTime, > 'unixepoch','localtime'),rain,rainRate FROM archive > WHERE dateTime>=1661385600; > 1661405100|2022-08-25 06:25:00|0.016904|0.0 > 1661405400|2022-08-25 06:30:00|0.065687|0.0 > 1661405700|2022-08-25 06:35:00|0.037562|0.0 > 1661406000|2022-08-25 06:40:00|0.185201|0.0 > 1661406300|2022-08-25 06:45:00|0.178290|0.0 > 1661406600|2022-08-25 06:50:00|0.038078|0.0 > 1661406900|2022-08-25 06:55:00|0.075650|0.0 > 1661407200|2022-08-25 07:00:00|0.376993|0.0 > 1661407500|2022-08-25 07:05:00|1.389899|0.0 > 1661407800|2022-08-25 07:10:00|1.569504|0.0 > 1661408100|2022-08-25 07:15:00|1.018610|0.0 > > Is there something obvious I am missing? > > Pete > > On Friday, 26 August 2022 at 03:40:09 UTC+1 gjr80 wrote: > >> wee_database --calc-missing will only populate missing derived obs >> provided (1) the missing derived obs field contains no data and (2) the >> pre-requisites for the calculation exist. In your case you are failing on >> the first test - your rainRate fields contain the value 0. You can try >> setting the rainRate field to null in each affected record. Assuming you >> are using a SQLite database this is most reliably done using the sqlite3 >> utility. To do this: >> >> 1. using something like Epoch Converter <https://www.epochconverter.com> >> to determine the epoch timestamp for the first and last archive records in >> the block of records you wish to update, let's refer to these values as >> start_timestamp and end_timestamp >> >> 2. install the sqlite3 utility if not already installed: >> $ sudo apt install sqlite3 >> >> 3. stop WeeWX and make a backup of your WeeWX database, unless you have >> changed it this will be /home/weewx/archive/weewx.sdb or >> /var/lib/weewx/weewx.sdb depending on your WeeWX install type >> >> 4. set the rainRate field for the records concerned to null: >> $ sqlite3 /home/weewx/archive/weewx.sdb >> > UPDATE archive SET rainRate=NULL WHERE dateTime>=start_timestamp >> AND dateTime<=end_timestamp; >> >> replacing start_timestamp and end_timestamp with the actual epoch >> timestamps. You can check the data has been cleared with the following >> query: >> > SELECT dateTime,datetime(dateTime, >> 'unixepoch','localtime'),rain,rainRate FROM archive >> WHERE dateTime>=start_timestamp AND dateTime<=end_timestamp; >> >> 5. once happy the rainRate values have been nulled exit sqlite3 with .q >> >> 6. run wee_database --calc-missing to calculate the missing rainRate >> data, use the --date or --from and --to >> <http://weewx.com/docs/utilities.htm#Action_--calc-missing> to limit the >> span of records that wee_database will operate on. >> >> 7. check the if rainRate has been correctly calculated: >> $ sqlite3 /home/weewx/archive/weewx.sdb >> > SELECT dateTime,datetime(dateTime, >> 'unixepoch','localtime'),rain,rainRate FROM archive >> WHERE dateTime>=start_timestamp AND dateTime<=end_timestamp; >> > .q >> >> If you are using MySQL/MariaDB the approach is the same, but you would >> use mysql in lieu of sqlite3. >> >> Gary >> On Friday, 26 August 2022 at 05:50:12 UTC+10 peted...@gmail.com wrote: >> >>> I recently (25/08/2022) had to delete a 6 hour section of data from my >>> database as the rain accumulation data contained in the LOOP packets from >>> that period were incorrect. I refilled the database using the correct rain >>> accumulation data from ARCHIVE packets over that 6 hours, and everything >>> (in terms of the daily summaries etc.) now looks good. The only issue I >>> have though is that there is no rainRate data in my database. Looking at a >>> selection of records I can see rain accumulation, but no rainRate: >>> >>> dateTime |rain |rainRate >>> 2022-08-25 06:15:00|1.018610|0.0 >>> 2022-08-25 06:20:00|0.978673|0.0 >>> 2022-08-25 06:25:00|1.367165|0.0 >>> 2022-08-25 06:30:00|1.710911|0.0 >>> 2022-08-25 06:35:00|1.588113|0.0 >>> 2022-08-25 06:40:00|1.858461|0.0 >>> 2022-08-25 06:45:00|1.654587|0.0 >>> 2022-08-25 06:50:00|1.475450|0.0 >>> 2022-08-25 06:55:00|1.498110|0.0 >>> >>> I have tried using wee_database --calc-missing as I assumed rainRate was >>> a derived value, but this doesn't seem to have made any difference. Can >>> anyone advise how to fill the missing rainRate fields? >>> >> -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/3532b162-f528-46ae-b9d9-8107b3bb8749n%40googlegroups.com.