MLDeveloper commited on
Commit
b0848d8
·
verified ·
1 Parent(s): 5676aec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -9
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import streamlit as st
2
  import pandas as pd
3
  import numpy as np
4
- #import matplotlib.pyplot as plt
5
  import openai
6
 
7
  # Load the solar data CSV file
@@ -38,15 +38,24 @@ def estimate_cost_and_savings(system_size, state_data, electricity_bill):
38
  return system_cost, savings_per_month, payback_period
39
 
40
  # Streamlit UI
 
41
  st.title("AI-based Solar Project Estimation Tool")
42
 
43
- # User input form
44
- st.sidebar.header("Enter Your Details")
45
- location = st.sidebar.text_input("Enter your city or state", "")
46
- roof_size = st.sidebar.number_input("Enter your roof size (in sq meters)", min_value=1)
47
- electricity_bill = st.sidebar.number_input("Enter your monthly electricity bill (₹)", min_value=0)
48
 
49
- if location and roof_size > 0 and electricity_bill >= 0:
 
 
 
 
 
 
 
 
 
 
 
50
  # Fetch state data from the dataset
51
  state_data = get_state_data(location)
52
  if state_data is not None:
@@ -69,9 +78,9 @@ if location and roof_size > 0 and electricity_bill >= 0:
69
 
70
  # Plot savings and payback period
71
  fig, ax = plt.subplots()
72
- ax.bar(['Total System Cost', 'Monthly Savings', 'Payback Period'],
73
  [system_cost, savings_per_month, payback_period*12], color=['blue', 'green', 'orange'])
74
- ax.set_ylabel("Amount (₹) / Time (years)")
75
  ax.set_title("Solar System Estimation Breakdown")
76
  st.pyplot(fig)
77
 
 
1
  import streamlit as st
2
  import pandas as pd
3
  import numpy as np
4
+ import matplotlib.pyplot as plt
5
  import openai
6
 
7
  # Load the solar data CSV file
 
38
  return system_cost, savings_per_month, payback_period
39
 
40
  # Streamlit UI
41
+ st.set_page_config(page_title="AI-based Solar Project Estimation Tool", layout="centered")
42
  st.title("AI-based Solar Project Estimation Tool")
43
 
44
+ # Center all input widgets
45
+ st.write("### Enter Your Details Below:")
 
 
 
46
 
47
+ with st.form("solar_form"):
48
+ # Get the list of unique states from the dataset
49
+ state_options = df['State'].dropna().unique()
50
+
51
+ # Input widgets
52
+ location = st.selectbox("Select your State", options=sorted(state_options))
53
+ roof_size = st.number_input("Enter your roof size (in sq meters)", min_value=1)
54
+ electricity_bill = st.number_input("Enter your monthly electricity bill (₹)", min_value=0)
55
+
56
+ submitted = st.form_submit_button("Get Estimate")
57
+
58
+ if submitted and location and roof_size > 0 and electricity_bill >= 0:
59
  # Fetch state data from the dataset
60
  state_data = get_state_data(location)
61
  if state_data is not None:
 
78
 
79
  # Plot savings and payback period
80
  fig, ax = plt.subplots()
81
+ ax.bar(['Total System Cost', 'Monthly Savings', 'Payback Period (months)'],
82
  [system_cost, savings_per_month, payback_period*12], color=['blue', 'green', 'orange'])
83
+ ax.set_ylabel("Amount (₹) / Time (Months)")
84
  ax.set_title("Solar System Estimation Breakdown")
85
  st.pyplot(fig)
86