Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from PIL import Image | |
| import io | |
| st.set_page_config(page_title="TGA Graph Interpreter", layout="wide") | |
| st.title("TGA Graph Interpreter") | |
| st.write("Upload TGA thermograms and record degradation details. The app will generate a structured discussion.") | |
| uploaded_files = st.file_uploader( | |
| "Upload thermogram(s)", | |
| type=["png", "jpg", "jpeg", "pdf"], | |
| accept_multiple_files=True | |
| ) | |
| all_discussions = [] | |
| if uploaded_files: | |
| for i, uploaded_file in enumerate(uploaded_files): | |
| st.subheader(f"Thermogram {i+1}: {uploaded_file.name}") | |
| # Display thermogram | |
| file_bytes = uploaded_file.read() | |
| image = Image.open(io.BytesIO(file_bytes)) | |
| st.image(image, use_container_width=True) | |
| st.markdown("**Enter analysis details:**") | |
| onset_temp = st.number_input(f"Onset temperature (°C) for {uploaded_file.name}", min_value=0, step=1) | |
| peak_temp = st.number_input(f"Peak degradation temperature (°C) for {uploaded_file.name}", min_value=0, step=1) | |
| weight_loss = st.number_input(f"Total weight loss (%) for {uploaded_file.name}", min_value=0.0, step=0.1) | |
| residue = st.number_input(f"Residue at 800 °C (%) for {uploaded_file.name}", min_value=0.0, step=0.1) | |
| if st.button(f"Add Discussion for {uploaded_file.name}"): | |
| discussion = ( | |
| f"**{uploaded_file.name}**:\n" | |
| f"- Onset of degradation observed at ~{onset_temp} °C.\n" | |
| f"- Major degradation peak at ~{peak_temp} °C.\n" | |
| f"- The material shows a total weight loss of ~{weight_loss:.2f}%.\n" | |
| f"- Residual mass at 800 °C is ~{residue:.2f}%.\n\n" | |
| f"These results indicate thermal stability until {onset_temp} °C, " | |
| f"with significant decomposition occurring around {peak_temp} °C. " | |
| f"The remaining char (~{residue:.2f}%) suggests potential " | |
| f"applications where high-temperature stability is desired." | |
| ) | |
| all_discussions.append(discussion) | |
| if all_discussions: | |
| st.header("Discussion") | |
| for d in all_discussions: | |
| st.markdown(d) | |