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