Single-stage joint diffusion of sky images and clear-sky index for ultra-short-term irradiance forecasting: what the frame-to-irradiance stage discards
Organizations: Chulalongkorn University, 254 Phaya Thai Rd, Wang Mai, Pathum Wan, Bangkok, 10330, Thailand
Abstract
Sky-image irradiance forecasting is dominated by a two-stage design: a video-prediction model forecasts future sky frames, and a separately trained regressor maps those frames to irradiance. We propose a single-stage alternative that co-denoises the future sky-image and clear-sky-index sequences in one diffusion process, with an irradiance head that reads a denoised preview of the future sky rather than the noised diffusion state. The forecaster needs no regression stage and runs from sky images and deterministic covariates alone, with no measured irradiance at its input --- the situation at a site with a camera but no pyranometer. On 2023 SIRTA data the model reaches a pooled RMSE of ~W,m and a skill score of on the continuous ranked probability score (CRPS) against smart persistence, higher than any of twelve baseline configurations, and retains that skill when retrained on 2021--2022. On the model's own generated frames, a separately trained regressor reaches ~W,m against the joint head's : roughly ~W,m that joint training recovers and a cascade discards. Point accuracy is competitive but not best: a deterministic network that also reads measured irradiance attains ~W,m. The model's CRPS skill leads that network's in every sky-condition tertile, by to .
Figures & tables
| Arm | CSI denoiser reads | image denoiser reads | loop | ? |
| Proposed (joint, past sky) | open | no | ||
| noised state | open | no | ||
| concat | open | no | ||
| Proposed (joint, future sky) | ( ind.) | open | no | |
| Proposed (joint, past sky, future CSI) | open | no | ||
| Proposed (joint, future sky, future CSI) | ( ind.) | open | no |
| Method | RMSE [95% CI] | FS [95% CI] | CRPS [95% CI] | CRPSS [95% CI] |
| SPM | 127.4 [88.7, 159.6] | – | – | – |
| DLinear (wo Iclr) | 113.4 [83.8, 138.4] | +0.110 [+0.044, +0.144] | 60.6 [45.0, 76.6] | -0.081 [-0.225, -0.004] |
| PatchTST (wo Iclr) | 111.0 [81.4, 135.6] | +0.128 [+0.069, +0.163] | 56.7 [39.8, 73.9] | -0.011 [-0.091, +0.036] |
| TimeXer (wo Iclr) | 111.0 [81.6, 135.3] | +0.129 [+0.064, +0.166] | 57.4 [40.9, 74.2] | -0.023 [-0.113, +0.029] |
| DLinear | 109.8 [80.7, 134.2] | +0.138 [+0.079, +0.170] | 58.0 [42.2, 74.2] | -0.034 [-0.156, +0.034] |
| PatchTST | 109.6 [80.0, 133.7] | +0.140 [+0.078, +0.179] | 54.5 [37.4, 72.0] | +0.029 [-0.022, +0.062] |
| RMSE [W m -2 ] | FS | CRPSS | |||||||
| Method | in-period | cross-year | in-period | cross-year | in-period | cross-year | |||
| SPM | 127.4 | – | – | — | — | — | – | – | – |
| PatchTST | 109.6 | 109.0 | +0.029 | +0.031 | |||||
| SUNSET | 97.6 | 98.1 | +0.060 | +0.047 | |||||
| PhyDNetGAN | 112.3 | 110.6 | -0.103 | -0.073 | |||||
| Xiong | 116.9 | 117.2 | +0.148 | +0.148 | |||||
| CRPSS | RMSE | ||||
| Tertile | Proposed (joint, future sky) | SUNSET | lead | Proposed (joint, future sky) | SUNSET |
| Overcast | 101.6 | 92.6 | |||
| Variable | 104.9 | 98.5 | |||
| Clear | 105.6 | 101.5 | |||
| PICP90 | SSR ( ) | |||||
| Method | non-ramp | ramp | non-ramp | ramp | ||
| all deterministic methods | 0.000 | 0.000 | 0 | — | — | — |
| SkyGPT | 0.235 | 0.236 | 3.076 | 3.353 | ||
| Xiong | 0.847 | 0.642 | 0.806 | 1.796 | ||
| Proposed (joint, past sky) | 0.458 | 0.518 | 1.282 | 1.515 | ||
| Proposed (joint, future sky) | 0.631 | 0.605 | 0.972 | 1.227 | ||
| Method | non-ramp | ramp | ratio | ||
| SkyGPT | 85.4 | 266.0 | 3.1 | ||
| Xiong | 152.6 | 346.2 | 2.3 | ||
| Proposed (joint, past sky) | 61.7 | 355.3 | 5.8 | ||
| Proposed (joint, future sky) | 87.1 | 417.1 | 4.8 |
| Method | RMSE | FS | CRPSS |
| DLinear (wo Iclr) | 249.8 | ||
| PatchTST (wo Iclr) | 244.8 | ||
| TimeXer (wo Iclr) | 244.3 | ||
| DLinear | 242.3 | ||
| PatchTST | 243.3 | ||
| TimeXer | 243.3 |
| Frames read | Read by | RMSE [W m -2 ] |
| ground-truth future frames | frozen U-Net | 63.5 |
| generated future frames | frozen U-Net | 150.6 |
| generated future frames | irradiance head of the proposed model | 104.1 |
| ground-truth future frames | irradiance head of the proposed model (oracle arm) | 102.2 |
| Head reads | RMSE | FS | CRPSS |
| denoised estimate of future frames | 104.06 | +0.183 | +0.341 |
| past frames only | 114.09 | +0.104 | +0.235 |
| Seed | control | irradiance | RMSE gain | CRPSS gain |
| 1 | 108.51 | 101.45 | ||
| 2 | 108.13 | 103.37 |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| Arm | RMSE | FS | CRPSS | SSR ( ) | imagery |
| oracle (true future frames) | 98.1 | +0.207 | +0.393 | 1.11 | — |
| Proposed (joint, future sky) | 101.8 | +0.177 | +0.322 | 1.24 | 152.8 |
| Proposed (joint, past sky) | 110.5 | +0.107 | +0.217 | 1.55 | 165.3 |
| scalar only | 107.7 | +0.129 | — | — | — |
| concat | 109.0 | +0.119 | +0.239 | 1.49 | 182.4 |
| noised state | 113.4 | +0.083 | +0.234 | 1.01 | 161.1 |
| without path | with path | RMSE | CRPSS | other differences |
| Proposed (joint, future sky) | Proposed (joint, future sky, future CSI) | selection rule; starting checkpoint | ||
| Proposed (joint, past sky) | Proposed (joint, past sky, future CSI) | selection rule; training budget |
| Stage | Trains | Frozen | Learning rate | Stopping and checkpoint |
| 1 | VAE | — | early stopping on validation LPIPS (patience 20) | |
| 2 | UNet | VAE | , then for the final epochs | best validation LPIPS (patience 20) |
| 3 | ControlNet | VAE, UNet | , cosine schedule | best validation LPIPS (patience 20) |
| 4 | Joint diffusion training (phase 1): image tokenizer, CSI denoiser, temporal refiner | VAE, UNet, ControlNet | 19–20 epochs; best validation LPIPS CSI RMSE | |
| 5 | Joint diffusion training (phase 2): all except the VAE | VAE | , halved on plateau | at most 31 epochs; best validation LPIPS CSI RMSE |
| frozen regressor on | FS, cross-year | |||||
| Horizon | true frames | generated | CRPSS | Proposed (joint, future sky) | SUNSET | |
| i+1 | 65.7 | 142.9 | 0.660 | |||
| i+2 | 61.3 | 144.2 | 0.615 | |||
| i+3 | 63.8 | 145.3 | 0.634 | |||
| i+4 | 63.1 | 146.9 | 0.600 | |||
| i+5 | 65.3 | 151.7 | 0.623 | |||
| RMSE | CRPSS | |||||
| Method | all | contiguous | QC-valid | all | contiguous | QC-valid |
| SPM | 127.4 | 127.8 | 128.7 | – | – | – |
| DLinear (wo Iclr) | 113.4 | 113.8 | 114.2 | |||
| PatchTST (wo Iclr) | 111.0 | 111.4 | 111.9 | |||
| TimeXer (wo Iclr) | 111.0 | 111.4 | 111.8 | |||
| DLinear | 109.8 | 110.1 | 110.6 | |||