File size: 4,528 Bytes
e923616
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import streamlit as st
import pandas as pd
import numpy as np
import plotly.graph_objects as go

# App Configuration
st.set_page_config(page_title="Energy Optimization AI", layout="wide", page_icon="🌞")

# App Title
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.
""")

# Overview Section
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.
""")

# Input Section
st.header("Input Energy Details")
col1, col2 = st.columns(2)

# User Inputs
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)

# Optimization Logic
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."
        )

        # Display Results
        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)

        # Charts
        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],
            }
        )

        # Improved Visualization with Plotly
        fig = go.Figure()

        # Add Usage Bar
        fig.add_trace(go.Bar(
            x=chart_data["Energy Source"],
            y=chart_data["Usage (kWh)"],
            name="Usage (kWh)",
            marker_color='blue'
        ))

        # Add Cost Bar
        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)

        # Explanation
        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."
        )

# Sidebar
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.
""")