# kashishpathak20/weatherfusion-awx architecture

> Architecture diagram of the GitHub repository kashishpathak20/weatherfusion-awx, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/kashishpathak20/weatherfusion-awx
- Repository: https://github.com/kashishpathak20/weatherfusion-awx

## Overview

WEATHERFUSION-AWX is a prototype for blending live forecasts from multiple weather models. Its clearest user-facing workflow is the V12 Streamlit dashboard: it collects ECMWF and GFS forecasts, compares their values, applies context-aware adaptive fusion, and presents forecasts and disagreement. Separate versioned scripts explore historical skill and forecast verification; the files appear to be standalone experiments, not modules wired into one application. The README documents broader stages, while sampled excerpts support the dashboard flow and the separate analysis scripts.

Main entry points: [`v12_live_dashboard..py`](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py) (Forecast Dashboard), [`v9_forecast_verification.py`](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v9_forecast_verification.py) (Forecast Verification), [`v8_historical_skill.py`](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v8_historical_skill.py) (Historical Skill)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_live["Live Forecast"]
  node_dashboard["Forecast Dashboard"]
  node_collector["Model Collection"]
  node_comparison["Model Comparison"]
  node_context["Weather Context"]
  node_weighting["Adaptive Weighting"]
  node_fusion["Forecast Fusion"]
  node_presentation["Forecast Display"]
end

subgraph group_analysis["Model Analysis"]
  node_skill_analysis["Historical Skill"]
  node_diagnostics["AIFS Diagnostics"]
end

subgraph group_verification["Historical Verification"]
  node_verification["Forecast Verification"]
end

node_user(("Dashboard User"))
node_model_api["Forecast API"]
node_history_api["Historical Forecast API"]
node_forecast_api["Forecast Reference API"]
node_observation_api["Archive Observation API"]

node_user -->|"opens"| node_dashboard
node_dashboard -->|"requests forecasts"| node_collector
node_collector -->|"fetches models"| node_model_api
node_collector -->|"provides forecasts"| node_comparison
node_comparison -->|"informs context"| node_context
node_context -->|"adjusts weights"| node_weighting
node_weighting -->|"supplies weights"| node_fusion
node_comparison -->|"supplies forecasts"| node_fusion
node_fusion -->|"renders result"| node_presentation
node_dashboard -->|"shows analysis"| node_presentation
node_skill_analysis -->|"fetches history"| node_history_api
node_verification -->|"fetches forecasts"| node_forecast_api
node_verification -->|"fetches observations"| node_observation_api

click node_dashboard "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_collector "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_comparison "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_context "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_weighting "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_fusion "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_presentation "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py"
click node_skill_analysis "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v8_historical_skill.py"
click node_verification "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v9_forecast_verification.py"
click node_diagnostics "https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v6_5_aifs_diagnostic.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_dashboard,node_collector,node_comparison,node_context,node_weighting,node_fusion,node_presentation,node_user toneBlue
class node_skill_analysis,node_diagnostics toneAmber
class node_verification,node_model_api,node_history_api,node_forecast_api,node_observation_api toneMint
```

## Components

### Live Forecast

- [Forecast Dashboard](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`
- [Model Collection](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`
- [Model Comparison](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`
- [Weather Context](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`
- [Adaptive Weighting](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`
- [Forecast Fusion](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`
- [Forecast Display](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v12_live_dashboard..py): `v12_live_dashboard..py`

### Model Analysis

- [Historical Skill](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v8_historical_skill.py): `v8_historical_skill.py`
- [AIFS Diagnostics](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v6_5_aifs_diagnostic.py): `v6_5_aifs_diagnostic.py`

### Historical Verification

- [Forecast Verification](https://github.com/kashishpathak20/weatherfusion-awx/blob/main/v9_forecast_verification.py): `v9_forecast_verification.py`

### Other components

- **Dashboard User**
- **Forecast API**
- **Historical Forecast API**
- **Forecast Reference API**
- **Archive Observation API**

## Connections

- Dashboard User → Forecast Dashboard: opens
- Forecast Dashboard → Model Collection: requests forecasts
- Model Collection → Forecast API: fetches models
- Model Collection → Model Comparison: provides forecasts
- Model Comparison → Weather Context: informs context
- Weather Context → Adaptive Weighting: adjusts weights
- Adaptive Weighting → Forecast Fusion: supplies weights
- Model Comparison → Forecast Fusion: supplies forecasts
- Forecast Fusion → Forecast Display: renders result
- Forecast Dashboard → Forecast Display: shows analysis
- Historical Skill → Historical Forecast API: fetches history
- Forecast Verification → Forecast Reference API: fetches forecasts
- Forecast Verification → Archive Observation API: fetches observations
