Spaces:
Sleeping
Sleeping
import pandas as pd | |
import requests | |
import gradio as gr | |
import os | |
# Constants | |
API_URL = 'https://api.electricitymap.org/v3/carbon-intensity/latest' | |
API_TOKEN = os.getenv('ELECTRICITYMAP_API_TOKEN') | |
# Define the data for NIFTY 50 company headquarters | |
data = { | |
"Company": ["Reliance Industries", "Tata Consultancy Services", "HDFC Bank", "Infosys", "Hindustan Unilever", | |
"ICICI Bank", "Kotak Mahindra Bank", "SBI", "Bharti Airtel", "HCL Technologies", | |
"Asian Paints", "Bajaj Finance", "ITC", "Adani Green Energy", "Axis Bank", | |
"Maruti Suzuki", "Larsen & Toubro", "Tata Motors", "Sun Pharma", "HDFC", | |
"Wipro", "UltraTech Cement", "Nestle India", "Adani Ports", "Bajaj Finserv", | |
"Titan Company", "Grasim Industries", "Mahindra & Mahindra", "Tech Mahindra", "Divi's Laboratories", | |
"JSW Steel", "Power Grid Corporation", "Tata Steel", "Britannia Industries", "Hindalco Industries", | |
"Eicher Motors", "Dr. Reddy's Laboratories", "Tata Consumer Products", "HDFC Life", "SBI Life Insurance", | |
"Hero MotoCorp", "Coal India", "Indian Oil Corporation", "Oil and Natural Gas Corporation", "Bharat Petroleum", | |
"Cipla", "Shree Cement", "Bajaj Auto", "IndusInd Bank", "NTPC"], | |
"Location": ["Mumbai, Maharashtra", "Mumbai, Maharashtra", "Mumbai, Maharashtra", "Bengaluru, Karnataka", "Mumbai, Maharashtra", | |
"Mumbai, Maharashtra", "Mumbai, Maharashtra", "Mumbai, Maharashtra", "New Delhi, Delhi", "Noida, Uttar Pradesh", | |
"Mumbai, Maharashtra", "Pune, Maharashtra", "Kolkata, West Bengal", "Ahmedabad, Gujarat", "Mumbai, Maharashtra", | |
"New Delhi, Delhi", "Mumbai, Maharashtra", "Mumbai, Maharashtra", "Mumbai, Maharashtra", "Mumbai, Maharashtra", | |
"Bengaluru, Karnataka", "Mumbai, Maharashtra", "Gurugram, Haryana", "Ahmedabad, Gujarat", "Pune, Maharashtra", | |
"Bengaluru, Karnataka", "Nagda, Madhya Pradesh", "Mumbai, Maharashtra", "Pune, Maharashtra", "Hyderabad, Telangana", | |
"Mumbai, Maharashtra", "New Delhi, Delhi", "Mumbai, Maharashtra", "Bengaluru, Karnataka", "Mumbai, Maharashtra", | |
"Gurugram, Haryana", "Hyderabad, Telangana", "Mumbai, Maharashtra", "Mumbai, Maharashtra", "Mumbai, Maharashtra", | |
"New Delhi, Delhi", "Kolkata, West Bengal", "New Delhi, Delhi", "New Delhi, Delhi", "Mumbai, Maharashtra", | |
"Mumbai, Maharashtra", "Kolkata, West Bengal", "Pune, Maharashtra", "Mumbai, Maharashtra", "New Delhi, Delhi"], | |
"Latitude": [19.0760, 19.0760, 19.0760, 12.9716, 19.0760, | |
19.0760, 19.0760, 19.0760, 28.6139, 28.5355, | |
19.0760, 18.5204, 22.5726, 23.0225, 19.0760, | |
28.6139, 19.0760, 19.0760, 19.0760, 19.0760, | |
12.9716, 19.0760, 28.4595, 23.0225, 18.5204, | |
12.9716, 23.5330, 19.0760, 18.5204, 17.3850, | |
19.0760, 28.6139, 19.0760, 12.9716, 19.0760, | |
28.4595, 17.3850, 19.0760, 19.0760, 19.0760, | |
28.6139, 22.5726, 28.6139, 28.6139, 19.0760, | |
19.0760, 22.5726, 18.5204, 19.0760, 28.6139], | |
"Longitude": [72.8777, 72.8777, 72.8777, 77.5946, 72.8777, | |
72.8777, 72.8777, 72.8777, 77.2090, 77.3910, | |
72.8777, 73.8567, 88.3639, 72.5714, 72.8777, | |
77.2090, 72.8777, 72.8777, 72.8777, 72.8777, | |
77.5946, 72.8777, 77.0266, 72.5714, 73.8567, | |
77.5946, 75.4254, 72.8777, 73.8567, 78.4867, | |
72.8777, 77.2090, 72.8777, 77.5946, 72.8777, | |
77.0266, 78.4867, 72.8777, 72.8777, 72.8777, | |
77.2090, 88.3639, 77.2090, 77.2090, 72.8777, | |
72.8777, 88.3639, 73.8567, 72.8777, 77.2090] | |
} | |
df = pd.DataFrame(data) | |
# Function to make API request | |
def get_carbon_intensity(lat, lon): | |
headers = {'auth-token': API_TOKEN} | |
params = {'lat': lat, 'lon': lon} | |
response = requests.get(API_URL, headers=headers, params=params) | |
if response.status_code == 200: | |
return response.json().get('carbonIntensity', 'N/A') | |
else: | |
return 'Error' | |
# Define the function to fetch carbon intensity for all companies | |
def fetch_carbon_intensities(): | |
results = [] | |
for index, row in df.iterrows(): | |
lat, lon = row["Latitude"], row["Longitude"] | |
carbon_intensity = get_carbon_intensity(lat, lon) | |
results.append({ | |
"Company": row["Company"], | |
"Location": row["Location"], | |
"Latitude": row["Latitude"], | |
"Longitude": row["Longitude"], | |
"Carbon Intensity": carbon_intensity | |
}) | |
return pd.DataFrame(results) | |
# Define Gradio interface | |
def show_carbon_intensity_table(): | |
result_df = fetch_carbon_intensities() | |
return result_df | |
gr_interface = gr.Interface(fn=show_carbon_intensity_table, | |
inputs=None, | |
outputs="dataframe", | |
title="Carbon Intensity by NIFTY 50 Company Headquarters", | |
description="Click the button below to see the latest carbon intensity for NIFTY 50 company headquarters.") | |
gr_interface.launch() | |