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