elisaklunder commited on
Commit
7052bfa
·
1 Parent(s): 51cc1d7
adjusted_predictions_O3_NO2.csv DELETED
@@ -1,59 +0,0 @@
1
- pollutant,date_predicted,date,prediction_value
2
- O3,2024-10-14,2024-10-17,37.50407
3
- NO2,2024-10-14,2024-10-17,31.70604
4
- O3,2024-10-15,2024-10-17,24.20011
5
- NO2,2024-10-15,2024-10-17,31.45461
6
- O3,2024-10-16,2024-10-17,9.6575
7
- NO2,2024-10-16,2024-10-17,17.0652
8
- O3,2024-10-15,2024-10-18,7.87344
9
- NO2,2024-10-15,2024-10-18,31.73243
10
- O3,2024-10-16,2024-10-18,21.76064
11
- NO2,2024-10-16,2024-10-18,40.0994
12
- O3,2024-10-17,2024-10-18,16.0884
13
- NO2,2024-10-17,2024-10-18,32.0458
14
- O3,2024-10-16,2024-10-19,28.83768
15
- NO2,2024-10-16,2024-10-19,24.10068
16
- O3,2024-10-17,2024-10-19,23.13454
17
- NO2,2024-10-17,2024-10-19,29.79229
18
- O3,2024-10-17,2024-10-19,22.53339
19
- NO2,2024-10-17,2024-10-19,26.22730
20
- O3,2024-10-18,2024-10-19,22.3045
21
- NO2,2024-10-18,2024-10-19,20.8002
22
- O3,2024-10-18,2024-10-20,31.34.37874
23
- NO2,2024-10-18,2024-10-20,32.70553
24
- O3,2024-10-18,2024-10-20,31.54536
25
- NO2,2024-10-18,2024-10-20,38.55104
26
- O3,2024-10-19,2024-10-20,26.4217
27
- NO2,2024-10-19,2024-10-20,27.3999
28
- O3,2024-10-19,2024-10-20,17.0652
29
- NO2,2024-10-19,2024-10-20,18.9924
30
- O3,2024-10-19,2024-10-21,19.13648
31
- NO2,2024-10-19,2024-10-21,25.13566
32
- O3,2024-10-19,2024-10-21,24.20011
33
- NO2,2024-10-19,2024-10-21,20.09909
34
- O3,2024-10-20,2024-10-21,29.0094
35
- NO2,2024-10-20,2024-10-21,19.5074
36
- O3,2024-10-20,2024-10-21,20.0621
37
- NO2,2024-10-20,2024-10-21,23.6575
38
- O3,2024-10-20,2024-10-22,19.24714
39
- NO2,2024-10-20,2024-10-22,31.45461
40
- O3,2024-10-21,2024-10-22,16.52
41
- NO2,2024-10-21,2024-10-22,30.1924
42
- O3,2024-10-21,2024-10-23,31.01934
43
- NO2,2024-10-21,2024-10-23,19.74775
44
- O3,2024-10-21,2024-10-23,17.70241
45
- NO2,2024-10-21,2024-10-23,27.73936
46
- O3,2024-10-22,2024-10-24,25.96605
47
- NO2,2024-10-22,2024-10-24,31.90517
48
- O3,2024-10-22,2024-10-24,29.22139
49
- NO2,2024-10-22,2024-10-24,22.16907
50
- O3,2024-10-23,2024-10-24,9.0905
51
- NO2,2024-10-23,2024-10-24,18.1749
52
- O3,2024-10-23,2024-10-24,20.205
53
- NO2,2024-10-23,2024-10-24,27.3349
54
- O3,2024-10-24,2024-10-25,9.090494810363
55
- NO2,2024-10-24,2024-10-25,18.174884683860732
56
- O3,2024-10-24,2024-10-26,20.2050211414084
57
- NO2,2024-10-24,2024-10-26,27.334877510848962
58
- O3,2024-10-24,2024-10-27,16.31643675723712
59
- NO2,2024-10-24,2024-10-27,23.015396915310056
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
pages/admin.py CHANGED
@@ -5,7 +5,7 @@ import streamlit as st
5
  from sklearn.metrics import mean_squared_error
6
 
7
  USERNAME = "dragonkiller"
8
- PASSWORD = "password"
9
 
10
  st.title("Admin Panel")
11
 
@@ -30,7 +30,7 @@ if not st.session_state.login_success:
30
  else:
31
  # Actual data vs 1,2,3 days ahead predictions
32
  actual_data = pd.read_csv("pollution_data.csv")
33
- prediction_data = pd.read_csv("prediction_history.csv")
34
 
35
  col1, col2 = st.columns(2)
36
  with col1:
 
5
  from sklearn.metrics import mean_squared_error
6
 
7
  USERNAME = "dragonkiller"
8
+ PASSWORD = "donkey"
9
 
10
  st.title("Admin Panel")
11
 
 
30
  else:
31
  # Actual data vs 1,2,3 days ahead predictions
32
  actual_data = pd.read_csv("pollution_data.csv")
33
+ prediction_data = pd.read_csv("predictions_history.csv")
34
 
35
  col1, col2 = st.columns(2)
36
  with col1:
past_weather_data.csv CHANGED
@@ -9,4 +9,5 @@ date,temp,humidity,precip,windspeed,sealevelpressure,visibility,solarradiation
9
  2023-10-24,11.6,92.3,6.5,22.3,1001.3,23.1,32.6
10
  2023-10-25,9.3,96.8,15.3,18.0,996.8,15.7,14.5
11
  2023-10-26,9.4,97.6,0.1,11.2,995.6,4.8,36.0
12
- 2023-10-27,10.6,97.9,11.4,14.8,992,9.5,20.5
 
 
9
  2023-10-24,11.6,92.3,6.5,22.3,1001.3,23.1,32.6
10
  2023-10-25,9.3,96.8,15.3,18.0,996.8,15.7,14.5
11
  2023-10-26,9.4,97.6,0.1,11.2,995.6,4.8,36.0
12
+ 2023-10-27,10.6,97.9,11.4,14.8,992.0,9.5,20.5
13
+ 2023-10-28,11.4,88.6,3,18.4,994.4,29.3,48.5
pollution_data.csv CHANGED
@@ -7,3 +7,4 @@ date,NO2,O3
7
  2024-10-22,21.776579804560274,23.33588571428572
8
  2024-10-23,21.974793814433,22.21468879668051
9
  2024-10-24,25.51256756756757,20.91370967741937
 
 
7
  2024-10-22,21.776579804560274,23.33588571428572
8
  2024-10-23,21.974793814433,22.21468879668051
9
  2024-10-24,25.51256756756757,20.91370967741937
10
+ 2024-10-25,21.72051282051282,22.33230769230769
prediction_history.csv DELETED
@@ -1,55 +0,0 @@
1
- pollutant,date_predicted,date,prediction_value
2
- O3,2024-10-14,2024-10-17,31.253351852448926
3
- NO2,2024-10-14,2024-10-17,26.421736787446267
4
- O3,2024-10-15,2024-10-17,22.000057677604474
5
- NO2,2024-10-15,2024-10-17,28.59511317503212
6
- O3,2024-10-16,2024-10-17,9.657466070999735
7
- NO2,2024-10-16,2024-10-17,17.065168790519902
8
- O3,2024-10-15,2024-10-18,6.561248
9
- NO2,2024-10-15,2024-10-18,26.443672
10
- O3,2024-10-16,2024-10-18,19.782418
11
- NO2,2024-10-16,2024-10-18,36.453956
12
- O3,2024-10-17,2024-10-18,16.08841798553393
13
- NO2,2024-10-17,2024-10-18,32.0458143607889
14
- O3,2024-10-16,2024-10-19,24.031357603260783
15
- NO2,2024-10-16,2024-10-19,20.083893955587914
16
- O3,2024-10-17,2024-10-19,21.031357603260783
17
- NO2,2024-10-17,2024-10-19,27.083893955587914
18
- O3,2024-10-17,2024-10-20,20.484862479793236
19
- NO2,2024-10-17,2024-10-20,23.84300578029378
20
- O3,2024-10-18,2024-10-19,22.304547122637445
21
- NO2,2024-10-18,2024-10-19,20.80017116560889
22
- O3,2024-10-18,2024-10-20,31.253351852448926
23
- NO2,2024-10-18,2024-10-20,29.732316066240582
24
- O3,2024-10-18,2024-10-21,28.67755196805434
25
- NO2,2024-10-18,2024-10-21,35.04638743773354
26
- O3,2024-10-19,2024-10-20,26.421736787446267
27
- NO2,2024-10-19,2024-10-20,27.399885723190767
28
- O3,2024-10-19,2024-10-21,17.065168790519902
29
- NO2,2024-10-19,2024-10-21,18.992352714813563
30
- O3,2024-10-19,2024-10-22,17.39682962048955
31
- NO2,2024-10-19,2024-10-22,22.850616758859076
32
- O3,2024-10-20,2024-10-21,22.000057677604474
33
- NO2,2024-10-20,2024-10-21,18.27191592927812
34
- O3,2024-10-20,2024-10-22,29.00940466937953
35
- NO2,2024-10-20,2024-10-22,19.507397669634972
36
- O3,2024-10-20,2024-10-23,20.062134354543346
37
- NO2,2024-10-20,2024-10-23,23.657466070999735
38
- O3,2024-10-21,2024-10-22,17.497382318189132
39
- NO2,2024-10-21,2024-10-22,28.59511317503212
40
- O3,2024-10-21,2024-10-23,16.519952190354232
41
- NO2,2024-10-21,2024-10-23,30.192389708351822
42
- O3,2024-10-21,2024-10-24,28.199403851129034
43
- NO2,2024-10-21,2024-10-24,17.9525039623211
44
- O3,2024-10-22,2024-10-23,16.093074246425157
45
- NO2,2024-10-22,2024-10-23,25.217639978187005
46
- O3,2024-10-22,2024-10-24,23.605545201596552
47
- NO2,2024-10-22,2024-10-24,29.004701753536988
48
- O3,2024-10-23,2024-10-24,26.56486295059828
49
- NO2,2024-10-23,2024-10-24,20.153737337472574
50
- O3,2024-10-24,2024-10-25,9.090494810363
51
- NO2,2024-10-24,2024-10-25,18.174884683860732
52
- O3,2024-10-24,2024-10-26,20.2050211414084
53
- NO2,2024-10-24,2024-10-26,27.334877510848962
54
- O3,2024-10-24,2024-10-27,16.31643675723712
55
- NO2,2024-10-24,2024-10-27,23.015396915310056
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
predictions_history.csv CHANGED
@@ -1,7 +1,61 @@
1
  pollutant,date_predicted,date,prediction_value
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  O3,2024-10-24,2024-10-25,10.33808859423279
3
  NO2,2024-10-24,2024-10-25,25.68519991558237
4
  O3,2024-10-24,2024-10-26,16.000984317626852
5
  NO2,2024-10-24,2024-10-26,25.760307451092384
6
  O3,2024-10-24,2024-10-27,19.64377495640328
7
  NO2,2024-10-24,2024-10-27,31.210576791105115
 
 
 
 
 
 
 
1
  pollutant,date_predicted,date,prediction_value
2
+ O3,2024-10-14,2024-10-17,31.25335185244893
3
+ NO2,2024-10-14,2024-10-17,26.421736787446267
4
+ O3,2024-10-15,2024-10-17,22.00005767760448
5
+ NO2,2024-10-15,2024-10-17,28.59511317503212
6
+ O3,2024-10-16,2024-10-17,9.657466070999735
7
+ NO2,2024-10-16,2024-10-17,17.065168790519902
8
+ O3,2024-10-15,2024-10-18,6.561248
9
+ NO2,2024-10-15,2024-10-18,26.443672
10
+ O3,2024-10-16,2024-10-18,19.782418
11
+ NO2,2024-10-16,2024-10-18,36.453956
12
+ O3,2024-10-17,2024-10-18,16.08841798553393
13
+ NO2,2024-10-17,2024-10-18,32.0458143607889
14
+ O3,2024-10-16,2024-10-19,24.031357603260783
15
+ NO2,2024-10-16,2024-10-19,20.083893955587914
16
+ O3,2024-10-17,2024-10-19,21.031357603260783
17
+ NO2,2024-10-17,2024-10-19,27.083893955587914
18
+ O3,2024-10-17,2024-10-20,20.48486247979324
19
+ NO2,2024-10-17,2024-10-20,23.84300578029378
20
+ O3,2024-10-18,2024-10-19,22.304547122637445
21
+ NO2,2024-10-18,2024-10-19,20.80017116560889
22
+ O3,2024-10-18,2024-10-20,31.25335185244893
23
+ NO2,2024-10-18,2024-10-20,29.732316066240585
24
+ O3,2024-10-18,2024-10-21,28.67755196805434
25
+ NO2,2024-10-18,2024-10-21,35.04638743773354
26
+ O3,2024-10-19,2024-10-20,26.421736787446267
27
+ NO2,2024-10-19,2024-10-20,27.399885723190767
28
+ O3,2024-10-19,2024-10-21,17.065168790519902
29
+ NO2,2024-10-19,2024-10-21,18.992352714813563
30
+ O3,2024-10-19,2024-10-22,17.39682962048955
31
+ NO2,2024-10-19,2024-10-22,22.85061675885908
32
+ O3,2024-10-20,2024-10-21,22.00005767760448
33
+ NO2,2024-10-20,2024-10-21,18.27191592927812
34
+ O3,2024-10-20,2024-10-22,29.00940466937953
35
+ NO2,2024-10-20,2024-10-22,19.50739766963497
36
+ O3,2024-10-20,2024-10-23,20.062134354543343
37
+ NO2,2024-10-20,2024-10-23,23.65746607099973
38
+ O3,2024-10-21,2024-10-22,17.497382318189132
39
+ NO2,2024-10-21,2024-10-22,28.59511317503212
40
+ O3,2024-10-21,2024-10-23,16.519952190354232
41
+ NO2,2024-10-21,2024-10-23,30.192389708351826
42
+ O3,2024-10-21,2024-10-24,28.19940385112904
43
+ NO2,2024-10-21,2024-10-24,17.9525039623211
44
+ O3,2024-10-22,2024-10-23,16.093074246425157
45
+ NO2,2024-10-22,2024-10-23,25.217639978187005
46
+ O3,2024-10-22,2024-10-24,23.605545201596552
47
+ NO2,2024-10-22,2024-10-24,29.004701753536988
48
+ O3,2024-10-23,2024-10-24,26.56486295059828
49
+ NO2,2024-10-23,2024-10-24,20.15373733747257
50
  O3,2024-10-24,2024-10-25,10.33808859423279
51
  NO2,2024-10-24,2024-10-25,25.68519991558237
52
  O3,2024-10-24,2024-10-26,16.000984317626852
53
  NO2,2024-10-24,2024-10-26,25.760307451092384
54
  O3,2024-10-24,2024-10-27,19.64377495640328
55
  NO2,2024-10-24,2024-10-27,31.210576791105115
56
+ O3,2024-10-25,2024-10-26,20.48055947200643
57
+ NO2,2024-10-25,2024-10-26,23.957239039864238
58
+ O3,2024-10-25,2024-10-27,11.088152958498888
59
+ NO2,2024-10-25,2024-10-27,32.274494671100506
60
+ O3,2024-10-25,2024-10-28,-0.7175631399505704
61
+ NO2,2024-10-25,2024-10-28,40.86107800019054
src/data_api_calls.py CHANGED
@@ -118,6 +118,11 @@ def get_combined_data():
118
  update_pollution_data()
119
 
120
  weather_df = pd.read_csv(WEATHER_DATA_FILE)
 
 
 
 
 
121
 
122
  weather_df.insert(1, "NO2", None)
123
  weather_df.insert(2, "O3", None)
@@ -163,6 +168,10 @@ def get_combined_data():
163
  combined_df["global_radiation"] = combined_df["global_radiation"].astype(int)
164
 
165
  pollution_df = pd.read_csv(POLLUTION_DATA_FILE)
 
 
 
 
166
  combined_df["NO2"] = pollution_df["NO2"]
167
  combined_df["O3"] = pollution_df["O3"]
168
 
 
118
  update_pollution_data()
119
 
120
  weather_df = pd.read_csv(WEATHER_DATA_FILE)
121
+
122
+ today = pd.Timestamp.now().normalize()
123
+ seven_days_ago = today - pd.Timedelta(days=7)
124
+ weather_df["date"] = pd.to_datetime(weather_df["date"])
125
+ weather_df = weather_df[(weather_df["date"] >= seven_days_ago) & (weather_df["date"] <= today)]
126
 
127
  weather_df.insert(1, "NO2", None)
128
  weather_df.insert(2, "O3", None)
 
168
  combined_df["global_radiation"] = combined_df["global_radiation"].astype(int)
169
 
170
  pollution_df = pd.read_csv(POLLUTION_DATA_FILE)
171
+
172
+ pollution_df["date"] = pd.to_datetime(pollution_df["date"])
173
+ pollution_df = pollution_df[(pollution_df["date"] >= seven_days_ago) & (pollution_df["date"] <= today)]
174
+
175
  combined_df["NO2"] = pollution_df["NO2"]
176
  combined_df["O3"] = pollution_df["O3"]
177
 
src/features_pipeline.py CHANGED
@@ -77,7 +77,8 @@ def create_features(
77
  data = data.dropna().reset_index(drop=True)
78
  rows_after = data.shape[0]
79
  rows_dropped = rows_before - rows_after
80
- print(f"Number of rows with missing values dropped: {rows_dropped}")
 
81
 
82
  # Ensure the data is sorted by date in ascending order
83
  data = data.sort_values("date").reset_index(drop=True)
 
77
  data = data.dropna().reset_index(drop=True)
78
  rows_after = data.shape[0]
79
  rows_dropped = rows_before - rows_after
80
+ print(f"Number of rows with missing values dropped: {rows_dropped}/{rows_before}")
81
+ print(data)
82
 
83
  # Ensure the data is sorted by date in ascending order
84
  data = data.sort_values("date").reset_index(drop=True)
src/past_data_api_calls.py CHANGED
@@ -136,8 +136,8 @@ def get_past_combined_data():
136
  combined_df = pd.read_csv(PAST_WEATHER_DATA_FILE)
137
  pollution_data = pd.read_csv(PAST_POLLUTION_DATA_FILE)
138
 
139
- combined_df["NO2"] = pollution_data["NO2"]
140
- combined_df["O3"] = pollution_data["O3"]
141
 
142
  # Apply scaling and renaming similar to the scale function from previous code
143
  combined_df = combined_df.rename(
 
136
  combined_df = pd.read_csv(PAST_WEATHER_DATA_FILE)
137
  pollution_data = pd.read_csv(PAST_POLLUTION_DATA_FILE)
138
 
139
+ combined_df = combined_df.merge(pollution_data, on="date", how="inner")
140
+ combined_df = combined_df.tail(11)
141
 
142
  # Apply scaling and renaming similar to the scale function from previous code
143
  combined_df = combined_df.rename(
src/predict.py CHANGED
@@ -47,7 +47,7 @@ def get_data_and_predictions():
47
  prediction_data.append(
48
  {
49
  "pollutant": "O3",
50
- "predicted_on": date.today(),
51
  "date": date.today() + timedelta(days=i + 1),
52
  "prediction_value": o3_predictions[0][i],
53
  }
@@ -55,7 +55,7 @@ def get_data_and_predictions():
55
  prediction_data.append(
56
  {
57
  "pollutant": "NO2",
58
- "predicted_on": date.today(),
59
  "date": date.today() + timedelta(days=i + 1),
60
  "prediction_value": no2_predictions[0][i],
61
  }
@@ -67,7 +67,7 @@ def get_data_and_predictions():
67
  existing_data = pd.read_csv(PREDICTIONS_FILE)
68
  # Filter out predictions made today to avoid duplicates
69
  existing_data = existing_data[
70
- ~(existing_data["predicted_on"] == str(date.today()))
71
  ]
72
  combined_data = pd.concat([existing_data, predictions_df])
73
  else:
 
47
  prediction_data.append(
48
  {
49
  "pollutant": "O3",
50
+ "date_predicted": date.today(),
51
  "date": date.today() + timedelta(days=i + 1),
52
  "prediction_value": o3_predictions[0][i],
53
  }
 
55
  prediction_data.append(
56
  {
57
  "pollutant": "NO2",
58
+ "date_predicted": date.today(),
59
  "date": date.today() + timedelta(days=i + 1),
60
  "prediction_value": no2_predictions[0][i],
61
  }
 
67
  existing_data = pd.read_csv(PREDICTIONS_FILE)
68
  # Filter out predictions made today to avoid duplicates
69
  existing_data = existing_data[
70
+ ~(existing_data["date_predicted"] == str(date.today()))
71
  ]
72
  combined_data = pd.concat([existing_data, predictions_df])
73
  else:
weather_data.csv CHANGED
@@ -1,18 +1,4 @@
1
  date,temp,humidity,precip,windspeed,sealevelpressure,visibility,solarradiation
2
- 2024-10-03,9.9,78.9,0.0,25.9,1020.0,44.0,81.8
3
- 2024-10-04,7.7,86.2,0.0,11.2,1022.0,25.0,86.3
4
- 2024-10-05,8.0,83.2,0.0,14.8,1019.0,26.0,76.5
5
- 2024-10-06,10.0,82.7,0.0,25.9,1007.7,36.5,77.2
6
- 2024-10-07,15.3,81.0,0.4,22.3,1000.8,37.5,65.6
7
- 2024-10-08,16.0,83.4,0.6,18.4,997.4,40.0,55.6
8
- 2024-10-09,14.2,88.3,1.0,22.3,990.1,37.2,38.2
9
- 2024-10-10,12.3,83.6,1.0,18.4,997.3,28.2,52.5
10
- 2024-10-11,8.5,84.4,1.0,14.8,1015.3,36.1,62.9
11
- 2024-10-12,7.8,89.4,0.0,21.6,1011.3,25.5,49.3
12
- 2024-10-13,10.5,75.8,3.7,18.4,1013.2,36.8,49.9
13
- 2024-10-14,7.9,89.8,0.0,10.8,1018.3,24.3,44.1
14
- 2024-10-15,8.7,86.9,0.0,18.4,1019.4,29.0,71.2
15
- 2024-10-16,15.1,82.2,0.0,22.3,1010.3,35.8,40.8
16
  2024-10-17,16.9,86.0,0.6,18.4,1010.0,37.1,43.0
17
  2024-10-18,15.5,97.3,3.9,7.6,1014.0,4.5,42.9
18
  2024-10-19,14.7,89.9,1.6,14.8,1014.1,22.8,43.5
@@ -21,3 +7,4 @@ date,temp,humidity,precip,windspeed,sealevelpressure,visibility,solarradiation
21
  2024-10-22,11.4,92.8,4.9,19.4,1026.9,22.6,57.0
22
  2024-10-23,11.2,97.3,0.0,13.0,1032.8,6.5,12.5
23
  2024-10-24,10.4,94.0,0.0,20.5,1024.7,13.0,62.5
 
 
1
  date,temp,humidity,precip,windspeed,sealevelpressure,visibility,solarradiation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  2024-10-17,16.9,86.0,0.6,18.4,1010.0,37.1,43.0
3
  2024-10-18,15.5,97.3,3.9,7.6,1014.0,4.5,42.9
4
  2024-10-19,14.7,89.9,1.6,14.8,1014.1,22.8,43.5
 
7
  2024-10-22,11.4,92.8,4.9,19.4,1026.9,22.6,57.0
8
  2024-10-23,11.2,97.3,0.0,13.0,1032.8,6.5,12.5
9
  2024-10-24,10.4,94.0,0.0,20.5,1024.7,13.0,62.5
10
+ 2024-10-25,13.6,92.2,0.5,11.9,1016.8,24.0,93.0