wylark
/
infoex-autowx.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Whoops, the license is in fact ISC
[infoex-autowx.git]
/
infoex-autowx.py
diff --git
a/infoex-autowx.py
b/infoex-autowx.py
index 5f35d0e658b5e6ab83c0c13d857c01f750b0f545..3d8762c81b58c97eeecc8af10583a835435801c9 100755
(executable)
--- a/
infoex-autowx.py
+++ b/
infoex-autowx.py
@@
-71,16
+71,11
@@
parser.add_option("--dry-run",
config = configparser.ConfigParser(allow_no_value=False)
if not options.config:
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)
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:
log.debug('STARTING UP')
try:
@@
-94,14
+89,18
@@
try:
}
data = dict()
}
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['source'] = 'https://www.wcc.nrcs.usda.gov/awdbWebService/services?WSDL'
- data['station
ID'] = config['nrcs']['station_triplet
']
+ data['station
_id'] = config['station']['station_id
']
try:
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 = [
except:
# desired_data malformed or missing, setting default
desired_data = [
@@
-110,21
+109,19
@@
try:
'PREC' # PRECIPITATION ACCUMULATION (in)
]
'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['source'] = 'https://api.synopticdata.com/v2/stations/timeseries'
- data['station
ID'] = config['mesowest']['st
id']
- data['units'] = config['
mesowest
']['units']
+ data['station
_id'] = config['station']['station_
id']
+ data['units'] = config['
station
']['units']
try:
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'
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))
except KeyError as e:
log.critical("%s not defined in %s" % (e, options.config))
@@
-184,7
+181,7
@@
fmap['hn24AutoUnit'] = 26 ; final_data[26] = 'in'
fmap['hstAuto'] = 27 ; final_data[27] = None
fmap['hstAutoUnit'] = 28 ; final_data[28] = 'in'
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 = {}
# their InfoEx counterpart
iemap = {}
@@
-220,7
+217,7
@@
if data['provider'] == 'nrcs':
# get the last three hours of data for this elementCd
tmp = client.service.getHourlyData(
# get the last three hours of data for this elementCd
tmp = client.service.getHourlyData(
- stationTriplets=[data['station
ID
']],
+ stationTriplets=[data['station
_id
']],
elementCd=elementCd,
ordinal=1,
beginDate=begin_date,
elementCd=elementCd,
ordinal=1,
beginDate=begin_date,