lita-onewheel-forecast-io 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,371 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe Lita::Handlers::OnewheelForecastIo, lita_handler: true do
4
+
5
+ before(:each) do
6
+ mock_geocoder = ::Geocoder::Result::Google.new({'formatted_address' => 'Portland, OR', 'geometry' => { 'location' => { 'lat' => 45.523452, 'lng' => -122.676207 }}})
7
+ allow(::Geocoder).to receive(:search) { [mock_geocoder] } # It expects an array of geocoder objects.
8
+
9
+ # Mock up the ForecastAPI call.
10
+ # Todo: add some other mocks to allow more edgy testing (rain percentages, !rain eightball replies, etc
11
+ mock_weather_json = File.open("spec/mock_weather.json").read
12
+ allow(RestClient).to receive(:get) { mock_weather_json }
13
+
14
+ registry.configure do |config|
15
+ config.handlers.onewheel_forecast_io.api_uri = ''
16
+ config.handlers.onewheel_forecast_io.api_key = ''
17
+ config.handlers.onewheel_forecast_io.colors = true
18
+ end
19
+ end
20
+
21
+ it { is_expected.to route('forecast') }
22
+ it { is_expected.to route('weather') }
23
+ it { is_expected.to route('rain') }
24
+ it { is_expected.to route('snow') }
25
+ it { is_expected.to route('ansirain') }
26
+ it { is_expected.to route('ansisnow') }
27
+ it { is_expected.to route('ansihumidity') }
28
+ it { is_expected.to route('ansiintensity') }
29
+ it { is_expected.to route('ansitemp') }
30
+ it { is_expected.to route('ansiwind') }
31
+ it { is_expected.to route('asciiwind') }
32
+ it { is_expected.to route('ansisun') }
33
+ it { is_expected.to route('ansicloud') }
34
+ it { is_expected.to route('asciitemp') }
35
+ it { is_expected.to route('asciirain') }
36
+ it { is_expected.to route('7day') }
37
+ it { is_expected.to route('weekly') }
38
+ it { is_expected.to route('dailyrain') }
39
+ it { is_expected.to route('dailysnow') }
40
+ it { is_expected.to route('dailytemp') }
41
+ it { is_expected.to route('dailyhumidity') }
42
+ it { is_expected.to route('7dayrain') }
43
+ it { is_expected.to route('weeklyrain') }
44
+ it { is_expected.to route('weeklysnow') }
45
+ it { is_expected.to route('dailywind') }
46
+ it { is_expected.to route('alerts') }
47
+ it { is_expected.to route('ansiozone') }
48
+ it { is_expected.to route('cond') }
49
+ it { is_expected.to route('condi') }
50
+ it { is_expected.to route('condit') }
51
+ it { is_expected.to route('conditi') }
52
+ it { is_expected.to route('conditio') }
53
+ it { is_expected.to route('condition') }
54
+ it { is_expected.to route('conditions') }
55
+ it { is_expected.to route('set scale f') }
56
+ it { is_expected.to route('set scale c') }
57
+ it { is_expected.to route('set scale k') }
58
+ it { is_expected.to route('set scale') }
59
+ it { is_expected.to route('sunrise') }
60
+ it { is_expected.to route('sunset') }
61
+ it { is_expected.to route('forecastallthethings') }
62
+ it { is_expected.to route('ansipressure') }
63
+ it { is_expected.to route('ansibarometer') }
64
+ it { is_expected.to route('dailypressure') }
65
+ it { is_expected.to route('dailybarometer') }
66
+ it { is_expected.to route('neareststorm') }
67
+
68
+ # This is where we test for regex overflow, so !weeklyrain doesn't try to get a forecast for Rain, Germany.
69
+ it { is_expected.not_to route('forecastrain') }
70
+ it { is_expected.not_to route('weatherrain') }
71
+ it { is_expected.not_to route('rainrain') }
72
+ it { is_expected.not_to route('snowrain') }
73
+ it { is_expected.not_to route('ansirainrain') }
74
+ it { is_expected.not_to route('ansisnowrain') }
75
+ it { is_expected.not_to route('ansihumidityrain') }
76
+ it { is_expected.not_to route('ansiintensityrain') }
77
+ it { is_expected.not_to route('ansitemprain') }
78
+ it { is_expected.not_to route('ansiwindrain') }
79
+ it { is_expected.not_to route('asciiwindrain') }
80
+ it { is_expected.not_to route('ansisunrain') }
81
+ it { is_expected.not_to route('ansicloudrain') }
82
+ it { is_expected.not_to route('asciitemprain') }
83
+ it { is_expected.not_to route('asciirainrain') }
84
+ it { is_expected.not_to route('dailyrainrain') }
85
+ it { is_expected.not_to route('dailysnowrain') }
86
+ it { is_expected.not_to route('dailytemprain') }
87
+ it { is_expected.not_to route('dailyhumidityrain') }
88
+ it { is_expected.not_to route('7dayrainrain') }
89
+ it { is_expected.not_to route('weeklyrainrain') }
90
+ it { is_expected.not_to route('weeklysnowrain') }
91
+ it { is_expected.not_to route('dailywindrain') }
92
+ it { is_expected.not_to route('alertsrain') }
93
+ it { is_expected.not_to route('ansiozonerain') }
94
+ it { is_expected.not_to route('condrain') }
95
+ it { is_expected.not_to route('condirain') }
96
+ it { is_expected.not_to route('conditrain') }
97
+ it { is_expected.not_to route('conditirain') }
98
+ it { is_expected.not_to route('conditiorain') }
99
+ it { is_expected.not_to route('conditionrain') }
100
+ it { is_expected.not_to route('conditionsrain') }
101
+ it { is_expected.not_to route('sunriserain') }
102
+ it { is_expected.not_to route('sunsetrain') }
103
+ it { is_expected.not_to route('forecastallthethingsrain') }
104
+ it { is_expected.not_to route('ansipressurerain') }
105
+ it { is_expected.not_to route('ansibarometerrain') }
106
+ it { is_expected.not_to route('dailypressurerain') }
107
+ it { is_expected.not_to route('dailybarometerrain') }
108
+
109
+ it '!forecast' do
110
+ send_message 'forecast'
111
+ expect(replies.last).to eq("Portland, OR weather is currently 28.39°F and clear. Winds out of the E at 5.74 mph. It will be clear for the hour, and flurries tomorrow morning. There are also 357.71 ozones.")
112
+ end
113
+
114
+ it '!rain' do
115
+ allow(MagicEightball).to receive(:reply) { 'Nope' }
116
+ send_message 'rain Portland'
117
+ expect(replies.last).to eq('Nope')
118
+ end
119
+
120
+ it '!snow' do
121
+ allow(MagicEightball).to receive(:reply) { 'Nope' }
122
+ send_message 'snow Portland'
123
+ expect(replies.last).to eq('Nope')
124
+ end
125
+
126
+ it '!ansirain Paris' do
127
+ send_message 'ansirain Paris'
128
+ expect(replies.last).to include("|\u000302_☃\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
129
+ end
130
+
131
+ it '!ansirain return max chance' do
132
+ send_message 'ansirain Paris'
133
+ expect(replies.last).to include('max 100%')
134
+ end
135
+
136
+ it '!ansirain no minutes' do
137
+ allow(RestClient).to receive(:get) { File.open('spec/mock_weather_no_minute.json').read }
138
+ send_message 'ansirain'
139
+ expect(replies.last).to include('|No minute-by-minute data available.|')
140
+ end
141
+
142
+ it '!ansiintensity no minutes' do
143
+ allow(RestClient).to receive(:get) { File.open('spec/mock_weather_no_minute.json').read }
144
+ send_message 'ansiintensity'
145
+ expect(replies.last).to include('|No minute-by-minute data available.|')
146
+ end
147
+
148
+ it '!ansisnow Paris' do
149
+ send_message 'ansisnow Paris'
150
+ expect(replies.last).to include("|\u000302_☃\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
151
+ end
152
+
153
+ it '!ansiintensity' do
154
+ send_message 'ansiintensity'
155
+ expect(replies.last).to include("|\u000302_\u000313▅\u000310▁\u000303▃\u000309▃\u000311▃\u000308▅\u000307▅\u000304▅\u000313▅\u000302___________________________________________________\u0003|")
156
+ end
157
+
158
+ it '!ansitemp portland' do
159
+ send_message 'ansitemp portland'
160
+ expect(replies.last).to eq("Portland, OR 24 hr temps: 28.3°F |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| 28.4°F Range: 28.3°F - 39.0°F")
161
+ end
162
+
163
+ it '!dailytemp portland' do
164
+ send_message 'dailytemp portland'
165
+ expect(replies.last).to eq("Portland, OR 48 hr temps: 28.3°F |\u000306_▁▃\u000310▅▅▇\u000303██\u000310▇▇▅▅\u000306▅▃▃▃▃▃▁▁▁▁▁▁▁▃\u000310▅▅▇\u000303█████▇\u000310▇▇▇▅▅▅▅\u000306▅▃▃▃▃\u0003| 30.5°F Range: 28.3°F - 41.3°F")
166
+ end
167
+
168
+ it '!ansiwind portland' do
169
+ send_message 'ansiwind portland'
170
+ expect(replies.last).to eq("Portland, OR 48h wind direction 4.3 mph|\u000306↓\u000310↙←\u000311↖↑↗\u000308→↘\u000311↓←←←←←←\u000310←←←←←←←\u000306←←←←←\u000302←←←↙↙↙↙↓↓↓\u000306↓↓↓↓↓↓↓↓↙↙\u0003|4.18 mph Range: 1.39 mph - 12.71 mph")
171
+ end
172
+
173
+ it '!conditions' do
174
+ send_message 'conditions'
175
+ expect(replies.last).to eq("Portland, OR 28.3°F |\u000306_▁▃\u000310▅▇█\u000303█\u0003| 38.72°F / 4.3 mph |\u000306↓\u000310↙←\u000311↖↑↗\u000308→\u0003| 12.71 mph / 98% chance of sun / 60m precip |\u000306☃\u000311▇\u000308▇\u000302_____________\u0003|")
176
+ end
177
+
178
+ it '!alerts' do
179
+ send_message 'alerts'
180
+ expect(replies.last).to eq("http://alerts.weather.gov/cap/wwacapget.php?x=OR125178E80B44.WindAdvisory.12517D235B00OR.PQRNPWPQR.95d9377231cf71049aacb48282406c60\nhttp://alerts.weather.gov/cap/wwacapget.php?x=OR125178E7B298.SpecialWeatherStatement.12517D218640OR.PQRSPSPQR.53656f1fdba795381a7895d7e3d153f7\n")
181
+ end
182
+
183
+ it '!ansisun' do
184
+ send_message 'ansisun'
185
+ expect(replies.last).to eq("Portland, OR 8 day sun forecast |\u000308█\u000309▃\u000308▇\u000309▁_\u000307▅\u000309▃\u000307▅\u0003|")
186
+ end
187
+
188
+ it '!ansicloud' do
189
+ send_message 'ansicloud'
190
+ expect(replies.last).to eq('Portland, OR 24h cloud cover |___________▁▁▁▁▁▁▁▁▃▅▅▅|')
191
+ end
192
+
193
+ it '!asciitemp' do
194
+ send_message 'asciitemp'
195
+ expect(replies.last).to eq("Portland, OR 24 hr temps: 28.3°F |\u000306_.-\u000310~*'\u000303''\u000310''*~\u000306~------....\u0003| 28.4°F Range: 28.3°F - 39.0°F")
196
+ end
197
+
198
+ it '!asciirain' do
199
+ send_message 'asciirain'
200
+ expect(replies.last).to include("|\u000302_☃\u000306-\u000310~\u000303~\u000309~\u000311*\u000308*\u000307'\u000304'\u000313'\u000302__________________________________________________\u0003|")
201
+ end
202
+
203
+ it '!7day' do
204
+ send_message '7day'
205
+ expect(replies.last).to eq("Portland, OR 7day high/low temps 39.0°F |\u000303_▃\u000309▅\u000303▅\u000309▅███\u0003| 52.4°F / 28.2°F |\u000306_▁▃\u000310▅\u000303█\u000310▇\u000303██\u0003| 39.7°F Range: 28.17°F - 52.38°F")
206
+ end
207
+
208
+ it '!dailyrain' do
209
+ send_message 'dailyrain'
210
+ expect(replies.last).to eq("Portland, OR 48 hr snows |\u000302_______________________▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁_\u0003| max 4.0%")
211
+ end
212
+
213
+ it '!7dayrain' do
214
+ send_message '7dayrain'
215
+ expect(replies.last).to eq("Portland, OR 7day snows |\u000302_▁▁\u000306▃\u000313█\u000303▅▅\u000310▃\u0003|")
216
+ end
217
+
218
+ it '!ansiozone' do
219
+ send_message 'ansiozone'
220
+ expect(replies.last).to eq("Portland, OR ozones 357.98 |??????????◉◉◉??????????◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◉◎◎◎◎◎◎◎◎◎| 330.44 [24h forecast]")
221
+ end
222
+
223
+ it '!set scale f' do
224
+ send_message 'set scale f'
225
+ expect(replies.last).to eq("Scale set to f")
226
+ end
227
+
228
+ it '!set scale k' do
229
+ send_message 'set scale k'
230
+ expect(replies.last).to eq("Scale set to k")
231
+ end
232
+
233
+ it '!set scale already set' do
234
+ send_message 'set scale f'
235
+ send_message 'set scale f'
236
+ expect(replies.last).to eq("Scale is already set to f!")
237
+ end
238
+
239
+ it '!set scale c' do
240
+ send_message 'set scale c'
241
+ expect(replies.last).to eq("Scale set to c")
242
+ end
243
+
244
+ it '!set scale toggle' do
245
+ send_message 'set scale f'
246
+ expect(replies.last).to eq("Scale set to f")
247
+ send_message 'set scale'
248
+ expect(replies.last).to eq("Scale set to c")
249
+ send_message 'set scale'
250
+ expect(replies.last).to eq("Scale set to f")
251
+ end
252
+
253
+ it '!ansitemp in F' do
254
+ send_message 'set scale f'
255
+ send_message 'ansitemp'
256
+ expect(replies.last).to eq("Portland, OR 24 hr temps: 28.3°F |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| 28.4°F Range: 28.3°F - 39.0°F")
257
+ end
258
+
259
+ it '!ansitemp in k' do
260
+ send_message 'set scale k'
261
+ send_message 'ansitemp'
262
+ expect(replies.last).to eq("Portland, OR 24 hr temps: 271.09K |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| 271.15K Range: 271.09K - 277.04K")
263
+ end
264
+
265
+ it '!ansitemp in K' do
266
+ send_message 'set scale K'
267
+ send_message 'ansitemp'
268
+ expect(replies.last).to eq("Portland, OR 24 hr temps: 271.09K |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| 271.15K Range: 271.09K - 277.04K")
269
+ end
270
+
271
+ it '!ansitemp in C' do
272
+ send_message 'set scale c'
273
+ send_message 'ansitemp'
274
+ expect(replies.last).to eq("Portland, OR 24 hr temps: -2.06°C |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| -2.0°C Range: -2.06°C - 3.89°C")
275
+ end
276
+
277
+ it '!ansiwind in MPH' do
278
+ send_message 'set scale f'
279
+ send_message 'ansiwind'
280
+ expect(replies.last).to include("1.39 mph - 12.71 mph")
281
+ end
282
+
283
+ it '!ansiwind in KPH' do
284
+ send_message 'set scale c'
285
+ send_message 'ansiwind'
286
+ expect(replies.last).to include("2.22 kph - 20.34 kph")
287
+ end
288
+
289
+ it '!sunrise' do
290
+ send_message 'sunrise'
291
+ expect(replies.last).to include("Portland, OR sunrise: ")
292
+ end
293
+
294
+ it '!sunset' do
295
+ send_message 'sunset'
296
+ expect(replies.last).to include("Portland, OR sunset: ")
297
+ end
298
+
299
+ it '!dailywind' do
300
+ send_message 'dailywind'
301
+ expect(replies.last).to eq("Portland, OR 7day winds 7.67 mph|\u000310█\u000306▅\u000310██\u000302▅▅▅\u000306▅\u0003|3.02 mph range 2.67 mph-7.67 mph")
302
+ end
303
+
304
+ it '!ansihumidity' do
305
+ send_message 'ansihumidity'
306
+ expect(replies.last).to eq("Portland, OR 48hr humidity 67%|\u000307▇\u000308▇▇▇\u000311▅▅▅▅▅▅▅▅▅▅\u000308▇▇▇▇▇▇▇\u000307▇▇▇▇▇▇▇▇▇▇▇▇\u000304████████████████\u0003|80% range: 41%-85%")
307
+ end
308
+
309
+ it '!dailyhumidity' do
310
+ send_message 'dailyhumidity'
311
+ expect(replies.last).to eq("Portland, OR 7day humidity 58%|\u000302▇▇▇▇████\u0003|87% range 58%-93%")
312
+ end
313
+
314
+ it '!forecastallthethings' do
315
+ send_message 'forecastallthethings'
316
+ expect(replies[0]).to eq("Portland, OR weather is currently 28.39°F and clear. Winds out of the E at 5.74 mph. It will be clear for the hour, and flurries tomorrow morning. There are also 357.71 ozones.")
317
+ expect(replies[1]).to include("|\u000302_☃\u000306▃\u000310▅\u000303▅\u000309▅\u000311▇\u000308▇\u000307█\u000304█\u000313█\u000302__________________________________________________\u0003|")
318
+ expect(replies[2]).to include("|\u000302_\u000313▅\u000310▁\u000303▃\u000309▃\u000311▃\u000308▅\u000307▅\u000304▅\u000313▅\u000302___________________________________________________\u0003|")
319
+ expect(replies[3]).to eq("Portland, OR 24 hr temps: 28.3°F |\u000306_▁▃\u000310▅▇█\u000303██\u000310██▇▅\u000306▅▃▃▃▃▃▃▁▁▁▁\u0003| 28.4°F Range: 28.3°F - 39.0°F")
320
+ expect(replies[4]).to eq("Portland, OR 48h wind direction 4.3 mph|\u000306↓\u000310↙←\u000311↖↑↗\u000308→↘\u000311↓←←←←←←\u000310←←←←←←←\u000306←←←←←\u000302←←←↙↙↙↙↓↓↓\u000306↓↓↓↓↓↓↓↓↙↙\u0003|4.18 mph Range: 1.39 mph - 12.71 mph")
321
+ expect(replies[5]).to eq("Portland, OR 8 day sun forecast |\u000308█\u000309▃\u000308▇\u000309▁_\u000307▅\u000309▃\u000307▅\u0003|")
322
+ expect(replies[6]).to eq("Portland, OR 24h cloud cover |___________▁▁▁▁▁▁▁▁▃▅▅▅|")
323
+ expect(replies[7]).to eq("Portland, OR 48 hr snows |\u000302_______________________▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁_\u0003| max 4.0%")
324
+ end
325
+
326
+ it '!ansipressure' do
327
+ send_message 'ansipressure'
328
+ expect(replies.last).to eq("Portland, OR pressure 1021.2 hPa |████▇▅▅▃▃▃▃▅▇▇▇▇▇▅▅▅▅▅▃▃▃▃▅▅▅▃▁▁▁__▁▁▃▃▅▅▅▅▅▃▁▁▁▃| 1018.31 hPa range: 1017.96-1021.2 hPa [48h forecast]")
329
+ end
330
+
331
+ it '!ansibarometer' do
332
+ send_message 'ansibarometer'
333
+ expect(replies.last).to eq("Portland, OR pressure 1021.2 hPa |████▇▅▅▃▃▃▃▅▇▇▇▇▇▅▅▅▅▅▃▃▃▃▅▅▅▃▁▁▁__▁▁▃▃▅▅▅▅▅▃▁▁▁▃| 1018.31 hPa range: 1017.96-1021.2 hPa [48h forecast]")
334
+ end
335
+
336
+ it '!dailypressure' do
337
+ send_message 'dailypressure'
338
+ expect(replies.last).to eq("Portland, OR pressure 1019.92 hPa |▅▅▃_▁▇██| 1027.26 hPa range: 1013.45-1027.26 hPa [8 day forecast]")
339
+ end
340
+
341
+ it '!dailybarometer' do
342
+ send_message 'dailybarometer'
343
+ expect(replies.last).to eq("Portland, OR pressure 1019.92 hPa |▅▅▃_▁▇██| 1027.26 hPa range: 1013.45-1027.26 hPa [8 day forecast]")
344
+ end
345
+
346
+ it '!asciiwind' do
347
+ send_message 'asciiwind'
348
+ expect(replies.last).to eq("Portland, OR 48h wind direction 4.3 mph|\u000306v\u000310,<\u000311\\^/\u000308>.\u000311v<<<<<<\u000310<<<<<<<\u000306<<<<<\u000302<<<,,,,vvv\u000306vvvvvvvv,,\u0003|4.18 mph Range: 1.39 mph - 12.71 mph")
349
+ end
350
+
351
+ it '!geo' do
352
+ send_message 'geo Paris, france'
353
+ expect(replies.last).to eq('45.523452, -122.676207')
354
+ end
355
+
356
+ it '!neareststorm' do
357
+ send_message 'neareststorm'
358
+ expect(replies.last).to eq('The nearest storm is 158 mi to the S of you.')
359
+ end
360
+
361
+ it '!neareststorm with scale' do
362
+ send_message 'set scale c'
363
+ send_message 'neareststorm'
364
+ expect(replies.last).to eq('The nearest storm is 252.8 km to the S of you.')
365
+ end
366
+
367
+ # it 'colors strings' do
368
+ # cstr = Lita::Handlers::ForecastIo.get_colored_string([{:key => 1}], :key, 'x', {1 => :blue})
369
+ # expect(cstr).to equal('x')
370
+ # end
371
+ end
@@ -0,0 +1,1519 @@
1
+ {
2
+ "latitude": 45.523452,
3
+ "longitude": -122.676207,
4
+ "timezone": "America/Los_Angeles",
5
+ "offset": -8,
6
+ "currently": {
7
+ "time": 1417361745,
8
+ "summary": "Clear",
9
+ "icon": "clear-day",
10
+ "nearestStormDistance": 158,
11
+ "nearestStormBearing": 179,
12
+ "precipIntensity": 0,
13
+ "precipProbability": 0,
14
+ "temperature": 28.39,
15
+ "apparentTemperature": 22.15,
16
+ "dewPoint": 17.88,
17
+ "humidity": 0.64,
18
+ "windSpeed": 5.74,
19
+ "windBearing": 78,
20
+ "visibility": 10,
21
+ "cloudCover": 0,
22
+ "pressure": 1021.17,
23
+ "ozone": 357.71
24
+ },
25
+ "minutely": {
26
+ "summary": "Clear for the hour.",
27
+ "icon": "clear-day",
28
+ "data": [
29
+ {
30
+ "time": 1417361700,
31
+ "precipIntensity": 0,
32
+ "precipProbability": 0
33
+ },
34
+ {
35
+ "time": 1417361760,
36
+ "precipIntensity": 0.051,
37
+ "precipProbability": 0.1,
38
+ "precipIntensityError": 0.0023,
39
+ "precipType": "snow",
40
+ "precipAccumulation": 0.055
41
+ },
42
+ {
43
+ "time": 1417361820,
44
+ "precipIntensity": 0.0101,
45
+ "precipProbability": 0.2,
46
+ "precipType": "rain"
47
+ },
48
+ {
49
+ "time": 1417361880,
50
+ "precipIntensity": 0.0131,
51
+ "precipProbability": 0.3
52
+ },
53
+ {
54
+ "time": 1417361940,
55
+ "precipIntensity": 0.0171,
56
+ "precipProbability": 0.4
57
+ },
58
+ {
59
+ "time": 1417362000,
60
+ "precipIntensity": 0.0221,
61
+ "precipProbability": 0.5
62
+ },
63
+ {
64
+ "time": 1417362060,
65
+ "precipIntensity": 0.0281,
66
+ "precipProbability": 0.6
67
+ },
68
+ {
69
+ "time": 1417362120,
70
+ "precipIntensity": 0.0331,
71
+ "precipProbability": 0.7
72
+ },
73
+ {
74
+ "time": 1417362180,
75
+ "precipIntensity": 0.0381,
76
+ "precipProbability": 0.8
77
+ },
78
+ {
79
+ "time": 1417362240,
80
+ "precipIntensity": 0.0431,
81
+ "precipProbability": 0.9
82
+ },
83
+ {
84
+ "time": 1417362300,
85
+ "precipIntensity": 0,
86
+ "precipProbability": 1
87
+ },
88
+ {
89
+ "time": 1417362360,
90
+ "precipIntensity": 0,
91
+ "precipProbability": 0
92
+ },
93
+ {
94
+ "time": 1417362420,
95
+ "precipIntensity": 0,
96
+ "precipProbability": 0
97
+ },
98
+ {
99
+ "time": 1417362480,
100
+ "precipIntensity": 0,
101
+ "precipProbability": 0
102
+ },
103
+ {
104
+ "time": 1417362540,
105
+ "precipIntensity": 0,
106
+ "precipProbability": 0
107
+ },
108
+ {
109
+ "time": 1417362600,
110
+ "precipIntensity": 0,
111
+ "precipProbability": 0
112
+ },
113
+ {
114
+ "time": 1417362660,
115
+ "precipIntensity": 0,
116
+ "precipProbability": 0
117
+ },
118
+ {
119
+ "time": 1417362720,
120
+ "precipIntensity": 0,
121
+ "precipProbability": 0
122
+ },
123
+ {
124
+ "time": 1417362780,
125
+ "precipIntensity": 0,
126
+ "precipProbability": 0
127
+ },
128
+ {
129
+ "time": 1417362840,
130
+ "precipIntensity": 0,
131
+ "precipProbability": 0
132
+ },
133
+ {
134
+ "time": 1417362900,
135
+ "precipIntensity": 0,
136
+ "precipProbability": 0
137
+ },
138
+ {
139
+ "time": 1417362960,
140
+ "precipIntensity": 0,
141
+ "precipProbability": 0
142
+ },
143
+ {
144
+ "time": 1417363020,
145
+ "precipIntensity": 0,
146
+ "precipProbability": 0
147
+ },
148
+ {
149
+ "time": 1417363080,
150
+ "precipIntensity": 0,
151
+ "precipProbability": 0
152
+ },
153
+ {
154
+ "time": 1417363140,
155
+ "precipIntensity": 0,
156
+ "precipProbability": 0
157
+ },
158
+ {
159
+ "time": 1417363200,
160
+ "precipIntensity": 0,
161
+ "precipProbability": 0
162
+ },
163
+ {
164
+ "time": 1417363260,
165
+ "precipIntensity": 0,
166
+ "precipProbability": 0
167
+ },
168
+ {
169
+ "time": 1417363320,
170
+ "precipIntensity": 0,
171
+ "precipProbability": 0
172
+ },
173
+ {
174
+ "time": 1417363380,
175
+ "precipIntensity": 0,
176
+ "precipProbability": 0
177
+ },
178
+ {
179
+ "time": 1417363440,
180
+ "precipIntensity": 0,
181
+ "precipProbability": 0
182
+ },
183
+ {
184
+ "time": 1417363500,
185
+ "precipIntensity": 0,
186
+ "precipProbability": 0
187
+ },
188
+ {
189
+ "time": 1417363560,
190
+ "precipIntensity": 0,
191
+ "precipProbability": 0
192
+ },
193
+ {
194
+ "time": 1417363620,
195
+ "precipIntensity": 0,
196
+ "precipProbability": 0
197
+ },
198
+ {
199
+ "time": 1417363680,
200
+ "precipIntensity": 0,
201
+ "precipProbability": 0
202
+ },
203
+ {
204
+ "time": 1417363740,
205
+ "precipIntensity": 0,
206
+ "precipProbability": 0
207
+ },
208
+ {
209
+ "time": 1417363800,
210
+ "precipIntensity": 0,
211
+ "precipProbability": 0
212
+ },
213
+ {
214
+ "time": 1417363860,
215
+ "precipIntensity": 0,
216
+ "precipProbability": 0
217
+ },
218
+ {
219
+ "time": 1417363920,
220
+ "precipIntensity": 0,
221
+ "precipProbability": 0
222
+ },
223
+ {
224
+ "time": 1417363980,
225
+ "precipIntensity": 0,
226
+ "precipProbability": 0
227
+ },
228
+ {
229
+ "time": 1417364040,
230
+ "precipIntensity": 0,
231
+ "precipProbability": 0
232
+ },
233
+ {
234
+ "time": 1417364100,
235
+ "precipIntensity": 0,
236
+ "precipProbability": 0
237
+ },
238
+ {
239
+ "time": 1417364160,
240
+ "precipIntensity": 0,
241
+ "precipProbability": 0
242
+ },
243
+ {
244
+ "time": 1417364220,
245
+ "precipIntensity": 0,
246
+ "precipProbability": 0
247
+ },
248
+ {
249
+ "time": 1417364280,
250
+ "precipIntensity": 0,
251
+ "precipProbability": 0
252
+ },
253
+ {
254
+ "time": 1417364340,
255
+ "precipIntensity": 0,
256
+ "precipProbability": 0
257
+ },
258
+ {
259
+ "time": 1417364400,
260
+ "precipIntensity": 0,
261
+ "precipProbability": 0
262
+ },
263
+ {
264
+ "time": 1417364460,
265
+ "precipIntensity": 0,
266
+ "precipProbability": 0
267
+ },
268
+ {
269
+ "time": 1417364520,
270
+ "precipIntensity": 0,
271
+ "precipProbability": 0
272
+ },
273
+ {
274
+ "time": 1417364580,
275
+ "precipIntensity": 0,
276
+ "precipProbability": 0
277
+ },
278
+ {
279
+ "time": 1417364640,
280
+ "precipIntensity": 0,
281
+ "precipProbability": 0
282
+ },
283
+ {
284
+ "time": 1417364700,
285
+ "precipIntensity": 0,
286
+ "precipProbability": 0
287
+ },
288
+ {
289
+ "time": 1417364760,
290
+ "precipIntensity": 0,
291
+ "precipProbability": 0
292
+ },
293
+ {
294
+ "time": 1417364820,
295
+ "precipIntensity": 0,
296
+ "precipProbability": 0
297
+ },
298
+ {
299
+ "time": 1417364880,
300
+ "precipIntensity": 0,
301
+ "precipProbability": 0
302
+ },
303
+ {
304
+ "time": 1417364940,
305
+ "precipIntensity": 0,
306
+ "precipProbability": 0
307
+ },
308
+ {
309
+ "time": 1417365000,
310
+ "precipIntensity": 0,
311
+ "precipProbability": 0
312
+ },
313
+ {
314
+ "time": 1417365060,
315
+ "precipIntensity": 0,
316
+ "precipProbability": 0
317
+ },
318
+ {
319
+ "time": 1417365120,
320
+ "precipIntensity": 0,
321
+ "precipProbability": 0
322
+ },
323
+ {
324
+ "time": 1417365180,
325
+ "precipIntensity": 0,
326
+ "precipProbability": 0
327
+ },
328
+ {
329
+ "time": 1417365240,
330
+ "precipIntensity": 0,
331
+ "precipProbability": 0
332
+ },
333
+ {
334
+ "time": 1417365300,
335
+ "precipIntensity": 0,
336
+ "precipProbability": 0
337
+ }
338
+ ]
339
+ },
340
+ "hourly": {
341
+ "summary": "Flurries tomorrow morning.",
342
+ "icon": "snow",
343
+ "data": [
344
+ {
345
+ "time": 1417359600,
346
+ "summary": "Clear",
347
+ "icon": "clear-night",
348
+ "precipIntensity": 0,
349
+ "precipProbability": 0,
350
+ "temperature": 28.3,
351
+ "apparentTemperature": 23.46,
352
+ "dewPoint": 18.62,
353
+ "humidity": 0.67,
354
+ "windSpeed": 4.3,
355
+ "windBearing": 0,
356
+ "visibility": 10,
357
+ "cloudCover": 0,
358
+ "pressure": 1021.2,
359
+ "ozone": 357.98
360
+ },
361
+ {
362
+ "time": 1417363200,
363
+ "summary": "Clear",
364
+ "icon": "clear-day",
365
+ "precipIntensity": 0,
366
+ "precipProbability": 0,
367
+ "temperature": 28.45,
368
+ "apparentTemperature": 21.42,
369
+ "dewPoint": 17.36,
370
+ "humidity": 0.63,
371
+ "windSpeed": 6.73,
372
+ "windBearing": 45,
373
+ "visibility": 10,
374
+ "cloudCover": 0,
375
+ "pressure": 1021.15,
376
+ "ozone": 357.52
377
+ },
378
+ {
379
+ "time": 1417366800,
380
+ "summary": "Clear",
381
+ "icon": "clear-day",
382
+ "precipIntensity": 0,
383
+ "precipProbability": 0,
384
+ "temperature": 30.23,
385
+ "apparentTemperature": 22.86,
386
+ "dewPoint": 17.01,
387
+ "humidity": 0.57,
388
+ "windSpeed": 7.74,
389
+ "windBearing": 90,
390
+ "visibility": 10,
391
+ "cloudCover": 0,
392
+ "pressure": 1020.97,
393
+ "ozone": 357.13
394
+ },
395
+ {
396
+ "time": 1417370400,
397
+ "summary": "Clear",
398
+ "icon": "clear-day",
399
+ "precipIntensity": 0,
400
+ "precipProbability": 0,
401
+ "temperature": 32.51,
402
+ "apparentTemperature": 24.79,
403
+ "dewPoint": 16.68,
404
+ "humidity": 0.52,
405
+ "windSpeed": 9.19,
406
+ "windBearing": 135,
407
+ "visibility": 10,
408
+ "cloudCover": 0,
409
+ "pressure": 1020.68,
410
+ "ozone": 356.83
411
+ },
412
+ {
413
+ "time": 1417374000,
414
+ "summary": "Clear",
415
+ "icon": "clear-day",
416
+ "precipIntensity": 0,
417
+ "precipProbability": 0,
418
+ "temperature": 34.79,
419
+ "apparentTemperature": 26.55,
420
+ "dewPoint": 16.65,
421
+ "humidity": 0.47,
422
+ "windSpeed": 11.37,
423
+ "windBearing": 180,
424
+ "visibility": 10,
425
+ "cloudCover": 0,
426
+ "pressure": 1020.2,
427
+ "ozone": 356.87
428
+ },
429
+ {
430
+ "time": 1417377600,
431
+ "summary": "Clear",
432
+ "icon": "clear-day",
433
+ "precipIntensity": 0,
434
+ "precipProbability": 0,
435
+ "temperature": 36.54,
436
+ "apparentTemperature": 28.52,
437
+ "dewPoint": 16.53,
438
+ "humidity": 0.44,
439
+ "windSpeed": 11.94,
440
+ "windBearing": 225,
441
+ "visibility": 10,
442
+ "cloudCover": 0,
443
+ "pressure": 1019.58,
444
+ "ozone": 357.01
445
+ },
446
+ {
447
+ "time": 1417381200,
448
+ "summary": "Clear",
449
+ "icon": "clear-day",
450
+ "precipIntensity": 0,
451
+ "precipProbability": 0,
452
+ "temperature": 38.72,
453
+ "apparentTemperature": 30.97,
454
+ "dewPoint": 17.17,
455
+ "humidity": 0.41,
456
+ "windSpeed": 12.71,
457
+ "windBearing": 270,
458
+ "visibility": 10,
459
+ "cloudCover": 0,
460
+ "pressure": 1019.03,
461
+ "ozone": 356.5
462
+ },
463
+ {
464
+ "time": 1417384800,
465
+ "summary": "Clear",
466
+ "icon": "clear-day",
467
+ "precipIntensity": 0,
468
+ "precipProbability": 0,
469
+ "temperature": 38.99,
470
+ "apparentTemperature": 31.45,
471
+ "dewPoint": 17.38,
472
+ "humidity": 0.41,
473
+ "windSpeed": 12.35,
474
+ "windBearing": 315,
475
+ "visibility": 10,
476
+ "cloudCover": 0,
477
+ "pressure": 1018.67,
478
+ "ozone": 354.67
479
+ },
480
+ {
481
+ "time": 1417388400,
482
+ "summary": "Clear",
483
+ "icon": "clear-day",
484
+ "precipIntensity": 0,
485
+ "precipProbability": 0,
486
+ "temperature": 37.95,
487
+ "apparentTemperature": 30.41,
488
+ "dewPoint": 17.18,
489
+ "humidity": 0.42,
490
+ "windSpeed": 11.63,
491
+ "windBearing": 359,
492
+ "visibility": 10,
493
+ "cloudCover": 0,
494
+ "pressure": 1018.44,
495
+ "ozone": 352.19
496
+ },
497
+ {
498
+ "time": 1417392000,
499
+ "summary": "Clear",
500
+ "icon": "clear-day",
501
+ "precipIntensity": 0,
502
+ "precipProbability": 0,
503
+ "temperature": 36.56,
504
+ "apparentTemperature": 28.96,
505
+ "dewPoint": 16.86,
506
+ "humidity": 0.44,
507
+ "windSpeed": 10.93,
508
+ "windBearing": 83,
509
+ "visibility": 10,
510
+ "cloudCover": 0,
511
+ "pressure": 1018.42,
512
+ "ozone": 350.33
513
+ },
514
+ {
515
+ "time": 1417395600,
516
+ "summary": "Clear",
517
+ "icon": "clear-night",
518
+ "precipIntensity": 0,
519
+ "precipProbability": 0,
520
+ "temperature": 34.59,
521
+ "apparentTemperature": 26.7,
522
+ "dewPoint": 15.91,
523
+ "humidity": 0.46,
524
+ "windSpeed": 10.5,
525
+ "windBearing": 85,
526
+ "visibility": 10,
527
+ "cloudCover": 0,
528
+ "pressure": 1018.73,
529
+ "ozone": 349.53
530
+ },
531
+ {
532
+ "time": 1417399200,
533
+ "summary": "Clear",
534
+ "icon": "clear-night",
535
+ "precipIntensity": 0,
536
+ "precipProbability": 0,
537
+ "temperature": 32.8,
538
+ "apparentTemperature": 24.6,
539
+ "dewPoint": 14.8,
540
+ "humidity": 0.47,
541
+ "windSpeed": 10.23,
542
+ "windBearing": 87,
543
+ "visibility": 10,
544
+ "cloudCover": 0.01,
545
+ "pressure": 1019.24,
546
+ "ozone": 349.36
547
+ },
548
+ {
549
+ "time": 1417402800,
550
+ "summary": "Clear",
551
+ "icon": "clear-night",
552
+ "precipIntensity": 0,
553
+ "precipProbability": 0,
554
+ "temperature": 31.59,
555
+ "apparentTemperature": 23.21,
556
+ "dewPoint": 14.27,
557
+ "humidity": 0.48,
558
+ "windSpeed": 10.01,
559
+ "windBearing": 90,
560
+ "visibility": 10,
561
+ "cloudCover": 0.01,
562
+ "pressure": 1019.63,
563
+ "ozone": 349.82
564
+ },
565
+ {
566
+ "time": 1417406400,
567
+ "summary": "Clear",
568
+ "icon": "clear-night",
569
+ "precipIntensity": 0,
570
+ "precipProbability": 0,
571
+ "temperature": 30.8,
572
+ "apparentTemperature": 22.39,
573
+ "dewPoint": 14.09,
574
+ "humidity": 0.49,
575
+ "windSpeed": 9.72,
576
+ "windBearing": 91,
577
+ "visibility": 10,
578
+ "cloudCover": 0.01,
579
+ "pressure": 1019.78,
580
+ "ozone": 351.06
581
+ },
582
+ {
583
+ "time": 1417410000,
584
+ "summary": "Clear",
585
+ "icon": "clear-night",
586
+ "precipIntensity": 0,
587
+ "precipProbability": 0,
588
+ "temperature": 30.63,
589
+ "apparentTemperature": 22.45,
590
+ "dewPoint": 14.54,
591
+ "humidity": 0.51,
592
+ "windSpeed": 9.22,
593
+ "windBearing": 90,
594
+ "visibility": 10,
595
+ "cloudCover": 0.01,
596
+ "pressure": 1019.81,
597
+ "ozone": 352.93
598
+ },
599
+ {
600
+ "time": 1417413600,
601
+ "summary": "Clear",
602
+ "icon": "clear-night",
603
+ "precipIntensity": 0,
604
+ "precipProbability": 0,
605
+ "temperature": 30.48,
606
+ "apparentTemperature": 22.55,
607
+ "dewPoint": 14.97,
608
+ "humidity": 0.52,
609
+ "windSpeed": 8.73,
610
+ "windBearing": 90,
611
+ "visibility": 10,
612
+ "cloudCover": 0.02,
613
+ "pressure": 1019.78,
614
+ "ozone": 354.99
615
+ },
616
+ {
617
+ "time": 1417417200,
618
+ "summary": "Clear",
619
+ "icon": "clear-night",
620
+ "precipIntensity": 0,
621
+ "precipProbability": 0,
622
+ "temperature": 30.22,
623
+ "apparentTemperature": 22.73,
624
+ "dewPoint": 15.41,
625
+ "humidity": 0.54,
626
+ "windSpeed": 7.91,
627
+ "windBearing": 89,
628
+ "visibility": 10,
629
+ "cloudCover": 0.03,
630
+ "pressure": 1019.66,
631
+ "ozone": 357.65
632
+ },
633
+ {
634
+ "time": 1417420800,
635
+ "summary": "Clear",
636
+ "icon": "clear-night",
637
+ "precipIntensity": 0,
638
+ "precipProbability": 0,
639
+ "temperature": 29.94,
640
+ "apparentTemperature": 22.73,
641
+ "dewPoint": 16.03,
642
+ "humidity": 0.56,
643
+ "windSpeed": 7.41,
644
+ "windBearing": 89,
645
+ "visibility": 10,
646
+ "cloudCover": 0.06,
647
+ "pressure": 1019.48,
648
+ "ozone": 360.5
649
+ },
650
+ {
651
+ "time": 1417424400,
652
+ "summary": "Clear",
653
+ "icon": "clear-night",
654
+ "precipIntensity": 0,
655
+ "precipProbability": 0,
656
+ "temperature": 29.41,
657
+ "apparentTemperature": 22.2,
658
+ "dewPoint": 16.32,
659
+ "humidity": 0.58,
660
+ "windSpeed": 7.24,
661
+ "windBearing": 86,
662
+ "visibility": 10,
663
+ "cloudCover": 0.1,
664
+ "pressure": 1019.31,
665
+ "ozone": 361.88
666
+ },
667
+ {
668
+ "time": 1417428000,
669
+ "summary": "Clear",
670
+ "icon": "clear-night",
671
+ "precipIntensity": 0,
672
+ "precipProbability": 0,
673
+ "temperature": 29.22,
674
+ "apparentTemperature": 22.14,
675
+ "dewPoint": 16.99,
676
+ "humidity": 0.6,
677
+ "windSpeed": 7,
678
+ "windBearing": 83,
679
+ "visibility": 10,
680
+ "cloudCover": 0.2,
681
+ "pressure": 1019.16,
682
+ "ozone": 361.01
683
+ },
684
+ {
685
+ "time": 1417431600,
686
+ "summary": "Partly Cloudy",
687
+ "icon": "partly-cloudy-night",
688
+ "precipIntensity": 0,
689
+ "precipProbability": 0,
690
+ "temperature": 29.29,
691
+ "apparentTemperature": 22.48,
692
+ "dewPoint": 17.9,
693
+ "humidity": 0.62,
694
+ "windSpeed": 6.67,
695
+ "windBearing": 79,
696
+ "visibility": 10,
697
+ "cloudCover": 0.33,
698
+ "pressure": 1019.03,
699
+ "ozone": 358.66
700
+ },
701
+ {
702
+ "time": 1417435200,
703
+ "summary": "Partly Cloudy",
704
+ "icon": "partly-cloudy-night",
705
+ "precipIntensity": 0,
706
+ "precipProbability": 0,
707
+ "temperature": 28.86,
708
+ "apparentTemperature": 22.31,
709
+ "dewPoint": 18.15,
710
+ "humidity": 0.64,
711
+ "windSpeed": 6.22,
712
+ "windBearing": 76,
713
+ "visibility": 10,
714
+ "cloudCover": 0.43,
715
+ "pressure": 1018.92,
716
+ "ozone": 355.42
717
+ },
718
+ {
719
+ "time": 1417438800,
720
+ "summary": "Partly Cloudy",
721
+ "icon": "partly-cloudy-night",
722
+ "precipIntensity": 0,
723
+ "precipProbability": 0,
724
+ "temperature": 28.44,
725
+ "apparentTemperature": 22.34,
726
+ "dewPoint": 18.26,
727
+ "humidity": 0.65,
728
+ "windSpeed": 5.6,
729
+ "windBearing": 74,
730
+ "visibility": 10,
731
+ "cloudCover": 0.49,
732
+ "pressure": 1018.76,
733
+ "ozone": 350.78
734
+ },
735
+ {
736
+ "time": 1417442400,
737
+ "summary": "Flurries",
738
+ "icon": "snow",
739
+ "precipIntensity": 0.0018,
740
+ "precipProbability": 0.01,
741
+ "precipType": "snow",
742
+ "precipAccumulation": 0.017636097742098344,
743
+ "temperature": 28.5,
744
+ "apparentTemperature": 22.99,
745
+ "dewPoint": 18.51,
746
+ "humidity": 0.66,
747
+ "windSpeed": 4.97,
748
+ "windBearing": 72,
749
+ "visibility": 10,
750
+ "cloudCover": 0.55,
751
+ "pressure": 1018.56,
752
+ "ozone": 345.25
753
+ },
754
+ {
755
+ "time": 1417446000,
756
+ "summary": "Flurries",
757
+ "icon": "snow",
758
+ "precipIntensity": 0.0026,
759
+ "precipProbability": 0.03,
760
+ "precipType": "snow",
761
+ "precipAccumulation": 0.02451729314873083,
762
+ "temperature": 29.08,
763
+ "apparentTemperature": 24.14,
764
+ "dewPoint": 19.17,
765
+ "humidity": 0.66,
766
+ "windSpeed": 4.51,
767
+ "windBearing": 71,
768
+ "visibility": 10,
769
+ "cloudCover": 0.61,
770
+ "pressure": 1018.51,
771
+ "ozone": 340.85
772
+ },
773
+ {
774
+ "time": 1417449600,
775
+ "summary": "Light Snow",
776
+ "icon": "snow",
777
+ "precipIntensity": 0.0031,
778
+ "precipProbability": 0.04,
779
+ "precipType": "snow",
780
+ "precipAccumulation": 0.02622178965010701,
781
+ "temperature": 30.64,
782
+ "apparentTemperature": 26.31,
783
+ "dewPoint": 20.66,
784
+ "humidity": 0.66,
785
+ "windSpeed": 4.17,
786
+ "windBearing": 71,
787
+ "visibility": 10,
788
+ "cloudCover": 0.75,
789
+ "pressure": 1018.73,
790
+ "ozone": 338.41
791
+ },
792
+ {
793
+ "time": 1417453200,
794
+ "summary": "Light Snow",
795
+ "icon": "snow",
796
+ "precipIntensity": 0.0035,
797
+ "precipProbability": 0.04,
798
+ "precipType": "snow",
799
+ "precipAccumulation": 0.0266,
800
+ "temperature": 32.55,
801
+ "apparentTemperature": 29.21,
802
+ "dewPoint": 22.4,
803
+ "humidity": 0.66,
804
+ "windSpeed": 3.57,
805
+ "windBearing": 71,
806
+ "visibility": 10,
807
+ "cloudCover": 0.84,
808
+ "pressure": 1019.12,
809
+ "ozone": 337.1
810
+ },
811
+ {
812
+ "time": 1417456800,
813
+ "summary": "Mostly Cloudy",
814
+ "icon": "partly-cloudy-day",
815
+ "precipIntensity": 0.0036,
816
+ "precipProbability": 0.04,
817
+ "precipType": "rain",
818
+ "temperature": 34.38,
819
+ "apparentTemperature": 34.38,
820
+ "dewPoint": 24.1,
821
+ "humidity": 0.66,
822
+ "windSpeed": 2.87,
823
+ "windBearing": 69,
824
+ "visibility": 10,
825
+ "cloudCover": 0.88,
826
+ "pressure": 1019.32,
827
+ "ozone": 336.56
828
+ },
829
+ {
830
+ "time": 1417460400,
831
+ "summary": "Mostly Cloudy",
832
+ "icon": "partly-cloudy-day",
833
+ "precipIntensity": 0.0034,
834
+ "precipProbability": 0.04,
835
+ "precipType": "rain",
836
+ "temperature": 36.2,
837
+ "apparentTemperature": 36.2,
838
+ "dewPoint": 25.77,
839
+ "humidity": 0.65,
840
+ "windSpeed": 2.45,
841
+ "windBearing": 68,
842
+ "visibility": 10,
843
+ "cloudCover": 0.84,
844
+ "pressure": 1019.09,
845
+ "ozone": 336.99
846
+ },
847
+ {
848
+ "time": 1417464000,
849
+ "summary": "Mostly Cloudy",
850
+ "icon": "partly-cloudy-day",
851
+ "precipIntensity": 0.0029,
852
+ "precipProbability": 0.03,
853
+ "precipType": "rain",
854
+ "temperature": 40.07,
855
+ "apparentTemperature": 40.07,
856
+ "dewPoint": 29.44,
857
+ "humidity": 0.65,
858
+ "windSpeed": 2.09,
859
+ "windBearing": 66,
860
+ "visibility": 10,
861
+ "cloudCover": 0.78,
862
+ "pressure": 1018.63,
863
+ "ozone": 338.2
864
+ },
865
+ {
866
+ "time": 1417467600,
867
+ "summary": "Mostly Cloudy",
868
+ "icon": "partly-cloudy-day",
869
+ "precipIntensity": 0.0026,
870
+ "precipProbability": 0.02,
871
+ "precipType": "rain",
872
+ "temperature": 41.32,
873
+ "apparentTemperature": 41.32,
874
+ "dewPoint": 31.01,
875
+ "humidity": 0.66,
876
+ "windSpeed": 1.78,
877
+ "windBearing": 61,
878
+ "visibility": 10,
879
+ "cloudCover": 0.73,
880
+ "pressure": 1018.25,
881
+ "ozone": 339.24
882
+ },
883
+ {
884
+ "time": 1417471200,
885
+ "summary": "Mostly Cloudy",
886
+ "icon": "partly-cloudy-day",
887
+ "precipIntensity": 0.0025,
888
+ "precipProbability": 0.02,
889
+ "precipType": "rain",
890
+ "temperature": 41.18,
891
+ "apparentTemperature": 41.18,
892
+ "dewPoint": 31.97,
893
+ "humidity": 0.69,
894
+ "windSpeed": 1.53,
895
+ "windBearing": 52,
896
+ "visibility": 10,
897
+ "cloudCover": 0.75,
898
+ "pressure": 1018.07,
899
+ "ozone": 339.9
900
+ },
901
+ {
902
+ "time": 1417474800,
903
+ "summary": "Mostly Cloudy",
904
+ "icon": "partly-cloudy-day",
905
+ "precipIntensity": 0.0026,
906
+ "precipProbability": 0.02,
907
+ "precipType": "rain",
908
+ "temperature": 39.7,
909
+ "apparentTemperature": 39.7,
910
+ "dewPoint": 31.95,
911
+ "humidity": 0.74,
912
+ "windSpeed": 1.39,
913
+ "windBearing": 41,
914
+ "visibility": 10,
915
+ "cloudCover": 0.83,
916
+ "pressure": 1017.99,
917
+ "ozone": 340.4
918
+ },
919
+ {
920
+ "time": 1417478400,
921
+ "summary": "Mostly Cloudy",
922
+ "icon": "partly-cloudy-day",
923
+ "precipIntensity": 0.0027,
924
+ "precipProbability": 0.02,
925
+ "precipType": "rain",
926
+ "temperature": 38.78,
927
+ "apparentTemperature": 38.78,
928
+ "dewPoint": 32.24,
929
+ "humidity": 0.77,
930
+ "windSpeed": 1.47,
931
+ "windBearing": 29,
932
+ "visibility": 10,
933
+ "cloudCover": 0.87,
934
+ "pressure": 1017.96,
935
+ "ozone": 340.49
936
+ },
937
+ {
938
+ "time": 1417482000,
939
+ "summary": "Mostly Cloudy",
940
+ "icon": "partly-cloudy-night",
941
+ "precipIntensity": 0.0028,
942
+ "precipProbability": 0.02,
943
+ "precipType": "rain",
944
+ "temperature": 38.06,
945
+ "apparentTemperature": 38.06,
946
+ "dewPoint": 32.33,
947
+ "humidity": 0.8,
948
+ "windSpeed": 1.84,
949
+ "windBearing": 23,
950
+ "visibility": 10,
951
+ "cloudCover": 0.87,
952
+ "pressure": 1017.96,
953
+ "ozone": 340.05
954
+ },
955
+ {
956
+ "time": 1417485600,
957
+ "summary": "Mostly Cloudy",
958
+ "icon": "partly-cloudy-night",
959
+ "precipIntensity": 0.0028,
960
+ "precipProbability": 0.02,
961
+ "precipType": "rain",
962
+ "temperature": 37.19,
963
+ "apparentTemperature": 37.19,
964
+ "dewPoint": 32.11,
965
+ "humidity": 0.82,
966
+ "windSpeed": 2.37,
967
+ "windBearing": 21,
968
+ "visibility": 10,
969
+ "cloudCover": 0.84,
970
+ "pressure": 1018.01,
971
+ "ozone": 339.2
972
+ },
973
+ {
974
+ "time": 1417489200,
975
+ "summary": "Mostly Cloudy",
976
+ "icon": "partly-cloudy-night",
977
+ "precipIntensity": 0.0029,
978
+ "precipProbability": 0.02,
979
+ "precipType": "rain",
980
+ "temperature": 36.16,
981
+ "apparentTemperature": 36.16,
982
+ "dewPoint": 31.56,
983
+ "humidity": 0.83,
984
+ "windSpeed": 2.82,
985
+ "windBearing": 19,
986
+ "visibility": 10,
987
+ "cloudCover": 0.79,
988
+ "pressure": 1018.12,
989
+ "ozone": 338.07
990
+ },
991
+ {
992
+ "time": 1417492800,
993
+ "summary": "Mostly Cloudy",
994
+ "icon": "partly-cloudy-night",
995
+ "precipIntensity": 0.003,
996
+ "precipProbability": 0.02,
997
+ "precipType": "rain",
998
+ "temperature": 35.03,
999
+ "apparentTemperature": 32.57,
1000
+ "dewPoint": 30.72,
1001
+ "humidity": 0.84,
1002
+ "windSpeed": 3.13,
1003
+ "windBearing": 16,
1004
+ "visibility": 10,
1005
+ "cloudCover": 0.66,
1006
+ "pressure": 1018.32,
1007
+ "ozone": 336.55
1008
+ },
1009
+ {
1010
+ "time": 1417496400,
1011
+ "summary": "Partly Cloudy",
1012
+ "icon": "partly-cloudy-night",
1013
+ "precipIntensity": 0.003,
1014
+ "precipProbability": 0.02,
1015
+ "precipType": "rain",
1016
+ "temperature": 34.13,
1017
+ "apparentTemperature": 31.15,
1018
+ "dewPoint": 29.96,
1019
+ "humidity": 0.84,
1020
+ "windSpeed": 3.45,
1021
+ "windBearing": 14,
1022
+ "visibility": 10,
1023
+ "cloudCover": 0.51,
1024
+ "pressure": 1018.58,
1025
+ "ozone": 334.74
1026
+ },
1027
+ {
1028
+ "time": 1417500000,
1029
+ "summary": "Partly Cloudy",
1030
+ "icon": "partly-cloudy-night",
1031
+ "precipIntensity": 0.003,
1032
+ "precipProbability": 0.02,
1033
+ "precipType": "rain",
1034
+ "temperature": 33.44,
1035
+ "apparentTemperature": 30.24,
1036
+ "dewPoint": 29.35,
1037
+ "humidity": 0.85,
1038
+ "windSpeed": 3.56,
1039
+ "windBearing": 13,
1040
+ "visibility": 10,
1041
+ "cloudCover": 0.42,
1042
+ "pressure": 1018.78,
1043
+ "ozone": 333.12
1044
+ },
1045
+ {
1046
+ "time": 1417503600,
1047
+ "summary": "Flurries",
1048
+ "icon": "snow",
1049
+ "precipIntensity": 0.0029,
1050
+ "precipProbability": 0.02,
1051
+ "precipType": "snow",
1052
+ "precipAccumulation": 0.022039999999999997,
1053
+ "temperature": 32.91,
1054
+ "apparentTemperature": 29.78,
1055
+ "dewPoint": 28.88,
1056
+ "humidity": 0.85,
1057
+ "windSpeed": 3.44,
1058
+ "windBearing": 14,
1059
+ "visibility": 10,
1060
+ "cloudCover": 0.37,
1061
+ "pressure": 1018.94,
1062
+ "ozone": 331.87
1063
+ },
1064
+ {
1065
+ "time": 1417507200,
1066
+ "summary": "Flurries",
1067
+ "icon": "snow",
1068
+ "precipIntensity": 0.0027,
1069
+ "precipProbability": 0.02,
1070
+ "precipType": "snow",
1071
+ "precipAccumulation": 0.02052,
1072
+ "temperature": 32.42,
1073
+ "apparentTemperature": 29.54,
1074
+ "dewPoint": 28.4,
1075
+ "humidity": 0.85,
1076
+ "windSpeed": 3.19,
1077
+ "windBearing": 14,
1078
+ "visibility": 10,
1079
+ "cloudCover": 0.33,
1080
+ "pressure": 1019.06,
1081
+ "ozone": 330.81
1082
+ },
1083
+ {
1084
+ "time": 1417510800,
1085
+ "summary": "Flurries",
1086
+ "icon": "snow",
1087
+ "precipIntensity": 0.0025,
1088
+ "precipProbability": 0.02,
1089
+ "precipType": "snow",
1090
+ "precipAccumulation": 0.01916140182525712,
1091
+ "temperature": 31.95,
1092
+ "apparentTemperature": 29.14,
1093
+ "dewPoint": 27.9,
1094
+ "humidity": 0.85,
1095
+ "windSpeed": 3.09,
1096
+ "windBearing": 17,
1097
+ "visibility": 10,
1098
+ "cloudCover": 0.3,
1099
+ "pressure": 1019.08,
1100
+ "ozone": 329.79
1101
+ },
1102
+ {
1103
+ "time": 1417514400,
1104
+ "summary": "Flurries",
1105
+ "icon": "snow",
1106
+ "precipIntensity": 0.0022,
1107
+ "precipProbability": 0.01,
1108
+ "precipType": "snow",
1109
+ "precipAccumulation": 0.01763020738625114,
1110
+ "temperature": 31.37,
1111
+ "apparentTemperature": 28.27,
1112
+ "dewPoint": 27.26,
1113
+ "humidity": 0.85,
1114
+ "windSpeed": 3.25,
1115
+ "windBearing": 19,
1116
+ "visibility": 10,
1117
+ "cloudCover": 0.28,
1118
+ "pressure": 1018.9,
1119
+ "ozone": 328.54
1120
+ },
1121
+ {
1122
+ "time": 1417518000,
1123
+ "summary": "Flurries",
1124
+ "icon": "snow",
1125
+ "precipIntensity": 0.002,
1126
+ "precipProbability": 0.01,
1127
+ "precipType": "snow",
1128
+ "precipAccumulation": 0.016684519011263443,
1129
+ "temperature": 30.83,
1130
+ "apparentTemperature": 27.25,
1131
+ "dewPoint": 26.62,
1132
+ "humidity": 0.84,
1133
+ "windSpeed": 3.56,
1134
+ "windBearing": 22,
1135
+ "visibility": 10,
1136
+ "cloudCover": 0.26,
1137
+ "pressure": 1018.56,
1138
+ "ozone": 327.32
1139
+ },
1140
+ {
1141
+ "time": 1417521600,
1142
+ "summary": "Flurries",
1143
+ "icon": "snow",
1144
+ "precipIntensity": 0.0017,
1145
+ "precipProbability": 0.01,
1146
+ "precipType": "snow",
1147
+ "precipAccumulation": 0.014410994373598785,
1148
+ "temperature": 30.61,
1149
+ "apparentTemperature": 26.59,
1150
+ "dewPoint": 26.24,
1151
+ "humidity": 0.84,
1152
+ "windSpeed": 3.9,
1153
+ "windBearing": 26,
1154
+ "visibility": 10,
1155
+ "cloudCover": 0.26,
1156
+ "pressure": 1018.25,
1157
+ "ozone": 326.84
1158
+ },
1159
+ {
1160
+ "time": 1417525200,
1161
+ "summary": "Partly Cloudy",
1162
+ "icon": "partly-cloudy-night",
1163
+ "precipIntensity": 0.0015,
1164
+ "precipProbability": 0.01,
1165
+ "precipType": "snow",
1166
+ "precipAccumulation": 0.012863152140267911,
1167
+ "temperature": 30.45,
1168
+ "apparentTemperature": 26.09,
1169
+ "dewPoint": 25.92,
1170
+ "humidity": 0.83,
1171
+ "windSpeed": 4.18,
1172
+ "windBearing": 29,
1173
+ "visibility": 10,
1174
+ "cloudCover": 0.25,
1175
+ "pressure": 1018.21,
1176
+ "ozone": 327.55
1177
+ },
1178
+ {
1179
+ "time": 1417528800,
1180
+ "summary": "Partly Cloudy",
1181
+ "icon": "partly-cloudy-night",
1182
+ "precipIntensity": 0.0013,
1183
+ "precipProbability": 0.01,
1184
+ "precipType": "snow",
1185
+ "precipAccumulation": 0.011164078432158692,
1186
+ "temperature": 30.43,
1187
+ "apparentTemperature": 25.76,
1188
+ "dewPoint": 25.67,
1189
+ "humidity": 0.82,
1190
+ "windSpeed": 4.46,
1191
+ "windBearing": 34,
1192
+ "visibility": 10,
1193
+ "cloudCover": 0.25,
1194
+ "pressure": 1018.28,
1195
+ "ozone": 328.99
1196
+ },
1197
+ {
1198
+ "time": 1417532400,
1199
+ "summary": "Clear",
1200
+ "icon": "clear-night",
1201
+ "precipIntensity": 0,
1202
+ "precipProbability": 0,
1203
+ "temperature": 31.24,
1204
+ "apparentTemperature": 26.33,
1205
+ "dewPoint": 25.94,
1206
+ "humidity": 0.8,
1207
+ "windSpeed": 4.85,
1208
+ "windBearing": 40,
1209
+ "visibility": 10,
1210
+ "cloudCover": 0.23,
1211
+ "pressure": 1018.31,
1212
+ "ozone": 330.44
1213
+ }
1214
+ ]
1215
+ },
1216
+ "daily": {
1217
+ "summary": "Mixed precipitation tomorrow through Sunday, with temperatures rising to 52°F on Sunday.",
1218
+ "icon": "rain",
1219
+ "data": [
1220
+ {
1221
+ "time": 1417334400,
1222
+ "summary": "Clear throughout the day.",
1223
+ "icon": "clear-day",
1224
+ "sunriseTime": 1417361458,
1225
+ "sunsetTime": 1417393855,
1226
+ "moonPhase": 0.3,
1227
+ "precipIntensity": 0,
1228
+ "precipIntensityMax": 0,
1229
+ "precipProbability": 0,
1230
+ "temperatureMin": 28.17,
1231
+ "temperatureMinTime": 1417345200,
1232
+ "temperatureMax": 38.99,
1233
+ "temperatureMaxTime": 1417384800,
1234
+ "apparentTemperatureMin": 21.42,
1235
+ "apparentTemperatureMinTime": 1417363200,
1236
+ "apparentTemperatureMax": 31.45,
1237
+ "apparentTemperatureMaxTime": 1417384800,
1238
+ "dewPoint": 18.26,
1239
+ "humidity": 0.58,
1240
+ "windSpeed": 7.67,
1241
+ "windBearing": 82,
1242
+ "visibility": 9.9,
1243
+ "cloudCover": 0.02,
1244
+ "pressure": 1019.92,
1245
+ "ozone": 355.91
1246
+ },
1247
+ {
1248
+ "time": 1417420800,
1249
+ "summary": "Light snow in the morning and overnight.",
1250
+ "icon": "snow",
1251
+ "sunriseTime": 1417447928,
1252
+ "sunsetTime": 1417480229,
1253
+ "moonPhase": 0.34,
1254
+ "precipIntensity": 0.0022,
1255
+ "precipIntensityMax": 0.0036,
1256
+ "precipIntensityMaxTime": 1417456800,
1257
+ "precipProbability": 0.04,
1258
+ "precipType": "snow",
1259
+ "precipAccumulation": 0.417,
1260
+ "temperatureMin": 28.44,
1261
+ "temperatureMinTime": 1417438800,
1262
+ "temperatureMax": 41.32,
1263
+ "temperatureMaxTime": 1417467600,
1264
+ "apparentTemperatureMin": 22.14,
1265
+ "apparentTemperatureMinTime": 1417428000,
1266
+ "apparentTemperatureMax": 41.32,
1267
+ "apparentTemperatureMaxTime": 1417467600,
1268
+ "dewPoint": 25.24,
1269
+ "humidity": 0.71,
1270
+ "windSpeed": 3.42,
1271
+ "windBearing": 62,
1272
+ "visibility": 10,
1273
+ "cloudCover": 0.6,
1274
+ "pressure": 1018.65,
1275
+ "ozone": 343.14
1276
+ },
1277
+ {
1278
+ "time": 1417507200,
1279
+ "summary": "Partly cloudy starting in the evening.",
1280
+ "icon": "partly-cloudy-night",
1281
+ "sunriseTime": 1417534397,
1282
+ "sunsetTime": 1417566606,
1283
+ "moonPhase": 0.38,
1284
+ "precipIntensity": 0.0008,
1285
+ "precipIntensityMax": 0.0027,
1286
+ "precipIntensityMaxTime": 1417507200,
1287
+ "precipProbability": 0.02,
1288
+ "precipType": "snow",
1289
+ "precipAccumulation": 0.146,
1290
+ "temperatureMin": 30.43,
1291
+ "temperatureMinTime": 1417528800,
1292
+ "temperatureMax": 45.5,
1293
+ "temperatureMaxTime": 1417554000,
1294
+ "apparentTemperatureMin": 25.76,
1295
+ "apparentTemperatureMinTime": 1417528800,
1296
+ "apparentTemperatureMax": 40.76,
1297
+ "apparentTemperatureMaxTime": 1417554000,
1298
+ "dewPoint": 28.4,
1299
+ "humidity": 0.73,
1300
+ "windSpeed": 6.85,
1301
+ "windBearing": 61,
1302
+ "visibility": 10,
1303
+ "cloudCover": 0.21,
1304
+ "pressure": 1016.48,
1305
+ "ozone": 333.32
1306
+ },
1307
+ {
1308
+ "time": 1417593600,
1309
+ "summary": "Light rain overnight.",
1310
+ "icon": "rain",
1311
+ "sunriseTime": 1417620864,
1312
+ "sunsetTime": 1417652985,
1313
+ "moonPhase": 0.41,
1314
+ "precipIntensity": 0.0007,
1315
+ "precipIntensityMax": 0.0044,
1316
+ "precipIntensityMaxTime": 1417676400,
1317
+ "precipProbability": 0.14,
1318
+ "precipType": "rain",
1319
+ "temperatureMin": 33.97,
1320
+ "temperatureMinTime": 1417611600,
1321
+ "temperatureMax": 44.67,
1322
+ "temperatureMaxTime": 1417640400,
1323
+ "apparentTemperatureMin": 27.04,
1324
+ "apparentTemperatureMinTime": 1417593600,
1325
+ "apparentTemperatureMax": 40.92,
1326
+ "apparentTemperatureMaxTime": 1417640400,
1327
+ "dewPoint": 29.68,
1328
+ "humidity": 0.7,
1329
+ "windSpeed": 6.94,
1330
+ "windBearing": 83,
1331
+ "visibility": 10,
1332
+ "cloudCover": 0.73,
1333
+ "pressure": 1013.45,
1334
+ "ozone": 328.64
1335
+ },
1336
+ {
1337
+ "time": 1417680000,
1338
+ "summary": "Light rain throughout the day.",
1339
+ "icon": "rain",
1340
+ "sunriseTime": 1417707330,
1341
+ "sunsetTime": 1417739367,
1342
+ "moonPhase": 0.45,
1343
+ "precipIntensity": 0.0131,
1344
+ "precipIntensityMax": 0.0209,
1345
+ "precipIntensityMaxTime": 1417705200,
1346
+ "precipProbability": 1,
1347
+ "precipType": "rain",
1348
+ "temperatureMin": 39.41,
1349
+ "temperatureMinTime": 1417694400,
1350
+ "temperatureMax": 45.53,
1351
+ "temperatureMaxTime": 1417726800,
1352
+ "apparentTemperatureMin": 36.33,
1353
+ "apparentTemperatureMinTime": 1417680000,
1354
+ "apparentTemperatureMax": 45.53,
1355
+ "apparentTemperatureMaxTime": 1417726800,
1356
+ "dewPoint": 39.95,
1357
+ "humidity": 0.93,
1358
+ "windSpeed": 2.73,
1359
+ "windBearing": 114,
1360
+ "cloudCover": 0.76,
1361
+ "pressure": 1014.17,
1362
+ "ozone": 322.66
1363
+ },
1364
+ {
1365
+ "time": 1417766400,
1366
+ "summary": "Drizzle until evening, starting again overnight.",
1367
+ "icon": "rain",
1368
+ "sunriseTime": 1417793794,
1369
+ "sunsetTime": 1417825752,
1370
+ "moonPhase": 0.48,
1371
+ "precipIntensity": 0.0053,
1372
+ "precipIntensityMax": 0.008,
1373
+ "precipIntensityMaxTime": 1417766400,
1374
+ "precipProbability": 0.4,
1375
+ "precipType": "rain",
1376
+ "temperatureMin": 37.76,
1377
+ "temperatureMinTime": 1417788000,
1378
+ "temperatureMax": 49.43,
1379
+ "temperatureMaxTime": 1417813200,
1380
+ "apparentTemperatureMin": 36.73,
1381
+ "apparentTemperatureMinTime": 1417791600,
1382
+ "apparentTemperatureMax": 49.43,
1383
+ "apparentTemperatureMaxTime": 1417813200,
1384
+ "dewPoint": 41.28,
1385
+ "humidity": 0.93,
1386
+ "windSpeed": 2.77,
1387
+ "windBearing": 148,
1388
+ "cloudCover": 0.42,
1389
+ "pressure": 1020.74,
1390
+ "ozone": 320.13
1391
+ },
1392
+ {
1393
+ "time": 1417852800,
1394
+ "summary": "Drizzle in the morning.",
1395
+ "icon": "rain",
1396
+ "sunriseTime": 1417880256,
1397
+ "sunsetTime": 1417912139,
1398
+ "moonPhase": 0.52,
1399
+ "precipIntensity": 0.0047,
1400
+ "precipIntensityMax": 0.0069,
1401
+ "precipIntensityMaxTime": 1417867200,
1402
+ "precipProbability": 0.31,
1403
+ "precipType": "rain",
1404
+ "temperatureMin": 42.55,
1405
+ "temperatureMinTime": 1417935600,
1406
+ "temperatureMax": 52.24,
1407
+ "temperatureMaxTime": 1417899600,
1408
+ "apparentTemperatureMin": 42.55,
1409
+ "apparentTemperatureMinTime": 1417935600,
1410
+ "apparentTemperatureMax": 52.24,
1411
+ "apparentTemperatureMaxTime": 1417899600,
1412
+ "dewPoint": 43.98,
1413
+ "humidity": 0.91,
1414
+ "windSpeed": 2.67,
1415
+ "windBearing": 143,
1416
+ "cloudCover": 0.62,
1417
+ "pressure": 1026.63,
1418
+ "ozone": 310.15
1419
+ },
1420
+ {
1421
+ "time": 1417939200,
1422
+ "summary": "Drizzle until afternoon.",
1423
+ "icon": "rain",
1424
+ "sunriseTime": 1417966717,
1425
+ "sunsetTime": 1417998529,
1426
+ "moonPhase": 0.55,
1427
+ "precipIntensity": 0.0037,
1428
+ "precipIntensityMax": 0.006,
1429
+ "precipIntensityMaxTime": 1417978800,
1430
+ "precipProbability": 0.24,
1431
+ "precipType": "rain",
1432
+ "temperatureMin": 39.65,
1433
+ "temperatureMinTime": 1417960800,
1434
+ "temperatureMax": 52.38,
1435
+ "temperatureMaxTime": 1417986000,
1436
+ "apparentTemperatureMin": 38.33,
1437
+ "apparentTemperatureMinTime": 1418022000,
1438
+ "apparentTemperatureMax": 52.38,
1439
+ "apparentTemperatureMaxTime": 1417986000,
1440
+ "dewPoint": 41.19,
1441
+ "humidity": 0.87,
1442
+ "windSpeed": 3.02,
1443
+ "windBearing": 106,
1444
+ "cloudCover": 0.49,
1445
+ "pressure": 1027.26,
1446
+ "ozone": 308.04
1447
+ }
1448
+ ]
1449
+ },
1450
+ "alerts": [
1451
+ {
1452
+ "title": "Wind Advisory for Multnomah, OR",
1453
+ "time": 1417351260,
1454
+ "expires": 1417435200,
1455
+ "description": "...WIND ADVISORY REMAINS IN EFFECT UNTIL 4 AM PST MONDAY FOR THE\nGREATER PORTLAND AND VANCOUVER METRO AREA...\n* WINDS: EAST WINDS 25 TO 35 MPH WITH GUSTS 40 TO 50 MPH. THE\nSTRONGEST WINDS WILL BE NEAR THE COLUMBIA RIVER GORGE.\n* TIMING: WINDS WILL PICK UP THIS MORNING...PEAKING THIS AFTERNOON\nAND EARLY THIS EVENING AND THEN EASING EARLY MONDAY MORNING.\n* LOCATIONS INCLUDE: VANCOUVER...BATTLE GROUND...CAMAS...\nWASHOUGAL...HILLSBORO...PORTLAND...OREGON CITY...GRESHAM...\nTROUTDALE\n* IMPACTS: WINDS MAY CAUSE SOME TREE DAMAGE AND LOCAL POWER\nOUTAGES.\n",
1456
+ "uri": "http://alerts.weather.gov/cap/wwacapget.php?x=OR125178E80B44.WindAdvisory.12517D235B00OR.PQRNPWPQR.95d9377231cf71049aacb48282406c60"
1457
+ },
1458
+ {
1459
+ "title": "Special Weather Statement for Multnomah, OR",
1460
+ "time": 1417342440,
1461
+ "expires": 1417392000,
1462
+ "description": "...FREEZING RAIN POSSIBLE MONDAY MORNING...\nEAST WINDS AND A COOL AIRMASS WILL RESULT IN A CHILLY SUNDAY.\nDAYTIME TEMPERATURES WILL BARELY GET INTO THE 40S SOUTH OF\nSALEM...AND LIKELY REMAIN IN THE 30S TO THE NORTH. TEMPERATURES\nWILL DROP SUNDAY NIGHT UNDER MOSTLY CLEAR SKIES WITH WIDESPREAD\nTEMPERATURES NEAR OR BELOW FREEZING.\nA WARM FRONT WILL APPROACH FROM THE SOUTH LATE SUNDAY NIGHT AND\nBRING THE POTENTIAL FOR FREEZING RAIN TO THE WILLAMETTE VALLEY\nMONDAY MORNING. THERE IS A SLIGHT CHANCE FOR LIGHT FREEZING RAIN\nSOUTH OF MCMINNVILLE AFTER MIDNIGHT SUNDAY...WITH A BETTER CHANCE\nFOR VALLEY FREEZING RAIN NEAR SUNRISE MONDAY. THE SURFACE\nTEMPERATURES SHOULD WARM ABOVE FREEZING SHORTLY AFTER NOON.\nTHERE IS UNCERTAINTY ON THE TIMING OF THE WARMER AIR AND\nMOISTURE...AND ACCUMULATION AMOUNTS. THERE IS A CHANCE THAT THE\nTEMPERATURES WILL WARM ABOVE FREEZING BEFORE THE MOISTURE MOVES\nIN....BUT IF IT DOESN`T...THERE IS POTENTIAL FOR 0.10 TO 0.20 INCH\nOF ICE ACCUMULATION LATE SUNDAY NIGHT THROUGH MONDAY MORNING\nANYWHERE IN THE WILLAMETTE VALLEY...WITH MOST ACCUMULATIONS\nEXPECTED ON ELEVATED SURFACES.\nTHIS WOULD RESULT IN VERY HAZARDOUS DRIVING CONDITIONS AND\nPOSSIBLY CAUSE POWER OUTAGES. PLEASE MONITOR THE LATEST FORECAST\nAS THE DETAILS OF THIS EVENT WILL CHANGE THROUGHOUT THE THE\nWEEKEND.\n",
1463
+ "uri": "http://alerts.weather.gov/cap/wwacapget.php?x=OR125178E7B298.SpecialWeatherStatement.12517D218640OR.PQRSPSPQR.53656f1fdba795381a7895d7e3d153f7"
1464
+ }
1465
+ ],
1466
+ "flags": {
1467
+ "sources": [
1468
+ "nwspa",
1469
+ "isd",
1470
+ "nearest-precip",
1471
+ "sref",
1472
+ "darksky",
1473
+ "fnmoc",
1474
+ "rtma",
1475
+ "rap",
1476
+ "nam",
1477
+ "cmc",
1478
+ "gfs",
1479
+ "madis",
1480
+ "lamp"
1481
+ ],
1482
+ "isd-stations": [
1483
+ "726980-24229",
1484
+ "727918-94298",
1485
+ "727918-99999",
1486
+ "999999-24229",
1487
+ "999999-24274"
1488
+ ],
1489
+ "darksky-stations": ["KRTX"],
1490
+ "madis-stations": [
1491
+ "AU774",
1492
+ "C7021",
1493
+ "D3557",
1494
+ "D3762",
1495
+ "D4360",
1496
+ "D7321",
1497
+ "D9191",
1498
+ "D9370",
1499
+ "E1617",
1500
+ "E1914",
1501
+ "E2024",
1502
+ "E2298",
1503
+ "E4831",
1504
+ "OD103",
1505
+ "ODT10",
1506
+ "ODT12"
1507
+ ],
1508
+ "lamp-stations": [
1509
+ "KHIO",
1510
+ "KMMV",
1511
+ "KPDX",
1512
+ "KSPB",
1513
+ "KTTD",
1514
+ "KUAO",
1515
+ "KVUO"
1516
+ ],
1517
+ "units": "us"
1518
+ }
1519
+ }