Shivraj8615 commited on
Commit
d9c521a
·
verified ·
1 Parent(s): 5423c43

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -0
app.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+
4
+ def calculate_metrics(data):
5
+ data["CRF"] = round((data["Condensate Return Quantity"] / data["Steam Consumption Quantity"]) * 100, 2)
6
+ data["SSC"] = round(data["Steam Consumption Quantity"] / data["Production Quantity"], 2)
7
+ data["SWC"] = round(data["Steam Consumption Quantity"] / data["Production Quantity"], 2)
8
+ return data
9
+
10
+ def calculate_feed_water_temp(cond_temp, cond_qty, tank_size):
11
+ ambient_temp = 30
12
+ make_up = tank_size - cond_qty
13
+ feed_water_temp = round(((cond_qty * cond_temp) + (make_up * ambient_temp)) / tank_size, 2)
14
+ return feed_water_temp
15
+
16
+ def main():
17
+ st.title("Industrial Utility Dashboard")
18
+
19
+ if "report_data" not in st.session_state:
20
+ st.session_state.report_data = None
21
+
22
+ num_sections = st.number_input("Enter number of sections:", min_value=1, step=1)
23
+
24
+ section_data = []
25
+ for i in range(1, num_sections + 1):
26
+ st.subheader(f"Section {i}")
27
+ steam_consumption = round(st.number_input(f"Steam Consumption Quantity (Section {i})", min_value=0.0, step=0.1), 2)
28
+ condensate_return = round(st.number_input(f"Condensate Return Quantity (Section {i})", min_value=0.0, step=0.1), 2)
29
+ production_quantity = round(st.number_input(f"Production Quantity (Section {i})", min_value=0.0, step=0.1), 2)
30
+ water_consumption = round(st.number_input(f"Water Consumption Quantity (Section {i})", min_value=0.0, step=0.1), 2)
31
+
32
+ section_data.append([f"Section {i}", production_quantity, water_consumption, condensate_return, steam_consumption])
33
+
34
+ if st.button("Generate Report"):
35
+ columns = ["Section", "Production Quantity", "Water Consumption Quantity", "Condensate Return Quantity", "Steam Consumption Quantity"]
36
+ df = pd.DataFrame(section_data, columns=columns)
37
+ df = calculate_metrics(df)
38
+
39
+ total_row = df.sum(numeric_only=True).round(2)
40
+ total_row["Section"] = "Total"
41
+ total_df = pd.DataFrame([total_row])
42
+
43
+ total_df["CRF"] = round((total_df["Condensate Return Quantity"] / total_df["Steam Consumption Quantity"]) * 100, 2)
44
+ total_df["SSC"] = round(total_df["Steam Consumption Quantity"] / total_df["Production Quantity"], 2)
45
+ total_df["SWC"] = round(total_df["Steam Consumption Quantity"] / total_df["Production Quantity"], 2)
46
+
47
+ df = pd.concat([df, total_df], ignore_index=True)
48
+ st.session_state.report_data = df
49
+
50
+ if st.session_state.report_data is not None:
51
+ st.dataframe(st.session_state.report_data)
52
+
53
+ st.subheader("Calculate Feed Water Temperature")
54
+ cond_temp = st.number_input("Enter Condensate Returning Temperature:", min_value=0.0, step=0.1)
55
+ cond_qty = st.number_input("Enter Condensate Returning Quantity:", min_value=0.0, step=0.1)
56
+ tank_size = st.number_input("Enter Feed Water Tank Size:", min_value=0.0, step=0.1)
57
+
58
+ if st.button("Calculate Feed Water Temperature"):
59
+ result = calculate_feed_water_temp(cond_temp, cond_qty, tank_size)
60
+ st.success(f"Feed Water Temperature: {result:.2f} °C")
61
+
62
+ if __name__ == "__main__":
63
+ main()