SensorTag Data Merged With Open Weather Maps
About a week ago I worked on SensorTag metrics .
This week had some interesting weather today here in Austin, and I wanted to see to visualize it as well. Luckily Open Weather Maps offers a free API for gather near real-time weather data based on city code.
def __get_open_weather_data():
url_path = 'http://api.openweathermap.org/data/2.5/weather'
api_key = '??????????'
url = '%s?zip=73301&APPID=%s'
res = requests.get(url % (url_path, api_key))
if res:
if res.json().get('main'):
return res.json()
res = requests.get(url % (url_path, api_key))
if res:
if res.json().get('main'):
return res.json()
def get_open_weather():
data = __get_open_weather_data()
# format our json response
temp = round(data['main']['temp'] * 9/5 - 459.67, 2)
pressure = round(data['main']['pressure'], 1)
humidity = round(data['main']['humidity'], 2)
rain = round(data['rain'].get('1h', 0.00), 2)
clouds = data['clouds']['all']
wind = data['wind']['speed']
return dict(
open_weather_temperature=temp,
open_weather_pressure=pressure,
open_weather_humidity=humidity,
open_weather_rain=rain,
open_weather_clouds=clouds,
open_weather_wind=wind
)
Then I merge with my SensorTag data, appending these new keys to my json file:
$ cat /sensor.json
{
"open_weather_temperature": 71.65,
"temperature": 74.19,
"open_weather_pressure": 1018.5,
"light": 0,
"humidity": 55.16,
"pressure": 989.8,
"open_weather_humidity": 99,
"open_weather_rain": 7.07,
"open_weather_clouds": 48,
"open_weather_wind": 2.81
}