Solar forecasting explained · 22 October 2026 · Manuscript in preparation, open code

How much space is enough for satellite irradiance forecasting?

A satellite gives the irradiance of a whole region every hour. Should a forecaster read the whole map, a small neighborhood, a compressed version of the map, or only the cell it forecasts? This benchmark holds the forecaster fixed and changes only what it reads.

The question

Satellite irradiance arrives as maps. Deep networks such as U-Nets and LSTMs read whole fields, and compression methods shrink the field before a model reads it. Both add inputs and parameters. The benchmark asks how much of that spatial information actually lowers the error of a forecast for each of the next 24 hours, and counts the parameters each route stores.

One cellk × k patchWhole fieldCompressed field

Data and protocol

Results (from the public repository)

nRMSE pooled over 1 to 24 hours ahead and at two lead times; parameters stored, in thousands (k) or millions (M); GPR = gamma pass rate, mean of six lead times.

ModelnRMSE1 h24 hParametersGPR
ELM per cell0.3080.1560.325100.4k58.6 %
LSTM, whole field0.3260.1820.3435.5M54.2 %
U-Net, whole field (8 channels)0.3430.2050.34631.2k42.7 %
Autoencoder + ELM, field (p = 392), best compression0.3480.181—39.4M—
Ridge per cell0.3540.1750.35360057.1 %
ELM, whole field0.3550.1740.376100.7M48.6 %
BLEND0.3760.2260.39657650.6 %
Persistence, 24 h (same hour yesterday)0.3960.3960.396061.2 %
Persistence (last hour)0.9980.3200.396019.8 %
Scatter plot of pooled nRMSE against stored parameters on a log scale. Models reading their own cell: ELM 0.308 with 100.4 thousand parameters, ridge 0.354 with 600, BLEND 0.376 with 576. Models reading the whole field: LSTM 0.326 with 5.5 million, U-Net 0.343 with 31.2 thousand, ELM 0.355 with 100.7 million. Autoencoder plus ELM on a compressed field: 0.348 with 39.4 million. Dashed line: 24-hour persistence, 0.396 with no parameter.
Error against stored parameters (log scale). Lower and further left is better: the per-cell ELM is the lowest point, and reading the whole field moves models right (more parameters) without moving them down. PDF

The per-cell ELM stores about a thousandth of the parameters of the whole-field ELM (100.4k against 100.7M) and has the lowest pooled error. None of the seven compression methods (Radon transform, DCT, wavelet, PCA, random projection, subsampling, autoencoder) reaches it, and neither do the U-Net and the LSTM reading the whole field. Enlarging the input from one cell to a 3 × 3 patch does not help either (0.3087 against 0.3077 for a single cell).

Worked example: what 0.308 means in W/m²

The nRMSE is divided by the mean scored observation of the test year, 407.9 W/m². An nRMSE of 0.308 is therefore an RMSE of about 0.308 × 407.9 ≈ 126 W/m²; the whole-field ELM, at 0.355, is about 145 W/m². The per-cell model is about 19 W/m² better, with a thousand times fewer stored parameters.

How to read it

On this region and this record, the hourly history of the cell itself carries most of the information an hour-by-hour forecast of the next day can use; the rest of the map adds parameters faster than it removes error. This is one region, one satellite product and one two-year split: a benchmark result, not a general law. Intra-hour nowcasting driven by cloud motion can behave differently.

Reproduce it

The repository contains the paper's own MATLAB and Python files and the two-year HelioClim-3 extract. run_all.ps1 rebuilds the result tables from the archives in about 12 seconds; -Mode light fits every model once on a laptop and reproduces the paper's values to within 0.004; the full protocol (median of 50 random hidden layers) matched the paper in every column on the steps tested.

git clone https://github.com/cyrilvoyant/cell-vs-field-irradiance.git
powershell -ExecutionPolicy Bypass -File .\run_all.ps1
powershell -ExecutionPolicy Bypass -File .\run_all.ps1 -Mode light

The code is under the MIT license. HelioClim-3 data are distributed by the SoDa service under its own terms of use; the extract is included so that the benchmark runs as published.

MATLAB and Python codeRelated: how much model is enough?

Authors and foundations

Manuscript authors: Cyril Voyant (Mines Paris – PSL, O.I.E.), Andreas Kazantzidis (University of Patras), Jan Kleissl (UC San Diego). How Much Space Is Enough for Short-Term Satellite Irradiance Forecasting?, manuscript in preparation. Cyril Voyant wrote this page.

HelioClim-3 data: SoDa service (Heliosat-2 method). ELM: Guang-Bin Huang, Qin-Yu Zhu and Chee-Kheong Siew, Extreme learning machine: Theory and applications (2006). U-Net: Ronneberger, Fischer and Brox (2015). LSTM: Hochreiter and Schmidhuber (1997).