Hi group,

Having programming experience, but new to python. Want to write some piece 
of code, that calculates the amount of precipitation shortage (rain minus 
evaotranspiration). It's a measure of drought.

Using some example coding, and extended those.


See the piece of code below. event.record['barometer'] and 
event.record['outTemp'] is working (used as an example, no drought-relation 
ship); they give real values.

However, event.record['ET'] gives me a KeyError. I dont understand it. It 
is in my wview_extended schema (which I extended), its also populated in my 
database.

Why the KeyError?


import schemas.wview_extended
schema = {
    'table': schemas.wview_extended.table + [('neerslagtekort', 'REAL')],
    'day_summaries' : schemas.wview_extended.day_summaries + 
[('neerslagtekort', 'SCALAR')]
}

import weewx.units
weewx.units.obs_group_dict['neerslagtekort'] = 'group_rain'


neerslag = 0
verdamping = 0
neerslagtekort = 0

class AddElectricity(StdService):

    def __init__(self, engine, config_dict):

      # Initialize my superclass first:
      super(AddElectricity, self).__init__(engine, config_dict)

      # Bind to any new archive record events:
      self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_record)

      self.last_total = None

    def new_archive_record(self, event):


       barometer = event.record['barometer']
       outTemp = event.record['outTemp']
       ET = event.record['ET']
       shortage = precipitation - evaporation

       if self.last_total:
          event.record['neerslagtekort'] = shortage

       self.last_total = shortage
       print("**** NEERSLAGTEKORT **** ")
       print(shortage)



Traceback (most recent call last):
  File "/usr/share/weewx/weewxd", line 261, in <module>
    main()
  File "/usr/share/weewx/weewxd", line 154, in main
    engine.run()
  File "/usr/share/weewx/weewx/engine.py", line 202, in run
    self.dispatchEvent(weewx.Event(weewx.POST_LOOP))
  File "/usr/share/weewx/weewx/engine.py", line 224, in dispatchEvent
    callback(event)
  File "/usr/share/weewx/weewx/engine.py", line 596, in post_loop
    self._software_catchup()
  File "/usr/share/weewx/weewx/engine.py", line 656, in _software_catchup
    self.engine.dispatchEvent(weewx.Event(weewx.NEW_ARCHIVE_RECORD,
  File "/usr/share/weewx/weewx/engine.py", line 224, in dispatchEvent
    callback(event)
  File "/usr/share/weewx/user/electricity.py", line 64, in 
new_archive_record
    ET = event.record['ET']
KeyError: 'ET'


mysql> select from_unixtime(datetime), neerslagtekort,ET,rain from archive 
order by datetime desc limit 5;
+-------------------------+---------------------+--------------------------+------+
| from_unixtime(datetime) | neerslagtekort      | ET                      
 | rain |
+-------------------------+---------------------+--------------------------+------+
| 2020-05-26 23:26:00     | -1.5559202862588535 |  0.000005153290200925555 
|    0 |
| 2020-05-26 23:25:00     |                NULL |  0.000005156477243511403 
|    0 |
| 2020-05-26 23:24:00     |                  20 |  0.000005159745765396156 
|    0 |
| 2020-05-26 23:23:00     |                  20 | 0.0000051629007161015734 
|    0 |
| 2020-05-26 23:22:00     |                NULL |  0.000005165840624070325 
|    0 |
+-------------------------+---------------------+--------------------------+------+
5 rows in set (0.00 sec)


-- 
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/901f6de4-762e-4dae-8604-427b4168b25c%40googlegroups.com.

Reply via email to