|
|
import requests |
|
|
import gradio as gr |
|
|
import os |
|
|
import pandas as pd |
|
|
|
|
|
|
|
|
locations = [ |
|
|
{"State/UT": "Andhra Pradesh", "Capital": "Amaravati", "Latitude": 16.5411, "Longitude": 80.515}, |
|
|
{"State/UT": "Arunachal Pradesh", "Capital": "Itanagar", "Latitude": 27.0844, "Longitude": 93.6053}, |
|
|
{"State/UT": "Assam", "Capital": "Dispur", "Latitude": 26.1445, "Longitude": 91.7362}, |
|
|
{"State/UT": "Bihar", "Capital": "Patna", "Latitude": 25.5941, "Longitude": 85.1376}, |
|
|
{"State/UT": "Chhattisgarh", "Capital": "Raipur", "Latitude": 21.2514, "Longitude": 81.6296}, |
|
|
{"State/UT": "Goa", "Capital": "Panaji", "Latitude": 15.4909, "Longitude": 73.8278}, |
|
|
{"State/UT": "Gujarat", "Capital": "Gandhinagar", "Latitude": 23.2156, "Longitude": 72.6369}, |
|
|
{"State/UT": "Haryana", "Capital": "Chandigarh", "Latitude": 30.7333, "Longitude": 76.7794}, |
|
|
{"State/UT": "Himachal Pradesh", "Capital": "Shimla", "Latitude": 31.1048, "Longitude": 77.1734}, |
|
|
{"State/UT": "Jharkhand", "Capital": "Ranchi", "Latitude": 23.3441, "Longitude": 85.3096}, |
|
|
{"State/UT": "Karnataka", "Capital": "Bengaluru", "Latitude": 12.9716, "Longitude": 77.5946}, |
|
|
{"State/UT": "Kerala", "Capital": "Thiruvananthapuram", "Latitude": 8.5241, "Longitude": 76.9366}, |
|
|
{"State/UT": "Madhya Pradesh", "Capital": "Bhopal", "Latitude": 23.2599, "Longitude": 77.4126}, |
|
|
{"State/UT": "Maharashtra", "Capital": "Mumbai", "Latitude": 19.076, "Longitude": 72.8777}, |
|
|
{"State/UT": "Manipur", "Capital": "Imphal", "Latitude": 24.817, "Longitude": 93.9368}, |
|
|
{"State/UT": "Meghalaya", "Capital": "Shillong", "Latitude": 25.5788, "Longitude": 91.8933}, |
|
|
{"State/UT": "Mizoram", "Capital": "Aizawl", "Latitude": 23.1645, "Longitude": 92.9376}, |
|
|
{"State/UT": "Nagaland", "Capital": "Kohima", "Latitude": 25.6747, "Longitude": 94.1103}, |
|
|
{"State/UT": "Odisha", "Capital": "Bhubaneswar", "Latitude": 20.2961, "Longitude": 85.8245}, |
|
|
{"State/UT": "Punjab", "Capital": "Chandigarh", "Latitude": 30.7333, "Longitude": 76.7794}, |
|
|
{"State/UT": "Rajasthan", "Capital": "Jaipur", "Latitude": 26.9124, "Longitude": 75.7873}, |
|
|
{"State/UT": "Sikkim", "Capital": "Gangtok", "Latitude": 27.3389, "Longitude": 88.6065}, |
|
|
{"State/UT": "Tamil Nadu", "Capital": "Chennai", "Latitude": 13.0827, "Longitude": 80.2707}, |
|
|
{"State/UT": "Telangana", "Capital": "Hyderabad", "Latitude": 17.385, "Longitude": 78.4867}, |
|
|
{"State/UT": "Tripura", "Capital": "Agartala", "Latitude": 23.8315, "Longitude": 91.2868}, |
|
|
{"State/UT": "Uttar Pradesh", "Capital": "Lucknow", "Latitude": 26.8467, "Longitude": 80.9462}, |
|
|
{"State/UT": "Uttarakhand", "Capital": "Dehradun", "Latitude": 30.3165, "Longitude": 78.0322}, |
|
|
{"State/UT": "West Bengal", "Capital": "Kolkata", "Latitude": 22.5726, "Longitude": 88.3639}, |
|
|
{"State/UT": "Andaman and Nicobar Islands", "Capital": "Port Blair", "Latitude": 11.6234, "Longitude": 92.7265}, |
|
|
{"State/UT": "Chandigarh", "Capital": "Chandigarh", "Latitude": 30.7333, "Longitude": 76.7794}, |
|
|
{"State/UT": "Dadra and Nagar Haveli and Daman and Diu", "Capital": "Daman", "Latitude": 20.3974, "Longitude": 72.8328}, |
|
|
{"State/UT": "Lakshadweep", "Capital": "Kavaratti", "Latitude": 10.5667, "Longitude": 72.6369}, |
|
|
{"State/UT": "Delhi", "Capital": "New Delhi", "Latitude": 28.6139, "Longitude": 77.209}, |
|
|
{"State/UT": "Puducherry", "Capital": "Puducherry", "Latitude": 11.9416, "Longitude": 79.8083}, |
|
|
{"State/UT": "Ladakh", "Capital": "Leh", "Latitude": 34.1526, "Longitude": 77.577} |
|
|
] |
|
|
|
|
|
|
|
|
def get_carbon_intensity(lat, lon): |
|
|
api_token = os.getenv('API_TOKEN') |
|
|
url = f'https://api.electricitymap.org/v3/carbon-intensity/latest?lat={lat}&lon={lon}' |
|
|
headers = { |
|
|
'auth-token': api_token |
|
|
} |
|
|
|
|
|
response = requests.get(url, headers=headers) |
|
|
|
|
|
if response.status_code == 200: |
|
|
data = response.json() |
|
|
carbon_intensity = data.get("carbonIntensity", "N/A") |
|
|
return carbon_intensity |
|
|
else: |
|
|
return f"Failed to retrieve data: {response.status_code}, {response.text}" |
|
|
|
|
|
|
|
|
def get_all_carbon_intensities(): |
|
|
results = [] |
|
|
for location in locations: |
|
|
lat = location["Latitude"] |
|
|
lon = location["Longitude"] |
|
|
carbon_intensity = get_carbon_intensity(lat, lon) |
|
|
location["Carbon Intensity"] = carbon_intensity |
|
|
results.append(location) |
|
|
|
|
|
df = pd.DataFrame(results) |
|
|
return df |
|
|
|
|
|
|
|
|
iface = gr.Interface(fn=get_all_carbon_intensities, |
|
|
inputs=[], |
|
|
outputs=gr.DataFrame(), |
|
|
title="Electricity Map Carbon Intensity", |
|
|
description="Get the latest carbon intensity for predefined locations.") |
|
|
|
|
|
iface.launch() |
|
|
|