Spaces:
Sleeping
Sleeping
Update app/main.py
Browse files- app/main.py +30 -13
app/main.py
CHANGED
@@ -116,7 +116,14 @@ class HVACCalculator:
|
|
116 |
self.data_export = DataExport()
|
117 |
self.cooling_calculator = CoolingLoadCalculator()
|
118 |
self.heating_calculator = HeatingLoadCalculator()
|
119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
|
121 |
# Persist ClimateData in session_state
|
122 |
if 'climate_data_obj' not in st.session_state:
|
@@ -898,11 +905,16 @@ class HVACCalculator:
|
|
898 |
return False, f"Error in roof CLTD calculation: {str(e)}", {}
|
899 |
|
900 |
for window in building_components.get('windows', []):
|
901 |
-
adjusted_shgc =
|
902 |
-
|
903 |
-
|
904 |
-
|
905 |
-
|
|
|
|
|
|
|
|
|
|
|
906 |
load_dict = self.cooling_calculator.calculate_window_cooling_load(
|
907 |
window=window,
|
908 |
outdoor_temp=outdoor_conditions['temperature'],
|
@@ -958,11 +970,16 @@ class HVACCalculator:
|
|
958 |
})
|
959 |
|
960 |
for skylight in building_components.get('skylights', []):
|
961 |
-
adjusted_shgc =
|
962 |
-
|
963 |
-
|
964 |
-
|
965 |
-
|
|
|
|
|
|
|
|
|
|
|
966 |
load_dict = self.cooling_calculator.calculate_skylight_cooling_load(
|
967 |
skylight=skylight,
|
968 |
outdoor_temp=outdoor_conditions['temperature'],
|
@@ -1289,7 +1306,7 @@ class HVACCalculator:
|
|
1289 |
'name': roof.name,
|
1290 |
'orientation': roof.orientation.value,
|
1291 |
'area': roof.area,
|
1292 |
-
'u_value':
|
1293 |
'solar_absorptivity': roof.solar_absorptivity,
|
1294 |
'delta_t': delta_t,
|
1295 |
'load': load / 1000
|
@@ -1318,7 +1335,7 @@ class HVACCalculator:
|
|
1318 |
)
|
1319 |
results['detailed_loads']['windows'].append({
|
1320 |
'name': window.name,
|
1321 |
-
'orientation':
|
1322 |
'area': window.area,
|
1323 |
'u_value': window.u_value,
|
1324 |
'glazing_type': window.glazing_type,
|
|
|
116 |
self.data_export = DataExport()
|
117 |
self.cooling_calculator = CoolingLoadCalculator()
|
118 |
self.heating_calculator = HeatingLoadCalculator()
|
119 |
+
# Initialize Drapery with UI inputs from session state
|
120 |
+
self.drapery = Drapery(
|
121 |
+
openness=st.session_state.get('drapery_openness', 'Semi-Open'),
|
122 |
+
color=st.session_state.get('drapery_color', 'Medium'),
|
123 |
+
fullness=st.session_state.get('drapery_fullness', 1.5),
|
124 |
+
enabled=st.session_state.get('drapery_enabled', True),
|
125 |
+
shading_device=st.session_state.get('shading_device', 'Drapes')
|
126 |
+
)
|
127 |
|
128 |
# Persist ClimateData in session_state
|
129 |
if 'climate_data_obj' not in st.session_state:
|
|
|
905 |
return False, f"Error in roof CLTD calculation: {str(e)}", {}
|
906 |
|
907 |
for window in building_components.get('windows', []):
|
908 |
+
adjusted_shgc = window.shgc # Default to base SHGC
|
909 |
+
if hasattr(window, 'drapery_type') and window.drapery_type and self.drapery.enabled:
|
910 |
+
try:
|
911 |
+
adjusted_shgc = self.drapery.get_shading_coefficient(window.shgc)
|
912 |
+
if st.session_state.get('debug_mode', False):
|
913 |
+
st.write(f"Debug: Window {window.name} adjusted SHGC: {adjusted_shgc}")
|
914 |
+
except Exception as e:
|
915 |
+
if st.session_state.get('debug_mode', False):
|
916 |
+
st.error(f"Error adjusting SHGC for window {window.name}: {str(e)}")
|
917 |
+
adjusted_shgc = window.shgc
|
918 |
load_dict = self.cooling_calculator.calculate_window_cooling_load(
|
919 |
window=window,
|
920 |
outdoor_temp=outdoor_conditions['temperature'],
|
|
|
970 |
})
|
971 |
|
972 |
for skylight in building_components.get('skylights', []):
|
973 |
+
adjusted_shgc = skylight.shgc # Default to base SHGC
|
974 |
+
if hasattr(skylight, 'drapery_type') and skylight.drapery_type and self.drapery.enabled:
|
975 |
+
try:
|
976 |
+
adjusted_shgc = self.drapery.get_shading_coefficient(skylight.shgc)
|
977 |
+
if st.session_state.get('debug_mode', False):
|
978 |
+
st.write(f"Debug: Skylight {skylight.name} adjusted SHGC: {adjusted_shgc}")
|
979 |
+
except Exception as e:
|
980 |
+
if st.session_state.get('debug_mode', False):
|
981 |
+
st.error(f"Error adjusting SHGC for skylight {skylight.name}: {str(e)}")
|
982 |
+
adjusted_shgc = skylight.shgc
|
983 |
load_dict = self.cooling_calculator.calculate_skylight_cooling_load(
|
984 |
skylight=skylight,
|
985 |
outdoor_temp=outdoor_conditions['temperature'],
|
|
|
1306 |
'name': roof.name,
|
1307 |
'orientation': roof.orientation.value,
|
1308 |
'area': roof.area,
|
1309 |
+
'u_value': wall.u_value,
|
1310 |
'solar_absorptivity': roof.solar_absorptivity,
|
1311 |
'delta_t': delta_t,
|
1312 |
'load': load / 1000
|
|
|
1335 |
)
|
1336 |
results['detailed_loads']['windows'].append({
|
1337 |
'name': window.name,
|
1338 |
+
'orientation': wall.orientation.value,
|
1339 |
'area': window.area,
|
1340 |
'u_value': window.u_value,
|
1341 |
'glazing_type': window.glazing_type,
|