|
import streamlit as st |
|
import pandas as pd |
|
import numpy as np |
|
import plotly.graph_objects as go |
|
|
|
|
|
st.set_page_config(page_title="Energy Optimization AI", layout="wide", page_icon="π") |
|
|
|
|
|
st.title("πβ‘ Energy Optimization AI β‘π¬οΈ") |
|
st.write(""" |
|
Optimize your energy distribution across renewable sources in real-time |
|
to maximize efficiency, reduce costs, and promote sustainability. |
|
""") |
|
|
|
|
|
st.header("Project Overview") |
|
st.write(""" |
|
This application leverages **AI-based decision-making** to analyze your energy usage across solar and wind energy sources. It provides recommendations for optimizing cost-effectiveness and efficiency while maintaining sustainability goals. Use this tool to make informed energy distribution decisions for homes, industries, or renewable energy setups. |
|
""") |
|
|
|
|
|
st.header("Input Energy Details") |
|
col1, col2 = st.columns(2) |
|
|
|
|
|
with col1: |
|
st.subheader("Solar Energy") |
|
solar_usage = st.slider("Solar Energy Usage (kWh):", 0.0, 1000.0, 200.0, step=10.0) |
|
solar_cost = st.slider("Solar Cost per kWh:", 0.0, 10.0, 2.5, step=0.1) |
|
|
|
with col2: |
|
st.subheader("Wind Energy") |
|
wind_usage = st.slider("Wind Energy Usage (kWh):", 0.0, 1000.0, 300.0, step=10.0) |
|
wind_cost = st.slider("Wind Cost per kWh:", 0.0, 10.0, 1.8, step=0.1) |
|
|
|
|
|
if st.button("π Optimize"): |
|
total_usage = solar_usage + wind_usage |
|
|
|
if total_usage == 0: |
|
st.error("β οΈ Please enter energy usage for at least one source.") |
|
else: |
|
total_cost = (solar_usage * solar_cost) + (wind_usage * wind_cost) |
|
solar_share = (solar_usage / total_usage) * 100 if solar_usage > 0 else 0 |
|
wind_share = (wind_usage / total_usage) * 100 if wind_usage > 0 else 0 |
|
|
|
cost_effective_source = ( |
|
"solar" if solar_cost < wind_cost |
|
else "wind" if wind_cost < solar_cost |
|
else "both sources equally" |
|
) |
|
|
|
suggestion = ( |
|
f"Balance usage between solar and wind energy, prioritizing {cost_effective_source} for lower costs." |
|
) |
|
|
|
|
|
st.subheader("Optimization Results") |
|
col3, col4 = st.columns(2) |
|
with col3: |
|
st.metric("Total Energy Usage", f"{total_usage:.2f} kWh") |
|
st.metric("Solar Share", f"{solar_share:.2f}%") |
|
with col4: |
|
st.metric("Total Cost", f"{total_cost:.2f} currency") |
|
st.metric("Wind Share", f"{wind_share:.2f}%") |
|
|
|
st.success(suggestion) |
|
|
|
|
|
st.subheader("Visualization") |
|
chart_data = pd.DataFrame( |
|
{ |
|
"Energy Source": ["Solar", "Wind"], |
|
"Usage (kWh)": [solar_usage, wind_usage], |
|
"Cost (Currency)": [solar_usage * solar_cost, wind_usage * wind_cost], |
|
} |
|
) |
|
|
|
|
|
fig = go.Figure() |
|
|
|
|
|
fig.add_trace(go.Bar( |
|
x=chart_data["Energy Source"], |
|
y=chart_data["Usage (kWh)"], |
|
name="Usage (kWh)", |
|
marker_color='blue' |
|
)) |
|
|
|
|
|
fig.add_trace(go.Bar( |
|
x=chart_data["Energy Source"], |
|
y=chart_data["Cost (Currency)"], |
|
name="Cost (Currency)", |
|
marker_color='green' |
|
)) |
|
|
|
fig.update_layout( |
|
barmode='group', |
|
title="Energy Usage and Cost Comparison", |
|
xaxis_title="Energy Source", |
|
yaxis_title="Value", |
|
legend_title="Metrics", |
|
) |
|
st.plotly_chart(fig, use_container_width=True) |
|
|
|
|
|
st.subheader("Detailed Explanation") |
|
st.write( |
|
f"Based on your inputs, **{cost_effective_source} energy** is more cost-effective. " |
|
f"This analysis helps balance your energy sources to minimize costs and maximize efficiency." |
|
) |
|
|
|
|
|
st.sidebar.header("About") |
|
st.sidebar.info(""" |
|
This tool helps optimize renewable energy usage for cost savings, sustainability, |
|
and better energy distribution management. |
|
""") |
|
st.sidebar.header("How It Works") |
|
st.sidebar.write(""" |
|
1. **Input Energy Details**: Specify the usage and cost for solar and wind energy. |
|
2. **Optimization**: The tool calculates the total energy usage, cost, and shares of each source. |
|
3. **Visual Analysis**: Get insights into cost-effective strategies with detailed charts and recommendations. |
|
""") |
|
|