Add wind_gust to m/s -> mph conversion
[infoex-autowx.git] / infoex-autowx.py
index f285c42ae44de8fee51a9ee05afb055b3e8b58f2..4b58427eb8555f77d5e871a1ebf9edc0be895b7e 100755 (executable)
@@ -39,7 +39,7 @@ import zeep
 import zeep.cache
 import zeep.transports
 
-__version__ = '2.2.0'
+__version__ = '3.0.0'
 
 LOG = logging.getLogger(__name__)
 LOG.setLevel(logging.NOTSET)
@@ -228,9 +228,9 @@ def main():
 
                 if infoex['wx_data'] is None:
                     infoex['wx_data'] = []
-            except Exception:
+            except Exception as exc:
                 LOG.error("Python program for custom Wx data failed in "
-                          "execution")
+                          "execution: " + str(exc))
                 sys.exit(1)
 
             LOG.info("Successfully executed external Python program")
@@ -241,6 +241,10 @@ def main():
             LOG.error("Specified Python program for custom Wx data "
                       "was not found")
             sys.exit(1)
+        except Exception as exc:
+            LOG.error("A problem was encountered when attempting to "
+                      "load your custom Wx program: " + str(exc))
+            sys.exit(1)
 
     LOG.info("Time taken to get all data : %.3f sec", time.time() -
              time_all_elements)
@@ -470,9 +474,14 @@ def get_mesowest_data(begin, end, station):
 
         # we may not have the data at all
         key_name = element_cd + '_set_1'
+
         if key_name in observations:
             if observations[key_name][pos]:
                 remote_data[element_cd] = observations[key_name][pos]
+
+                # mesowest provides wind_speed in m/s, we want mph
+                if element_cd in ('wind_speed', 'wind_gust'):
+                    remote_data[element_cd] = ms_to_mph(remote_data[element_cd])
             else:
                 remote_data[element_cd] = None
         else:
@@ -531,5 +540,9 @@ def setup_time_values():
     begin_date = end_date - datetime.timedelta(hours=3)
     return (begin_date, end_date)
 
+def ms_to_mph(ms):
+    """convert meters per second to miles per hour"""
+    return ms * 2.236936
+
 if __name__ == "__main__":
     sys.exit(main())