config = configparser.ConfigParser(allow_no_value=False)
if not options.config:
- print("Please specify a configuration file via --config")
+ print("Please specify a configuration file via --config.")
sys.exit(1)
config.read(options.config)
-if 'nrcs' in config and 'mesowest' in config:
- print("Both MesoWest and NRCS configuration option specified, "
- "please choose just one.")
- sys.exit(1)
-
log.debug('STARTING UP')
try:
}
data = dict()
+ data['provider'] = config['station']['type']
+
+ if data['provider'] not in ['nrcs', 'mesowest']:
+ print("Please specify either nrcs or mesowest as the station type.")
+ sys.exit(1)
- if 'nrcs' in config:
- data['provider'] = 'nrcs'
+ if data['provider'] == 'nrcs':
data['source'] = 'https://www.wcc.nrcs.usda.gov/awdbWebService/services?WSDL'
- data['stationID'] = config['nrcs']['station_triplet']
+ data['station_id'] = config['station']['station_id']
try:
- desired_data = config['nrcs']['desired_data'].split(',')
+ desired_data = config['station']['desired_data'].split(',')
except:
# desired_data malformed or missing, setting default
desired_data = [
'PREC' # PRECIPITATION ACCUMULATION (in)
]
- if 'mesowest' in config:
- data['provider'] = 'mesowest'
- #data['source'] = 'https://api.synopticdata.com/v2/stations/latest'
+ if data['provider'] == 'mesowest':
data['source'] = 'https://api.synopticdata.com/v2/stations/timeseries'
- data['stationID'] = config['mesowest']['stid']
- data['units'] = config['mesowest']['units']
+ data['station_id'] = config['station']['station_id']
+ data['units'] = config['station']['units']
try:
- desired_data = config['mesowest']['desired_data']
+ desired_data = config['station']['desired_data']
except:
# desired_data malformed or missing, setting default
desired_data = 'air_temp,snow_depth'
- # construct full API URL
- data['source'] = data['source'] + '?token=' + config['mesowest']['token'] + '&within=60&units=' + data['units'] + '&stid=' + data['stationID'] + '&vars=' + desired_data
+ # construct full API URL (sans start/end time, added later)
+ data['source'] = data['source'] + '?token=' + config['station']['token'] + '&within=60&units=' + data['units'] + '&stid=' + data['station_id'] + '&vars=' + desired_data
except KeyError as e:
log.critical("%s not defined in %s" % (e, options.config))
fmap['hstAuto'] = 27 ; final_data[27] = None
fmap['hstAutoUnit'] = 28 ; final_data[28] = 'in'
-# one final mapping, the NRCS fields that this program supports to
+# one final mapping, the NRCS/MesoWest fields that this program supports to
# their InfoEx counterpart
iemap = {}
# get the last three hours of data for this elementCd
tmp = client.service.getHourlyData(
- stationTriplets=[data['stationID']],
+ stationTriplets=[data['station_id']],
elementCd=elementCd,
ordinal=1,
beginDate=begin_date,