""" Main application file for HVAC Load Calculator This is the main entry point for the HVAC Load Calculator web application. It sets up the Streamlit interface and navigation between different pages. """ import streamlit as st import os import sys from pathlib import Path # Add the parent directory to sys.path to import modules sys.path.append(os.path.dirname(os.path.abspath(__file__))) # Import pages from pages.cooling_calculator import cooling_calculator from pages.heating_calculator import heating_calculator # Set page configuration st.set_page_config( page_title="HVAC Load Calculator", page_icon="🔥❄️", layout="wide", initial_sidebar_state="expanded" ) # Define main function def main(): """Main function for the HVAC Load Calculator web application.""" # Add custom CSS st.markdown(""" """, unsafe_allow_html=True) # Sidebar navigation st.sidebar.title("HVAC Load Calculator") st.sidebar.image("https://img.icons8.com/fluency/96/air-conditioner.png", width=100) # Navigation options page = st.sidebar.radio( "Select Calculator", ["Home", "Cooling Load Calculator", "Heating Load Calculator"] ) # Display selected page if page == "Home": display_home_page() elif page == "Cooling Load Calculator": cooling_calculator() elif page == "Heating Load Calculator": heating_calculator() # Footer st.sidebar.markdown("---") st.sidebar.info( "HVAC Load Calculator v1.0\n\n" "Based on ASHRAE calculation methods\n\n" "© 2025" ) def display_home_page(): """Display the home page.""" st.markdown('

HVAC Load Calculator

', unsafe_allow_html=True) st.markdown('

A Modern Tool for HVAC Design

', unsafe_allow_html=True) # Introduction st.markdown("""

Welcome to the HVAC Load Calculator! This tool helps you calculate cooling and heating loads for buildings using the ASHRAE method. It's designed for educational purposes to help students understand the factors that influence HVAC load calculations.

""", unsafe_allow_html=True) # Features st.markdown("### Features") col1, col2 = st.columns(2) with col1: st.markdown(""" #### Cooling Load Calculator - Calculate sensible and latent cooling loads - Account for conduction, solar radiation, infiltration, and internal gains - Visualize load components with charts and tables - Export results for assignments """) with col2: st.markdown(""" #### Heating Load Calculator - Calculate peak heating loads - Account for conduction, infiltration, and ventilation - Estimate annual heating energy requirements - Visualize load components with charts and tables """) # How to use st.markdown("### How to Use") st.markdown(""" 1. Select either the Cooling Load Calculator or Heating Load Calculator from the sidebar 2. Fill in the required information in each step 3. Review any warnings that appear (you can proceed with warnings) 4. Calculate results and analyze the output 5. Export results for your assignments """) # Reference data st.markdown("### Reference Data") st.markdown(""" The calculator includes reference data for: - Building materials (walls, roofs, floors) - Glass types and shading coefficients - Climate data for various locations - Occupancy patterns and internal gains This data is based on ASHRAE standards and guidelines. """) # Get started button col1, col2, col3 = st.columns([1, 2, 1]) with col2: st.markdown("### Get Started") cooling_button = st.button("Go to Cooling Load Calculator") heating_button = st.button("Go to Heating Load Calculator") if cooling_button: st.session_state.page = "Cooling Load Calculator" st.experimental_rerun() if heating_button: st.session_state.page = "Heating Load Calculator" st.experimental_rerun() # Run the application if __name__ == "__main__": main()