In [54]:
%matplotlib inline
import numpy as np # math
import pandas as pd # manipulating data
import matplotlib.pyplot as plt # graphing
import os # useful for handling filenames etc.
# calculates the Pearson correlation coefficient, p-value, and does linear regression
from scipy.stats import pearsonr, linregress
#import seaborn as sns # makes matplotlib beautiful
#sns.set_style('darkgrid')
import matplotlib as mpl # control formatting
mpl.rcParams['axes.titlesize'] = 16
mpl.rcParams['axes.titleweight'] = 'semibold'
# interactive graphs
from bokeh.io import output_notebook, show, push_notebook
from bokeh.plotting import figure
from bokeh.layouts import row, column
from bokeh.models import DatetimeTickFormatter, HoverTool
output_notebook()
# manage date and time
from datetime import datetime, timedelta, date
In [51]:
# An example of what the website query looks like without any processing
CSV_URL = 'https://www.wunderground.com/weatherstation/WXDailyHistory.asp?\
ID=KCABERKE169&day=01&month=11&year=2018&graphspan=day&format=1'
df = pd.read_csv(CSV_URL, index_col=False)
df
Out[51]:
Time
TemperatureF
DewpointF
PressureIn
WindDirection
WindDirectionDegrees
WindSpeedMPH
WindSpeedGustMPH
Humidity
HourlyPrecipIn
Conditions
Clouds
dailyrainin
SolarRadiationWatts/m^2
SoftwareType
DateUTC<br>
0
2018-11-01 12:49:32
72.3
48.0
-100.0
SSW
202.0
0.0
0.0
42.0
0.00
NaN
NaN
0.00
44.49
Weather logger V3.0.
2018-11-01 19:49:32
1
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
2
2018-11-01 12:54:36
72.5
48.2
-100.0
SE
133.0
0.0
0.0
42.0
0.21
NaN
NaN
0.04
277.27
Weather logger V3.0.
2018-11-01 19:54:36
3
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
4
2018-11-01 12:59:56
73.4
45.7
-100.0
South
187.0
0.0
0.0
37.0
0.21
NaN
NaN
0.04
292.76
Weather logger V3.0.
2018-11-01 19:59:56
5
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
6
2018-11-01 13:04:44
74.3
44.2
-100.0
ESE
114.0
1.8
4.9
34.0
0.00
NaN
NaN
0.04
288.55
Weather logger V3.0.
2018-11-01 20:04:44
7
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
8
2018-11-01 13:09:48
75.4
44.4
-100.0
SE
133.0
0.4
2.5
33.0
0.00
NaN
NaN
0.04
295.80
Weather logger V3.0.
2018-11-01 20:09:48
9
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
10
2018-11-01 13:14:52
76.3
44.2
-100.0
SE
139.0
0.0
0.0
32.0
0.00
NaN
NaN
0.04
274.66
Weather logger V3.0.
2018-11-01 20:14:52
11
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
12
2018-11-01 13:19:56
77.5
43.7
-100.0
SSE
150.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
274.23
Weather logger V3.0.
2018-11-01 20:19:56
13
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
14
2018-11-01 13:24:44
78.8
45.7
-100.0
South
186.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
287.99
Weather logger V3.0.
2018-11-01 20:24:44
15
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
16
2018-11-01 13:29:32
79.7
45.5
-100.0
East
97.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
279.70
Weather logger V3.0.
2018-11-01 20:29:32
17
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
18
2018-11-01 13:34:36
80.6
45.5
-100.0
NE
39.0
0.0
0.0
29.0
0.00
NaN
NaN
0.04
290.42
Weather logger V3.0.
2018-11-01 20:34:36
19
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
20
2018-11-01 13:39:56
81.7
46.4
-100.0
NE
46.0
0.0
0.0
29.0
0.00
NaN
NaN
0.04
280.35
Weather logger V3.0.
2018-11-01 20:39:56
21
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
22
2018-11-01 13:44:28
82.4
47.8
-100.0
NE
49.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
266.63
Weather logger V3.0.
2018-11-01 20:44:28
23
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
24
2018-11-01 13:49:16
82.9
49.3
-100.0
SSW
212.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
260.77
Weather logger V3.0.
2018-11-01 20:49:16
25
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
26
2018-11-01 13:54:52
83.3
50.4
-100.0
South
190.0
0.0
0.0
32.0
0.00
NaN
NaN
0.04
252.30
Weather logger V3.0.
2018-11-01 20:54:52
27
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
28
2018-11-01 13:59:40
83.3
49.6
-100.0
SW
226.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
245.79
Weather logger V3.0.
2018-11-01 20:59:40
29
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
240
2018-11-01 22:49:49
64.6
53.8
-100.0
SSW
210.0
0.0
0.0
68.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:49:49
241
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
242
2018-11-01 22:54:53
64.4
52.0
-100.0
SW
221.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:54:53
243
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
244
2018-11-01 22:59:57
64.2
51.4
-100.0
SSW
200.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:59:57
245
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
246
2018-11-01 23:04:45
64.2
51.4
-100.0
SW
214.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:04:45
247
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
248
2018-11-01 23:09:49
64.0
51.3
-100.0
SW
219.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:09:49
249
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
250
2018-11-01 23:14:37
64.0
51.3
-100.0
SSW
209.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:14:37
251
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
252
2018-11-01 23:19:57
63.9
51.4
-100.0
SSW
205.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:19:57
253
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
254
2018-11-01 23:24:45
63.7
51.3
-100.0
SSW
208.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:24:45
255
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
256
2018-11-01 23:29:49
63.3
51.4
-100.0
SSW
207.0
0.0
0.0
65.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:29:49
257
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
258
2018-11-01 23:34:21
63.1
51.3
-100.0
SSW
206.0
0.0
0.0
65.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:34:21
259
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
260
2018-11-01 23:39:57
62.8
51.3
-100.0
SSW
206.0
0.0
0.0
66.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:39:57
261
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
262
2018-11-01 23:44:29
62.6
51.1
-100.0
SW
229.0
0.0
0.0
66.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:44:29
263
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
264
2018-11-01 23:49:17
62.6
50.4
-100.0
SSW
213.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:49:17
265
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
266
2018-11-01 23:54:53
62.6
49.5
-100.0
SSW
200.0
0.0
0.0
62.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:54:53
267
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
268
2018-11-01 23:59:57
62.8
49.6
-100.0
SSW
208.0
0.0
0.0
62.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:59:57
269
<br>
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
270 rows × 16 columns
In [52]:
# We can clean-up the odd row structure trivially:
dg = df.drop([2*i + 1 for i in range(df.shape[0] // 2)])
dg
Out[52]:
Time
TemperatureF
DewpointF
PressureIn
WindDirection
WindDirectionDegrees
WindSpeedMPH
WindSpeedGustMPH
Humidity
HourlyPrecipIn
Conditions
Clouds
dailyrainin
SolarRadiationWatts/m^2
SoftwareType
DateUTC<br>
0
2018-11-01 12:49:32
72.3
48.0
-100.0
SSW
202.0
0.0
0.0
42.0
0.00
NaN
NaN
0.00
44.49
Weather logger V3.0.
2018-11-01 19:49:32
2
2018-11-01 12:54:36
72.5
48.2
-100.0
SE
133.0
0.0
0.0
42.0
0.21
NaN
NaN
0.04
277.27
Weather logger V3.0.
2018-11-01 19:54:36
4
2018-11-01 12:59:56
73.4
45.7
-100.0
South
187.0
0.0
0.0
37.0
0.21
NaN
NaN
0.04
292.76
Weather logger V3.0.
2018-11-01 19:59:56
6
2018-11-01 13:04:44
74.3
44.2
-100.0
ESE
114.0
1.8
4.9
34.0
0.00
NaN
NaN
0.04
288.55
Weather logger V3.0.
2018-11-01 20:04:44
8
2018-11-01 13:09:48
75.4
44.4
-100.0
SE
133.0
0.4
2.5
33.0
0.00
NaN
NaN
0.04
295.80
Weather logger V3.0.
2018-11-01 20:09:48
10
2018-11-01 13:14:52
76.3
44.2
-100.0
SE
139.0
0.0
0.0
32.0
0.00
NaN
NaN
0.04
274.66
Weather logger V3.0.
2018-11-01 20:14:52
12
2018-11-01 13:19:56
77.5
43.7
-100.0
SSE
150.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
274.23
Weather logger V3.0.
2018-11-01 20:19:56
14
2018-11-01 13:24:44
78.8
45.7
-100.0
South
186.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
287.99
Weather logger V3.0.
2018-11-01 20:24:44
16
2018-11-01 13:29:32
79.7
45.5
-100.0
East
97.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
279.70
Weather logger V3.0.
2018-11-01 20:29:32
18
2018-11-01 13:34:36
80.6
45.5
-100.0
NE
39.0
0.0
0.0
29.0
0.00
NaN
NaN
0.04
290.42
Weather logger V3.0.
2018-11-01 20:34:36
20
2018-11-01 13:39:56
81.7
46.4
-100.0
NE
46.0
0.0
0.0
29.0
0.00
NaN
NaN
0.04
280.35
Weather logger V3.0.
2018-11-01 20:39:56
22
2018-11-01 13:44:28
82.4
47.8
-100.0
NE
49.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
266.63
Weather logger V3.0.
2018-11-01 20:44:28
24
2018-11-01 13:49:16
82.9
49.3
-100.0
SSW
212.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
260.77
Weather logger V3.0.
2018-11-01 20:49:16
26
2018-11-01 13:54:52
83.3
50.4
-100.0
South
190.0
0.0
0.0
32.0
0.00
NaN
NaN
0.04
252.30
Weather logger V3.0.
2018-11-01 20:54:52
28
2018-11-01 13:59:40
83.3
49.6
-100.0
SW
226.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
245.79
Weather logger V3.0.
2018-11-01 20:59:40
30
2018-11-01 14:04:44
83.3
48.7
-100.0
South
183.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
239.89
Weather logger V3.0.
2018-11-01 21:04:44
32
2018-11-01 14:09:48
83.5
48.9
-100.0
SSW
203.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
243.23
Weather logger V3.0.
2018-11-01 21:09:48
34
2018-11-01 14:14:52
83.5
48.9
-100.0
NW
325.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
235.37
Weather logger V3.0.
2018-11-01 21:14:52
36
2018-11-01 14:19:56
83.8
49.1
-100.0
SSE
162.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
226.00
Weather logger V3.0.
2018-11-01 21:19:56
38
2018-11-01 14:24:12
84.0
50.2
-100.0
SSW
195.0
0.0
0.0
31.0
0.00
NaN
NaN
0.04
227.39
Weather logger V3.0.
2018-11-01 21:24:12
40
2018-11-01 14:29:48
84.2
48.6
-100.0
NE
49.0
0.0
0.0
29.0
0.00
NaN
NaN
0.04
219.75
Weather logger V3.0.
2018-11-01 21:29:48
42
2018-11-01 14:34:52
84.4
45.9
-100.0
WNW
287.0
0.9
2.5
26.0
0.00
NaN
NaN
0.04
131.58
Weather logger V3.0.
2018-11-01 21:34:52
44
2018-11-01 14:39:56
84.4
44.8
-100.0
NNW
342.0
0.9
4.9
25.0
0.00
NaN
NaN
0.04
216.19
Weather logger V3.0.
2018-11-01 21:39:56
46
2018-11-01 14:44:28
84.6
46.9
-100.0
SSE
152.0
0.0
0.0
27.0
0.00
NaN
NaN
0.04
132.06
Weather logger V3.0.
2018-11-01 21:44:28
48
2018-11-01 14:49:48
84.6
48.0
-100.0
SSW
196.0
0.0
0.0
28.0
0.00
NaN
NaN
0.04
132.49
Weather logger V3.0.
2018-11-01 21:49:48
50
2018-11-01 14:54:52
84.7
47.1
-100.0
SE
137.0
0.0
0.0
27.0
0.00
NaN
NaN
0.04
193.70
Weather logger V3.0.
2018-11-01 21:54:52
52
2018-11-01 14:59:56
84.9
47.3
-100.0
NW
307.0
0.0
0.0
27.0
0.00
NaN
NaN
0.04
115.30
Weather logger V3.0.
2018-11-01 21:59:56
54
2018-11-01 15:04:44
84.7
50.0
-100.0
SE
130.0
1.3
2.5
30.0
0.00
NaN
NaN
0.04
125.16
Weather logger V3.0.
2018-11-01 22:04:44
56
2018-11-01 15:09:32
84.6
49.8
-100.0
NNW
342.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
187.58
Weather logger V3.0.
2018-11-01 22:09:32
58
2018-11-01 15:14:36
84.2
49.5
-100.0
ESE
121.0
0.0
0.0
30.0
0.00
NaN
NaN
0.04
130.71
Weather logger V3.0.
2018-11-01 22:14:36
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
210
2018-11-01 21:34:37
64.0
52.2
-100.0
SSW
212.0
0.0
0.0
65.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 04:34:37
212
2018-11-01 21:39:57
64.2
51.8
-100.0
SW
223.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 04:39:57
214
2018-11-01 21:44:45
64.2
51.4
-100.0
South
190.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 04:44:45
216
2018-11-01 21:49:49
64.4
52.0
-100.0
South
190.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 04:49:49
218
2018-11-01 21:54:53
64.4
53.2
-100.0
SSW
204.0
0.0
0.0
67.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 04:54:53
220
2018-11-01 21:59:41
64.2
52.7
-100.0
West
274.0
0.0
0.0
66.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 04:59:41
222
2018-11-01 22:04:45
64.2
50.5
-100.0
SSW
202.0
0.0
0.0
61.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:04:45
224
2018-11-01 22:09:49
64.4
52.0
-100.0
SW
221.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:09:49
226
2018-11-01 22:14:05
64.4
51.1
-100.0
SSW
202.0
0.0
0.0
62.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:14:05
228
2018-11-01 22:19:57
64.6
50.0
-100.0
SSW
192.0
0.0
0.0
59.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:19:57
230
2018-11-01 22:24:45
64.8
52.7
-100.0
SSW
193.0
0.0
0.0
65.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:24:45
232
2018-11-01 22:29:49
65.1
53.6
-100.0
SSW
192.0
0.0
0.0
66.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:29:49
234
2018-11-01 22:34:37
65.1
54.0
-100.0
SSW
200.0
0.0
0.0
67.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:34:37
236
2018-11-01 22:39:41
64.9
54.1
-100.0
SSW
207.0
0.0
0.0
68.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:39:41
238
2018-11-01 22:44:45
64.8
54.0
-100.0
South
189.0
0.0
0.0
68.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:44:45
240
2018-11-01 22:49:49
64.6
53.8
-100.0
SSW
210.0
0.0
0.0
68.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:49:49
242
2018-11-01 22:54:53
64.4
52.0
-100.0
SW
221.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:54:53
244
2018-11-01 22:59:57
64.2
51.4
-100.0
SSW
200.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 05:59:57
246
2018-11-01 23:04:45
64.2
51.4
-100.0
SW
214.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:04:45
248
2018-11-01 23:09:49
64.0
51.3
-100.0
SW
219.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:09:49
250
2018-11-01 23:14:37
64.0
51.3
-100.0
SSW
209.0
0.0
0.0
63.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:14:37
252
2018-11-01 23:19:57
63.9
51.4
-100.0
SSW
205.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:19:57
254
2018-11-01 23:24:45
63.7
51.3
-100.0
SSW
208.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:24:45
256
2018-11-01 23:29:49
63.3
51.4
-100.0
SSW
207.0
0.0
0.0
65.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:29:49
258
2018-11-01 23:34:21
63.1
51.3
-100.0
SSW
206.0
0.0
0.0
65.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:34:21
260
2018-11-01 23:39:57
62.8
51.3
-100.0
SSW
206.0
0.0
0.0
66.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:39:57
262
2018-11-01 23:44:29
62.6
51.1
-100.0
SW
229.0
0.0
0.0
66.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:44:29
264
2018-11-01 23:49:17
62.6
50.4
-100.0
SSW
213.0
0.0
0.0
64.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:49:17
266
2018-11-01 23:54:53
62.6
49.5
-100.0
SSW
200.0
0.0
0.0
62.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:54:53
268
2018-11-01 23:59:57
62.8
49.6
-100.0
SSW
208.0
0.0
0.0
62.0
0.00
NaN
NaN
0.00
0.00
Weather logger V3.0.
2018-11-02 06:59:57
135 rows × 16 columns
In [ ]:
# Method for grabbing data for a specific location and data and cleaning up the website query output
def get_clean_df(location_id, date):
"""Get weather data from `location_id` on `date`, then
remove all the `<br>` tags in the file.
`date` should be a list/tuple of 3 strings in the format
[MM, DD, YYYY].
"""
url = "https://www.wunderground.com/weatherstation/WXDailyHistory.asp?" + \
"ID={}&".format(location_id) + \
"day={}&".format(date[1]) + \
"month={}&".format(date[0]) + \
"year={}&".format(date[2]) + \
"graphspan=day&format=1"
print(url)
data = pd.read_csv(url, index_col=False)
# drop every other row because it contains `<br>`
return data.drop([2*i + 1 for i in range(data.shape[0] // 2)])
In [49]:
# Method to process weather data DataFrame
# - converts temperature/pressure to sensible units and drop unneeded columns
def process_data(data_df):
def deg_f_to_c(deg_f):
return (5. / 9.) * (deg_f - 32)
def inhg_to_mbar(inhg):
return 33.863753 * inhg
data_df.reset_index()
for row in data_df.itertuples():
idx = row.Index
itime, tempf, dewf, pressure = row.Time, row.TemperatureF, row.DewpointF, row.PressureIn
data_df.loc[idx, 'Time'] = datetime.strptime(itime, '%Y-%m-%d %H:%M:%S')
data_df.loc[idx, 'Temperature'] = deg_f_to_c(tempf)
data_df.loc[idx, 'Dewpoint'] = deg_f_to_c(dewf)
data_df.loc[idx, 'Pressure'] = inhg_to_mbar(pressure)
return data_df.drop(['TemperatureF', 'DewpointF', 'PressureIn', 'Conditions', 'Clouds',
'SoftwareType', 'DateUTC<br>'], axis=1)
ws_data = process_data(get_clean_df('KCABERKE169', ['11', '01', '2018']))
https://www.wunderground.com/weatherstation/WXDailyHistory.asp?ID=KCABERKE169&day=01&month=11&year=2018&graphspan=day&format=1
In [50]:
ws_data
Out[50]:
Time
WindDirection
WindDirectionDegrees
WindSpeedMPH
WindSpeedGustMPH
Humidity
HourlyPrecipIn
dailyrainin
SolarRadiationWatts/m^2
Temperature
Dewpoint
Pressure
0
2018-11-01 12:49:32
SSW
202.0
0.0
0.0
42.0
0.00
0.00
44.49
22.388889
8.888889
-3386.3753
2
2018-11-01 12:54:36
SE
133.0
0.0
0.0
42.0
0.21
0.04
277.27
22.500000
9.000000
-3386.3753
4
2018-11-01 12:59:56
South
187.0
0.0
0.0
37.0
0.21
0.04
292.76
23.000000
7.611111
-3386.3753
6
2018-11-01 13:04:44
ESE
114.0
1.8
4.9
34.0
0.00
0.04
288.55
23.500000
6.777778
-3386.3753
8
2018-11-01 13:09:48
SE
133.0
0.4
2.5
33.0
0.00
0.04
295.80
24.111111
6.888889
-3386.3753
10
2018-11-01 13:14:52
SE
139.0
0.0
0.0
32.0
0.00
0.04
274.66
24.611111
6.777778
-3386.3753
12
2018-11-01 13:19:56
SSE
150.0
0.0
0.0
30.0
0.00
0.04
274.23
25.277778
6.500000
-3386.3753
14
2018-11-01 13:24:44
South
186.0
0.0
0.0
31.0
0.00
0.04
287.99
26.000000
7.611111
-3386.3753
16
2018-11-01 13:29:32
East
97.0
0.0
0.0
30.0
0.00
0.04
279.70
26.500000
7.500000
-3386.3753
18
2018-11-01 13:34:36
NE
39.0
0.0
0.0
29.0
0.00
0.04
290.42
27.000000
7.500000
-3386.3753
20
2018-11-01 13:39:56
NE
46.0
0.0
0.0
29.0
0.00
0.04
280.35
27.611111
8.000000
-3386.3753
22
2018-11-01 13:44:28
NE
49.0
0.0
0.0
30.0
0.00
0.04
266.63
28.000000
8.777778
-3386.3753
24
2018-11-01 13:49:16
SSW
212.0
0.0
0.0
31.0
0.00
0.04
260.77
28.277778
9.611111
-3386.3753
26
2018-11-01 13:54:52
South
190.0
0.0
0.0
32.0
0.00
0.04
252.30
28.500000
10.222222
-3386.3753
28
2018-11-01 13:59:40
SW
226.0
0.0
0.0
31.0
0.00
0.04
245.79
28.500000
9.777778
-3386.3753
30
2018-11-01 14:04:44
South
183.0
0.0
0.0
30.0
0.00
0.04
239.89
28.500000
9.277778
-3386.3753
32
2018-11-01 14:09:48
SSW
203.0
0.0
0.0
30.0
0.00
0.04
243.23
28.611111
9.388889
-3386.3753
34
2018-11-01 14:14:52
NW
325.0
0.0
0.0
30.0
0.00
0.04
235.37
28.611111
9.388889
-3386.3753
36
2018-11-01 14:19:56
SSE
162.0
0.0
0.0
30.0
0.00
0.04
226.00
28.777778
9.500000
-3386.3753
38
2018-11-01 14:24:12
SSW
195.0
0.0
0.0
31.0
0.00
0.04
227.39
28.888889
10.111111
-3386.3753
40
2018-11-01 14:29:48
NE
49.0
0.0
0.0
29.0
0.00
0.04
219.75
29.000000
9.222222
-3386.3753
42
2018-11-01 14:34:52
WNW
287.0
0.9
2.5
26.0
0.00
0.04
131.58
29.111111
7.722222
-3386.3753
44
2018-11-01 14:39:56
NNW
342.0
0.9
4.9
25.0
0.00
0.04
216.19
29.111111
7.111111
-3386.3753
46
2018-11-01 14:44:28
SSE
152.0
0.0
0.0
27.0
0.00
0.04
132.06
29.222222
8.277778
-3386.3753
48
2018-11-01 14:49:48
SSW
196.0
0.0
0.0
28.0
0.00
0.04
132.49
29.222222
8.888889
-3386.3753
50
2018-11-01 14:54:52
SE
137.0
0.0
0.0
27.0
0.00
0.04
193.70
29.277778
8.388889
-3386.3753
52
2018-11-01 14:59:56
NW
307.0
0.0
0.0
27.0
0.00
0.04
115.30
29.388889
8.500000
-3386.3753
54
2018-11-01 15:04:44
SE
130.0
1.3
2.5
30.0
0.00
0.04
125.16
29.277778
10.000000
-3386.3753
56
2018-11-01 15:09:32
NNW
342.0
0.0
0.0
30.0
0.00
0.04
187.58
29.222222
9.888889
-3386.3753
58
2018-11-01 15:14:36
ESE
121.0
0.0
0.0
30.0
0.00
0.04
130.71
29.000000
9.722222
-3386.3753
...
...
...
...
...
...
...
...
...
...
...
...
...
210
2018-11-01 21:34:37
SSW
212.0
0.0
0.0
65.0
0.00
0.00
0.00
17.777778
11.222222
-3386.3753
212
2018-11-01 21:39:57
SW
223.0
0.0
0.0
64.0
0.00
0.00
0.00
17.888889
11.000000
-3386.3753
214
2018-11-01 21:44:45
South
190.0
0.0
0.0
63.0
0.00
0.00
0.00
17.888889
10.777778
-3386.3753
216
2018-11-01 21:49:49
South
190.0
0.0
0.0
64.0
0.00
0.00
0.00
18.000000
11.111111
-3386.3753
218
2018-11-01 21:54:53
SSW
204.0
0.0
0.0
67.0
0.00
0.00
0.00
18.000000
11.777778
-3386.3753
220
2018-11-01 21:59:41
West
274.0
0.0
0.0
66.0
0.00
0.00
0.00
17.888889
11.500000
-3386.3753
222
2018-11-01 22:04:45
SSW
202.0
0.0
0.0
61.0
0.00
0.00
0.00
17.888889
10.277778
-3386.3753
224
2018-11-01 22:09:49
SW
221.0
0.0
0.0
64.0
0.00
0.00
0.00
18.000000
11.111111
-3386.3753
226
2018-11-01 22:14:05
SSW
202.0
0.0
0.0
62.0
0.00
0.00
0.00
18.000000
10.611111
-3386.3753
228
2018-11-01 22:19:57
SSW
192.0
0.0
0.0
59.0
0.00
0.00
0.00
18.111111
10.000000
-3386.3753
230
2018-11-01 22:24:45
SSW
193.0
0.0
0.0
65.0
0.00
0.00
0.00
18.222222
11.500000
-3386.3753
232
2018-11-01 22:29:49
SSW
192.0
0.0
0.0
66.0
0.00
0.00
0.00
18.388889
12.000000
-3386.3753
234
2018-11-01 22:34:37
SSW
200.0
0.0
0.0
67.0
0.00
0.00
0.00
18.388889
12.222222
-3386.3753
236
2018-11-01 22:39:41
SSW
207.0
0.0
0.0
68.0
0.00
0.00
0.00
18.277778
12.277778
-3386.3753
238
2018-11-01 22:44:45
South
189.0
0.0
0.0
68.0
0.00
0.00
0.00
18.222222
12.222222
-3386.3753
240
2018-11-01 22:49:49
SSW
210.0
0.0
0.0
68.0
0.00
0.00
0.00
18.111111
12.111111
-3386.3753
242
2018-11-01 22:54:53
SW
221.0
0.0
0.0
64.0
0.00
0.00
0.00
18.000000
11.111111
-3386.3753
244
2018-11-01 22:59:57
SSW
200.0
0.0
0.0
63.0
0.00
0.00
0.00
17.888889
10.777778
-3386.3753
246
2018-11-01 23:04:45
SW
214.0
0.0
0.0
63.0
0.00
0.00
0.00
17.888889
10.777778
-3386.3753
248
2018-11-01 23:09:49
SW
219.0
0.0
0.0
63.0
0.00
0.00
0.00
17.777778
10.722222
-3386.3753
250
2018-11-01 23:14:37
SSW
209.0
0.0
0.0
63.0
0.00
0.00
0.00
17.777778
10.722222
-3386.3753
252
2018-11-01 23:19:57
SSW
205.0
0.0
0.0
64.0
0.00
0.00
0.00
17.722222
10.777778
-3386.3753
254
2018-11-01 23:24:45
SSW
208.0
0.0
0.0
64.0
0.00
0.00
0.00
17.611111
10.722222
-3386.3753
256
2018-11-01 23:29:49
SSW
207.0
0.0
0.0
65.0
0.00
0.00
0.00
17.388889
10.777778
-3386.3753
258
2018-11-01 23:34:21
SSW
206.0
0.0
0.0
65.0
0.00
0.00
0.00
17.277778
10.722222
-3386.3753
260
2018-11-01 23:39:57
SSW
206.0
0.0
0.0
66.0
0.00
0.00
0.00
17.111111
10.722222
-3386.3753
262
2018-11-01 23:44:29
SW
229.0
0.0
0.0
66.0
0.00
0.00
0.00
17.000000
10.611111
-3386.3753
264
2018-11-01 23:49:17
SSW
213.0
0.0
0.0
64.0
0.00
0.00
0.00
17.000000
10.222222
-3386.3753
266
2018-11-01 23:54:53
SSW
200.0
0.0
0.0
62.0
0.00
0.00
0.00
17.000000
9.722222
-3386.3753
268
2018-11-01 23:59:57
SSW
208.0
0.0
0.0
62.0
0.00
0.00
0.00
17.111111
9.777778
-3386.3753
135 rows × 12 columns
In [55]:
p = figure(plot_width=960, plot_height=480, title='Etcheverry Rooftop Temperature', x_axis_type='datetime')
p.line(ws_data['Time'], ws_data['Temperature'], line_width=2)
p.add_tools(HoverTool(tooltips=[('Time', '$x'), ('Temp', '$y')]))
p.xaxis.axis_label = 'Time'
p.yaxis.axis_label = 'Temperature'
show(p)
In [ ]:
Content source: bearing/dosenet-analysis
Similar notebooks: