import zeep.cache
import zeep.transports
-__version__ = '3.3.0'
+__version__ = '3.3.1'
LOG = logging.getLogger(__name__)
LOG.setLevel(logging.NOTSET)
iemap['WDIR'] = 'windDirectionNum'
# unsupported by NRCS:
# windGustSpeedNum
+
+ # NOTE: this doesn't exist in NRCS SNOTEL, we create it in this
+ # program, so add it to the map here
+ iemap['hn24'] = 'hn24Auto'
elif provider == 'mesowest':
iemap['precip_accum'] = 'precipitationGauge'
iemap['air_temp'] = 'tempPres'
else:
remote_data[element_cd] = None
+
+ # calc hn24, if applicable
+ hn24 = None
+
+ if station['hn24']:
+ hn24_values = []
+
+ if element_cd == "SNWD":
+ for idx, _ in enumerate(values):
+ val = values[idx]
+ if val is None:
+ continue
+ hn24_values.append(val['value'])
+
+ if len(hn24_values) > 0:
+ # instead of taking MAX - MIN, we want the first
+ # value (most distant) - the last value (most
+ # recent)
+ #
+ # if the result is positive, then we have
+ # settlement; if it's not, then we have HN24
+ hn24 = hn24_values[0] - hn24_values[len(hn24_values)-1]
+
+ if hn24 < 0.0:
+ hn24 = abs(hn24)
+ else:
+ # this case represents HS settlement
+ hn24 = 0.0
+
+ # finally, if user wants hn24 and it's set to None at this
+ # point, then force it to 0.0
+ if hn24 is None:
+ hn24 = 0.0
+
+ if hn24 is not None:
+ remote_data['hn24'] = hn24
+
return remote_data
def get_mesowest_data(begin, end, station):
# instead of taking MAX - MIN, we want the first value (most
# distant) - the last value (most recent)
#
- # if the result is positive, then we have HN24; if it's not,
- # then we have settlement
- #hn24 = max(hn24_values) - min(hn24_values)
+ # if the result is positive, then we have settlement; if it's not,
+ # then we have HN24
hn24 = hn24_values[0] - hn24_values[len(hn24_values)-1]
if hn24 < 0.0:
+ hn24 = abs(hn24)
+ else:
# this case represents HS settlement
- #
- # TODO: determine if InfoEx supports auto-stations reporting
- # HS settlement values
hn24 = 0.0
+
+ # finally, if user wants hn24 and it's set to None at this
+ # point, then force it to 0.0
+ if station['hn24'] and hn24 is None:
+ hn24 = 0.0
+
if len(wind_speed_values) > 0:
wind_speed_avg = sum(wind_speed_values) / len(wind_speed_values)