Team: Manali, Allti, Justin, Filip, David.
Can we predict Cloud Radiative Effect (CRE) using machine learning models trained on surface temperature data?
- Develop ML models to predict TOA Cloud Radiative Effects from surface temperature
- Compare model performance across architectures
- Identify efficient dimensionality reduction techniques
- Enable global trend analysis with minimal computational overhead
Paleo_Climate_ML/
├── code/
│ ├── utils/ # Reusable Python modules (NEW!)
│ │ ├── data_io.py
│ │ └── visualization.py
│ │
│ ├── notebooks/ # Consolidated analysis notebooks (NEW!)
│ │ ├── 01_data_preparation.ipynb
│ │ ├── 02_data_exploration.ipynb
│ │ └── 03_training_data_setup.ipynb
│ │
│ └── [Original notebooks preserved in subdirectories]
│
├── data/ # Climate model output
│ ├── CanESM5_*.nc # Historical & SSP data
│ └── splits/ # Train/val/test splits
│
└── outputs/ # Model outputs and results
The codebase has been refactored to improve maintainability:
- 16 notebooks consolidated into 3 focused workflows
- Reusable
utilsmodule for common operations - Consistent naming convention (lowercase_with_underscores)
- Clear numbered workflow (01 → 02 → 03)
- Original notebooks preserved for reference
See REFACTORING_GUIDE.md for details
CanESM5_historical_tas.nc— Surface temperature (1850-2014)CanESM5_ssp_tas.nc— Surface temperature projections (2015-2100)CanESM5_hist_rsdt.nc— TOA incoming shortwave radiationCanESM5_hist_rsut.nc— TOA outgoing shortwave radiation (all-sky)CanESM5_hist_rlut.nc— TOA outgoing longwave radiation (all-sky)CanESM_1850-2100_rsutcs.nc— TOA shortwave (clear-sky)CanESM5_1850-2100_rlutcs.nc— TOA longwave (clear-sky)
CanESM5_1850-2100_tas.nc— Merged surface temperatureCanESM5_1850-2100_rsutcre.nc— Shortwave Cloud Radiative EffectCanESM5_1850-2100_rlutcre.nc— Longwave Cloud Radiative Effect
Shortwave CRE = All-sky reflected solar - Clear-sky reflected solar
- Positive → Clouds reflect more solar radiation (cooling)
Longwave CRE = Clear-sky thermal - All-sky thermal
- Positive → Clouds trap more thermal radiation (warming)
- Input (X): Surface temperature (tas)
- Target (y): Cloud Radiative Effects (SWCRE, LWCRE)
- Time periods:
- Train: 1850-2014 (historical)
- Validation: 1850-2014 (observational data)
- Test: 2015-2100 (future projections)
- Ensemble members: 25 total (17 train / 4 val / 4 test)
When adding new functionality:
- Reusable code → Add to
code/utils/ - Analysis workflows → Create numbered notebook in
code/notebooks/ - Follow naming conventions → lowercase_with_underscores
- Document functions → Use numpy-style docstrings
# In any notebook
import sys
sys.path.append('..')
from utils import load_dataset, plot_spatial_map, compute_cloud_radiative_effect
# Load data
data = load_dataset("../../data/CanESM5_historical_tas.nc")
# Visualize
plot_spatial_map(data["tas"], title="Surface Temperature")