Team: Manali, Altti, 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
│ │ ├── 04_model_training.ipynb
│ │ ├── 05_output_plotting.ipynb
│ │ ├── 06_model_evaluation.ipynb
│ │ └── 07_testing_CMIP.ipynb
│ │
│ └── [Original notebooks preserved in subdirectories]
│
├── data/ # Climate model input and output
│
└── figures/ # Final figures from ALtti, Justin and Filip
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
X_train.nc— Training input features (historical surface temperature,tas) 17 ensemble membersX_val.nc— Validation input features (observationaltas) 4 ensemble membersX_test.nc— Test input features (futuretas) 4 ensemble membersy_train_rsut.nc— Training labels: shortwave Cloud Radiative Effect (cre)y_train_rlut.nc— Training labels: longwave Cloud Radiative Effect (cre)y_val_rsut.nc— Validation labels: shortwave CREy_val_rlut.nc— Validation labels: longwave CREy_test_rsut.nc— Test labels: shortwave CREy_test_rlut.nc— Test labels: longwave CRE
Shortwave CRE = All-sky reflected solar - Clear-sky reflected solar
- Positive → Clouds reflect more solar radiation (cooling)
Longwave CRE = Clear-sky outgoing longwave - All-sky outgoing longwave
- Positive → More OLR escaping to space (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, save_dataset, plot_spatial_map, compute_cloud_radiative_effect
# Load data
data = load_dataset("../../data/CanESM5_historical_tas.nc")
# Save data
save_dataset(X_train, "../../data/splits/X_train.nc")
# Visualize
plot_spatial_map(data["tas"], title="Surface Temperature")