Spaces:
Build error
Build error
| 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. | |
| """) | |