Spaces:
Build error
Build error
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,
|