File size: 1,587 Bytes
706626a
3fedf2b
 
706626a
 
 
 
 
a8c2e0f
 
 
 
 
 
 
 
 
 
3fedf2b
 
 
 
a8c2e0f
3fedf2b
706626a
ff11245
 
60d53f2
752a6a3
 
a8c2e0f
0a26a8f
706626a
64c2ffd
ff11245
a8c2e0f
0a26a8f
3ee9ded
a8c2e0f
 
706626a
 
 
ff11245
64c2ffd
 
ff11245
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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()