Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -6,11 +6,21 @@ import gradio as gr
|
|
6 |
# Load the trained model
|
7 |
model = joblib.load('hackathonrf.joblib')
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
# Function to get latitude and longitude from location name
|
10 |
def get_coordinates(location):
|
11 |
geolocator = geopy.geocoders.Nominatim(user_agent="air_quality_app")
|
12 |
location = geolocator.geocode(location)
|
13 |
-
return location.latitude, location.longitude
|
14 |
|
15 |
# Function to get AQI value from OpenWeatherMap API
|
16 |
def get_aqi(latitude, longitude):
|
@@ -18,16 +28,16 @@ def get_aqi(latitude, longitude):
|
|
18 |
url = f"http://api.openweathermap.org/data/2.5/air_pollution?lat={latitude}&lon={longitude}&appid={api_key}"
|
19 |
response = requests.get(url)
|
20 |
data = response.json()
|
21 |
-
aqi_value =
|
22 |
return aqi_value
|
23 |
|
24 |
# Function to make prediction
|
25 |
def predict_air_quality(location):
|
26 |
-
latitude, longitude
|
27 |
aqi_value = get_aqi(latitude, longitude)
|
28 |
prediction = model.predict([[aqi_value, aqi_value, aqi_value, aqi_value]])
|
29 |
-
label_string =
|
30 |
-
return f"{
|
31 |
|
32 |
# Create Gradio interface
|
33 |
iface = gr.Interface(fn=predict_air_quality,
|
|
|
6 |
# Load the trained model
|
7 |
model = joblib.load('hackathonrf.joblib')
|
8 |
|
9 |
+
# Define AQI category labels
|
10 |
+
aqi_labels = {
|
11 |
+
0: 'good',
|
12 |
+
1: 'moderate',
|
13 |
+
2: 'unhealthy_sensitive',
|
14 |
+
3: 'unhealthy',
|
15 |
+
4: 'very_unhealthy',
|
16 |
+
5: 'hazardous'
|
17 |
+
}
|
18 |
+
|
19 |
# Function to get latitude and longitude from location name
|
20 |
def get_coordinates(location):
|
21 |
geolocator = geopy.geocoders.Nominatim(user_agent="air_quality_app")
|
22 |
location = geolocator.geocode(location)
|
23 |
+
return location.latitude, location.longitude
|
24 |
|
25 |
# Function to get AQI value from OpenWeatherMap API
|
26 |
def get_aqi(latitude, longitude):
|
|
|
28 |
url = f"http://api.openweathermap.org/data/2.5/air_pollution?lat={latitude}&lon={longitude}&appid={api_key}"
|
29 |
response = requests.get(url)
|
30 |
data = response.json()
|
31 |
+
aqi_value = data['list'][0]['main']['aqi']
|
32 |
return aqi_value
|
33 |
|
34 |
# Function to make prediction
|
35 |
def predict_air_quality(location):
|
36 |
+
latitude, longitude = get_coordinates(location)
|
37 |
aqi_value = get_aqi(latitude, longitude)
|
38 |
prediction = model.predict([[aqi_value, aqi_value, aqi_value, aqi_value]])
|
39 |
+
label_string = aqi_labels[prediction[0]]
|
40 |
+
return f"{location} air quality is currently '{label_string}'"
|
41 |
|
42 |
# Create Gradio interface
|
43 |
iface = gr.Interface(fn=predict_air_quality,
|