Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| import matplotlib.pyplot as plt | |
| import seaborn as sns | |
| from data_fetcher import get_hydrogen_data | |
| from model import predict_hydrogen_production | |
| # Load dataset | |
| df = get_hydrogen_data() | |
| # Streamlit UI | |
| st.set_page_config(page_title="Hydrogen Analysis App", layout="wide") | |
| # Sidebar Inputs | |
| st.sidebar.header("Electrolysis Parameters") | |
| current_density = st.sidebar.slider("Current Density (A/cmΒ²)", 0.1, 2.0, 1.0) | |
| voltage = st.sidebar.slider("Voltage (V)", 1.6, 2.2, 1.8) | |
| temperature = st.sidebar.slider("Cell Temperature (Β°C)", 25, 80, 50) | |
| membrane = st.sidebar.selectbox("Membrane Type", ["Nafion", "Fumapem", "Other"]) | |
| electrodes = st.sidebar.selectbox("Electrodes", ["Platinum", "Nickel", "Other"]) | |
| # Predict Button | |
| if st.sidebar.button("Predict Hydrogen Production"): | |
| params = { | |
| "current_density": current_density, | |
| "voltage": voltage, | |
| "temperature": temperature, | |
| "membrane": membrane, | |
| "electrodes": electrodes | |
| } | |
| prediction = predict_hydrogen_production(params) | |
| st.sidebar.success(f"π Prediction:\n{prediction}") | |
| # Dashboard | |
| st.title("π Hydrogen Techno-Economics Analysis") | |
| st.markdown("This app provides insights into hydrogen production via electrolysis.") | |
| # Show Dataset | |
| st.subheader("π Electrolysis Data") | |
| st.dataframe(df) | |
| # Comparison Graphs | |
| st.subheader("π Efficiency Comparison") | |
| fig, ax = plt.subplots() | |
| sns.barplot(x=df["Parameter"], y=df["Value"], ax=ax, palette="coolwarm") | |
| plt.xticks(rotation=30, ha="right") | |
| st.pyplot(fig) | |
| # Cost Analysis | |
| st.subheader("π° Cost Analysis") | |
| water_cost = df[df["Parameter"] == "Water Cost"]["Value"].values[0] | |
| energy_cost = df[df["Parameter"] == "Energy Cost"]["Value"].values[0] | |
| hydrogen_rate = df[df["Parameter"] == "Hydrogen Production Rate"]["Value"].values[0] | |
| st.metric("Water Cost", f"${water_cost} per mΒ³") | |
| st.metric("Energy Cost", f"${energy_cost} per kWh") | |
| st.metric("Hydrogen Production", f"{hydrogen_rate} ml/min") | |
| # Conclusion | |
| st.subheader("π Interpretation & Suggestions") | |
| st.info("Increase voltage and optimize membrane to improve efficiency.") | |