Adjust precision of particular values
authorAlexander Vasarab <alexander@wylark.com>
Thu, 19 Nov 2020 00:43:19 +0000 (16:43 -0800)
committerAlexander Vasarab <alexander@wylark.com>
Thu, 19 Nov 2020 00:43:19 +0000 (16:43 -0800)
Upon on-boarding a new subscriber, it was found that InfoEx would
color certain fields in the browser red (indicating invalid data) if too
much precision was present when pre-filling a subscriber's Wx form.

infoex-autowx.py

index c5ec48d04637ac2610ab7607f2620cf1cfe260b2..6045991d1755f28c862056a6e71583722f095c22 100755 (executable)
@@ -218,6 +218,20 @@ def main():
             LOG.warning("BAD KEY wx_data['%s']", element_cd)
             continue
 
+        # Massage precision of certain values to fit InfoEx's
+        # expectations
+        #
+        # 0 decimal places: wind speed, wind direction, wind gust, snow depth
+        # 1 decimal place:  air temp, baro
+        # Avoid transforming None values
+        if infoex['wx_data'][element_cd] is None:
+            continue
+        elif element_cd in ['wind_speed', 'WSPD', 'wind_direction',
+                            'WDIR', 'wind_gust', 'SNWD', 'snow_depth']:
+            infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd])
+        elif element_cd in ['TOBS', 'air_temp', 'PRES', 'pressure']:
+            infoex['wx_data'][element_cd] = round(infoex['wx_data'][element_cd], 1)
+
         # CONSIDER: Casting every value to Float() -- need to investigate if
         #           any possible elementCds we may want are any other data
         #           type than float.