| import streamlit as st | |
| import pandas as pd | |
| def create_intro(): | |
| st.write(""" | |
| # Explainable AI for Precipitation Nowcasting | |
| This is an application created to summarize and demonstrate our research **Explainable Spatio-Temporal Image Segmentation for multivariate data: A Case Study on Precipitation Nowcasting**. The research focus on explaining precipitation nowcasting models. | |
| """) | |
| with st.columns([0.1,0.8,0.1])[1]: | |
| st.image(image="src/media/Graphical_Abstract.svg", caption="Summary of the Research", width=1000) | |
| st.write(""" | |
| ### About the Tool | |
| This tool processes a sequence of images, including: | |
| - **Rain Radar Maps** | |
| - **Satellite Images** | |
| - **Wind Speed U Component Maps** | |
| - **Wind Speed V Component Maps** | |
| Using these, it predicts precipitation 30 minutes ahead with a U-Net Model and utilizes Integrated Gradients to explain the model's decision-making process. | |
| """) | |
| st.info("Navigate to **Explainable AI Page** using the sidebar to start using the application", icon=":material/info:") | |
| st.write(""" | |
| ### Key Features: | |
| - **Multi-source Data Fusion:** Combines rain radar, satellite, and wind data to improve prediction accuracy. | |
| - **U-Net Architecture:** Utilizes a U-Net model, known for its superior performance in image segmentation tasks. | |
| - **Integrated Gradients:** Applies this XAI method to explain model predictions, enhancing transparency. | |
| ### Research Significance | |
| This application demonstrates the potential of integrating XAI into weather prediction models. The insights gained from the Integrated Gradients method not only improve the interpretability of the model but also suggest ways to optimize the data processing pipeline(ex: Dimensionality Reduction). This also has broader implications for other AI applications dealing with complex, multivariate, and spatio-temporal datasets. | |
| ### Model Performance | |
| The U-Net model was trained and tested with VGG19 and RESNET18 backbones. Below are the performances observed. This demo uses the U-Net with RESNET18 backbone to predict and explain the model decisions. | |
| """) | |
| data = { | |
| "UNet Backbone": ["RESNET18", "VGG19"], | |
| "Precision": [0.7895, 0.7705], | |
| "Recall": [0.7191, 0.7507], | |
| "F1 Score": [0.7527, 0.7604], | |
| "CSI": [0.6034, 0.6135], | |
| } | |
| df = pd.DataFrame(data).set_index("UNet Backbone") | |
| st.table(df) | |