rehanafzal commited on
Commit
8f2dde4
·
verified ·
1 Parent(s): 8186fbb

Update app_backend.py

Browse files
Files changed (1) hide show
  1. app_backend.py +77 -77
app_backend.py CHANGED
@@ -148,87 +148,87 @@
148
  # code 4
149
 
150
 
151
- # import pandas as pd
152
- # import numpy as np
153
- # import requests
154
- # from datetime import datetime
155
-
156
- # # Function to fetch real-time weather data
157
- # def fetch_weather(api_key, location):
158
- # url = f"http://api.openweathermap.org/data/2.5/weather?q={location}&appid={api_key}&units=metric"
159
- # response = requests.get(url).json()
160
- # if response["cod"] == 200:
161
- # return {
162
- # "temperature": response["main"]["temp"],
163
- # "wind_speed": response["wind"]["speed"],
164
- # "weather": response["weather"][0]["description"]
165
- # }
166
- # return None
167
-
168
- # # Generate synthetic grid data
169
- # def generate_synthetic_data():
170
- # time_index = pd.date_range(start=datetime.now(), periods=24, freq="H")
171
- # return pd.DataFrame({
172
- # "timestamp": time_index,
173
- # "load_demand_kwh": np.random.randint(200, 500, len(time_index)),
174
- # "solar_output_kw": np.random.randint(50, 150, len(time_index)),
175
- # "wind_output_kw": np.random.randint(30, 120, len(time_index)),
176
- # "grid_health": np.random.choice(["Good", "Moderate", "Critical"], len(time_index))
177
- # })
178
-
179
- # # Load optimization recommendation
180
- # def optimize_load(demand, solar, wind):
181
- # renewable_supply = solar + wind
182
- # if renewable_supply >= demand:
183
- # return "Grid Stable"
184
- # return "Use Backup or Adjust Load"
185
-
186
- # if __name__ == "__main__":
187
- # print("Backend ready!")
188
 
189
 
190
 
191
  # code 5
192
 
193
 
194
- import random
195
- import pandas as pd
196
- def fetch_data():
197
- # Simulating fetching data from a database or API
198
- data = {
199
- 'temperature': random.uniform(-10, 30),
200
- 'wind_speed': random.uniform(0, 20),
201
- 'weather_condition': random.choice(['Clear', 'Overcast Clouds', 'Thunderstorm', 'Rain']),
202
- 'timestamps': pd.date_range("2025-01-01", periods=10, freq='H'),
203
- 'total_consumption': [random.uniform(50, 100) for _ in range(10)],
204
- 'grid_generation': [random.uniform(30, 80) for _ in range(10)],
205
- 'storage_usage': [random.uniform(10, 30) for _ in range(10)],
206
- 'solar_storage': random.uniform(10, 30),
207
- 'wind_storage': random.uniform(10, 30),
208
- 'hydro_storage': random.uniform(10, 30),
209
- 'total_storage': random.uniform(50, 100),
210
- }
211
- return data
212
-
213
- def generate_recommendations(data):
214
- recommendations = []
215
- if data['total_consumption'][-1] > data['grid_generation'][-1]:
216
- recommendations.append("Consider integrating additional renewable sources to meet the current demand.")
217
- if data['storage_usage'][-1] > data['total_storage'] * 0.8:
218
- recommendations.append("Energy storage is running low. Consider optimizing the grid or adding more storage.")
219
- return recommendations
220
-
221
- def grid_health_status(data):
222
- status = "Grid is operating normally."
223
- if data['total_consumption'][-1] > 90:
224
- status = "Warning: High consumption detected!"
225
- if data['wind_speed'] > 15:
226
- status = "Warning: High wind speeds, may affect wind turbine output."
227
- return status
228
-
229
- def generate_trading_options(data):
230
- if data['total_storage'] > 60:
231
- return "Energy is available for export to neighboring countries."
232
- else:
233
- return "Energy reserves are low. Trading is not recommended at this moment."
234
 
 
148
  # code 4
149
 
150
 
151
+ import pandas as pd
152
+ import numpy as np
153
+ import requests
154
+ from datetime import datetime
155
+
156
+ # Function to fetch real-time weather data
157
+ def fetch_weather(api_key, location):
158
+ url = f"http://api.openweathermap.org/data/2.5/weather?q={location}&appid={api_key}&units=metric"
159
+ response = requests.get(url).json()
160
+ if response["cod"] == 200:
161
+ return {
162
+ "temperature": response["main"]["temp"],
163
+ "wind_speed": response["wind"]["speed"],
164
+ "weather": response["weather"][0]["description"]
165
+ }
166
+ return None
167
+
168
+ # Generate synthetic grid data
169
+ def generate_synthetic_data():
170
+ time_index = pd.date_range(start=datetime.now(), periods=24, freq="H")
171
+ return pd.DataFrame({
172
+ "timestamp": time_index,
173
+ "load_demand_kwh": np.random.randint(200, 500, len(time_index)),
174
+ "solar_output_kw": np.random.randint(50, 150, len(time_index)),
175
+ "wind_output_kw": np.random.randint(30, 120, len(time_index)),
176
+ "grid_health": np.random.choice(["Good", "Moderate", "Critical"], len(time_index))
177
+ })
178
+
179
+ # Load optimization recommendation
180
+ def optimize_load(demand, solar, wind):
181
+ renewable_supply = solar + wind
182
+ if renewable_supply >= demand:
183
+ return "Grid Stable"
184
+ return "Use Backup or Adjust Load"
185
+
186
+ if __name__ == "__main__":
187
+ print("Backend ready!")
188
 
189
 
190
 
191
  # code 5
192
 
193
 
194
+ # import random
195
+ # import pandas as pd
196
+ # def fetch_data():
197
+ # # Simulating fetching data from a database or API
198
+ # data = {
199
+ # 'temperature': random.uniform(-10, 30),
200
+ # 'wind_speed': random.uniform(0, 20),
201
+ # 'weather_condition': random.choice(['Clear', 'Overcast Clouds', 'Thunderstorm', 'Rain']),
202
+ # 'timestamps': pd.date_range("2025-01-01", periods=10, freq='H'),
203
+ # 'total_consumption': [random.uniform(50, 100) for _ in range(10)],
204
+ # 'grid_generation': [random.uniform(30, 80) for _ in range(10)],
205
+ # 'storage_usage': [random.uniform(10, 30) for _ in range(10)],
206
+ # 'solar_storage': random.uniform(10, 30),
207
+ # 'wind_storage': random.uniform(10, 30),
208
+ # 'hydro_storage': random.uniform(10, 30),
209
+ # 'total_storage': random.uniform(50, 100),
210
+ # }
211
+ # return data
212
+
213
+ # def generate_recommendations(data):
214
+ # recommendations = []
215
+ # if data['total_consumption'][-1] > data['grid_generation'][-1]:
216
+ # recommendations.append("Consider integrating additional renewable sources to meet the current demand.")
217
+ # if data['storage_usage'][-1] > data['total_storage'] * 0.8:
218
+ # recommendations.append("Energy storage is running low. Consider optimizing the grid or adding more storage.")
219
+ # return recommendations
220
+
221
+ # def grid_health_status(data):
222
+ # status = "Grid is operating normally."
223
+ # if data['total_consumption'][-1] > 90:
224
+ # status = "Warning: High consumption detected!"
225
+ # if data['wind_speed'] > 15:
226
+ # status = "Warning: High wind speeds, may affect wind turbine output."
227
+ # return status
228
+
229
+ # def generate_trading_options(data):
230
+ # if data['total_storage'] > 60:
231
+ # return "Energy is available for export to neighboring countries."
232
+ # else:
233
+ # return "Energy reserves are low. Trading is not recommended at this moment."
234