X-Git-Url: https://wylark.com/src/infoex-autowx.git/blobdiff_plain/f2e681ff296c76c1d0aa1cf3c8b6cbce385362b7..68fafe3a98e61112fc4c37bbe3a1c7c35fea469a:/infoex-autowx.py diff --git a/infoex-autowx.py b/infoex-autowx.py index 79e0fd3..fdaec34 100755 --- a/infoex-autowx.py +++ b/infoex-autowx.py @@ -39,7 +39,7 @@ import zeep import zeep.cache import zeep.transports -__version__ = '2.0.1' +__version__ = '2.1.0' LOG = logging.getLogger(__name__) LOG.setLevel(logging.NOTSET) @@ -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. @@ -302,6 +316,8 @@ def setup_infoex_counterparts_mapping(provider): if provider == 'nrcs': iemap['PREC'] = 'precipitationGauge' iemap['TOBS'] = 'tempPres' + iemap['TMAX'] = 'tempMaxHour' + iemap['TMIN'] = 'tempMinHour' iemap['SNWD'] = 'hS' iemap['PRES'] = 'baro' iemap['RHUM'] = 'rH' @@ -312,6 +328,8 @@ def setup_infoex_counterparts_mapping(provider): elif provider == 'mesowest': iemap['precip_accum'] = 'precipitationGauge' iemap['air_temp'] = 'tempPres' + iemap['air_temp_high_24_hour'] = 'tempMaxHour' + iemap['air_temp_low_24_hour'] = 'tempMinHour' iemap['snow_depth'] = 'hS' iemap['pressure'] = 'baro' iemap['relative_humidity'] = 'rH'