Skip to content

Architecture overview

Influpaint represents seasons as week-by-location images. Dataset preparation makes complete frames; a U-Net diffusion model learns to denoise them; CoPaint conditions generated seasons on observed entries. The paper walkthrough explains the full sequence.

Component Source
Source readers and frame construction influpaint/datasets/read_datasources.py, mixer.py
Array loading and preprocessing influpaint/datasets/loaders.py, transforms.py
Calendar, location ordering, and observation masks influpaint/utils/season_axis.py, ground_truth.py
Diffusion and U-Net influpaint/models/ddpm.py, nn_blocks.py
Paper conditioning sampler CoPaint4influpaint/ (O_DDIMSampler)
Scenario and configuration definitions influpaint/batch/scenarios.py, config.py
Training and forecasting scripts influpaint/batch/training.py, inpainting.py
Paper launchers and saved job manifests main_training/
Scoring evaluation/prepare_dataset_for_scoringutils.py, evaluation/score_with_scoringutils.R
Evaluation and figures evaluation/plot_evaluation_results.py, evaluation/benchmark_plotting.py, evaluation/choose_best_model.py, paper_figures/

A training scenario ID describes a formulation. An MLflow run ID identifies a particular training execution and its weights. A forecast Slurm array index selects one manifest row, containing the scenario, training run ID, reference date, and CoPaint configuration. The preserved paper manifest has 1,305 rows; each defines an independent forecast job. See step 4.