Spaces:
Sleeping
Sleeping
| import requests | |
| import gradio as gr | |
| import pandas as pd | |
| import os | |
| def fetch_air_quality(city, api_key): | |
| url = f"http://api.waqi.info/feed/{city}/?token={api_key}" | |
| response = requests.get(url) | |
| if response.status_code == 200: | |
| try: | |
| data = response.json() | |
| if 'data' in data and 'aqi' in data['data'] and 'time' in data['data'] and 's' in data['data']['time']: | |
| aqi = data['data']['aqi'] | |
| timestamp = data['data']['time']['s'] | |
| # Assuming the API's timestamp is in UTC | |
| timestamp_with_zone = f"{timestamp} UTC" | |
| return {'City': city, 'AQI': aqi, 'Timestamp': timestamp_with_zone} | |
| else: | |
| return {'City': city, 'AQI': 'Data not available', 'Timestamp': 'N/A'} | |
| except ValueError: | |
| return {'City': city, 'AQI': 'Invalid response', 'Timestamp': 'N/A'} | |
| else: | |
| return {'City': city, 'AQI': 'Error', 'Timestamp': 'N/A'} | |
| def get_air_quality(): | |
| cities = [ | |
| "Amaravati", "Itanagar", "Dispur", "Patna", "Raipur", "Panaji", | |
| "Gandhinagar", "Chandigarh", "Shimla", "Ranchi", "Bengaluru", | |
| "Thiruvananthapuram", "Bhopal", "Mumbai", "Imphal", "Shillong", | |
| "Aizawl", "Kohima", "Bhubaneswar", "Chandigarh", "Jaipur", | |
| "Gangtok", "Chennai", "Hyderabad", "Agartala", "Lucknow", | |
| "Dehradun", "Kolkata", "Port Blair", "Chandigarh", "Daman", | |
| "Kavaratti", "New Delhi", "Puducherry", "Leh" | |
| ] | |
| api_key = os.getenv("API_KEY") | |
| results = [fetch_air_quality(city, api_key) for city in cities] | |
| df = pd.DataFrame(results) | |
| return df | |
| def display_air_quality(): | |
| df = get_air_quality() | |
| return df | |
| iface = gr.Interface( | |
| fn=display_air_quality, | |
| inputs=None, | |
| outputs=gr.Dataframe(label="Air Quality Index by City"), | |
| title="Air Quality Index Checker", | |
| description="Displays the AQI and Timestamp (UTC) for various cities." | |
| ) | |
| iface.launch() | |