TLeonidas's picture
Update app.py
a8c2e0f verified
raw
history blame contribute delete
No virus
1.59 kB
import requests
import geopy
import joblib
import gradio as gr
# Load the trained model
model = joblib.load('hackathonrf.joblib')
# Define AQI category labels
aqi_labels = {
0: 'good',
1: 'moderate',
2: 'unhealthy_sensitive',
3: 'unhealthy',
4: 'very_unhealthy',
5: 'hazardous'
}
# Function to get latitude and longitude from location name
def get_coordinates(location):
geolocator = geopy.geocoders.Nominatim(user_agent="air_quality_app")
location = geolocator.geocode(location)
return location.latitude, location.longitude
# Function to get AQI value from OpenWeatherMap API
def get_aqi(latitude, longitude):
api_key = "78b94879cbb50e02397e93687aa24adc" # Hidden API Key
url = f"http://api.openweathermap.org/data/2.5/air_pollution?lat={latitude}&lon={longitude}&appid={api_key}"
response = requests.get(url)
data = response.json()
aqi_value = data['list'][0]['main']['aqi']
return aqi_value
# Function to make prediction
def predict_air_quality(location):
latitude, longitude = get_coordinates(location)
aqi_value = get_aqi(latitude, longitude)
prediction = model.predict([[aqi_value, aqi_value, aqi_value, aqi_value]])
label_string = aqi_labels[prediction[0]]
return f"{location} air quality is currently '{label_string}'"
# Create Gradio interface
iface = gr.Interface(fn=predict_air_quality,
inputs=["text"],
outputs="text",
title="Air Quality Prediction",
description="Enter location:")
iface.launch()