-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathWeatherAPI.py
More file actions
66 lines (56 loc) · 1.93 KB
/
WeatherAPI.py
File metadata and controls
66 lines (56 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import argparse
import json
import urllib2
import time
import datetime
parser = argparse.ArgumentParser() # Start args.
parser.add_argument("-tgt", "--target", help="Zip code of weather data to be retrieved.")
parser.add_argument("-api", "--apikey", help="User's CIMS API key.")
args = parser.parse_args() # End args.
# Start handling args.
if args.target:
target = str(args.target)
else:
# Automatically geolocate the connecting IP
f = urllib2.urlopen('http://freegeoip.net/json/')
json_string = f.read()
f.close()
location = json.loads(json_string)
location_zip = location['zip_code']
target = location_zip
print "Autodetected Zip: " + target
if args.apikey:
api_key = str(args.apikey)
else:
print "WARN: API-Key missing.\nUsing default."
api_key = "b1658f18-9f42-4dad-9178-a1adbc2c5d86"
# quit(1)
# End handling args
api_data = {}
def request(apikey, targets, sDate, eDate):
arguments = {"appKey": "b1658f18-9f42-4dad-9178-a1adbc2c5d86", "targets": "93551", "startDate": "2010-1-01", "endDate": "2010-1-02"}
if apikey != '':
arguments["appKey"] = str(apikey)
if targets != '':
arguments["targets"] = str(targets)
if sDate != '':
arguments["startDate"] = str(sDate)
if eDate != '':
arguments["endDate"] = str(eDate)
parameters = ""
for key in arguments:
parameters = str(parameters) + str(key) + "=" + str(arguments[key]) + '&'
url = 'http://et.water.ca.gov/api/data?' + parameters + 'unitOfMeasure=M;prioritizeSCS=N'
api_response = urllib2.urlopen(url)
response = json.loads(api_response.read())
api_response.close()
global api_data
api_data = response
return api_data
def timestamp():
ts = time.time()
return datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d')
def handle_data(data):
pass
# TODO: Handle data, make relevant, etc.
print request(api_key, target, timestamp(), timestamp())