Sean Egan

Research / Weather

Weather models for nowcasting and satellite imagery

Ground radar covers a small part of the ocean, and a ship can lose the shore products that fill the gap. I train models that predict where rain will be in the next hour, estimate what radar would show from satellite data alone, and sharpen satellite imagery, so a forecaster at sea can have them on board. On held-out days in five regions the nowcast beats pySTEPS, the standard open method, by 0.038 to 0.074 in critical success index, with every 95 percent interval above zero (24 September 2026). Guiding a coarse satellite band with a finer one gains 2.5 to 14.1 dB over the same model without the guide, and one night-infrared result was retracted after a fill value in the data was found.

RunningUpdated Live board

90
training runs on two home graphics cards: 82 finished, 8 planned2026-10-27
+0.038 to +0.074
critical success index over pySTEPS, five regions, 30 and 60 minutes2026-09-24
19
runs on the supercomputer, about 686 node-hours so far2026-10-22
+8.80 → −0.14 dB
a night-infrared result, then its retraction after a fill value in the data was found2026-09-24
Nowcast skill over pySTEPS by regionFor each region, the difference in critical success index between the learned nowcast and pySTEPS, with its 95 percent interval, at 30 and 60 minutes.0+0.02+0.04+0.06+0.08+0.10Alaska, 12 daysAlaska, 30 minutes: +0.070 (95% interval +0.060 to +0.079); model 0.602, pySTEPS 0.531Alaska, 60 minutes: +0.065 (95% interval +0.056 to +0.075); model 0.500, pySTEPS 0.435+0.070Europe, 12 daysEurope, 30 minutes: +0.064 (95% interval +0.059 to +0.070); model 0.666, pySTEPS 0.603Europe, 60 minutes: +0.074 (95% interval +0.068 to +0.082); model 0.575, pySTEPS 0.501+0.064Caribbean, 11 daysCaribbean, 30 minutes: +0.053 (95% interval +0.038 to +0.074); model 0.663, pySTEPS 0.610Caribbean, 60 minutes: +0.064 (95% interval +0.051 to +0.086); model 0.580, pySTEPS 0.516+0.053Guam, 9 daysGuam, 30 minutes: +0.043 (95% interval +0.034 to +0.054); model 0.710, pySTEPS 0.667Guam, 60 minutes: +0.055 (95% interval +0.045 to +0.067); model 0.630, pySTEPS 0.575+0.043Hawaii, 12 daysHawaii, 30 minutes: +0.038 (95% interval +0.026 to +0.057); model 0.658, pySTEPS 0.620Hawaii, 60 minutes: +0.048 (95% interval +0.034 to +0.064); model 0.581, pySTEPS 0.533+0.038Critical success index, nowcast minus pySTEPS30 minutes ahead60 minutes aheadNowcast skill over pySTEPS by regionFor each region, the difference in critical success index between the learned nowcast and pySTEPS, with its 95 percent interval, at 30 and 60 minutes.0+0.02+0.04+0.06+0.08+0.10AlaskaAlaska, 30 minutes: +0.070 (95% interval +0.060 to +0.079); model 0.602, pySTEPS 0.531Alaska, 60 minutes: +0.065 (95% interval +0.056 to +0.075); model 0.500, pySTEPS 0.435+0.070EuropeEurope, 30 minutes: +0.064 (95% interval +0.059 to +0.070); model 0.666, pySTEPS 0.603Europe, 60 minutes: +0.074 (95% interval +0.068 to +0.082); model 0.575, pySTEPS 0.501+0.064CaribbeanCaribbean, 30 minutes: +0.053 (95% interval +0.038 to +0.074); model 0.663, pySTEPS 0.610Caribbean, 60 minutes: +0.064 (95% interval +0.051 to +0.086); model 0.580, pySTEPS 0.516+0.053GuamGuam, 30 minutes: +0.043 (95% interval +0.034 to +0.054); model 0.710, pySTEPS 0.667Guam, 60 minutes: +0.055 (95% interval +0.045 to +0.067); model 0.630, pySTEPS 0.575+0.043HawaiiHawaii, 30 minutes: +0.038 (95% interval +0.026 to +0.057); model 0.658, pySTEPS 0.620Hawaii, 60 minutes: +0.048 (95% interval +0.034 to +0.064); model 0.581, pySTEPS 0.533+0.038Critical success index, nowcast minus pySTEPS30 minutes ahead60 minutes ahead
Figure 1. Difference in critical success index (CSI) at 20 dBZ between the learned nowcast and stock pySTEPS S-PROG on the same held-out radar sequences, by region, 30 and 60 minutes ahead. Bars are 95 percent intervals from a bootstrap over whole days (4,000 resamples). The number at the right is the 30-minute difference. Scored on 24 September 2026. Source: the regional validation table of the weather study.
The numbers behind Figure 1
Region30 minutes60 minutes
NowcastpySTEPSDifferenceNowcastpySTEPSDifference
Alaska12 days, 786 sequences0.6020.531+0.070 (+0.060 to +0.079)0.5000.435+0.065 (+0.056 to +0.075)
Europe12 days, 1,042 sequences0.6660.603+0.064 (+0.059 to +0.070)0.5750.501+0.074 (+0.068 to +0.082)
Caribbean11 days, 426 sequences0.6630.610+0.053 (+0.038 to +0.074)0.5800.516+0.064 (+0.051 to +0.086)
Guam9 days, 197 sequences0.7100.667+0.043 (+0.034 to +0.054)0.6300.575+0.055 (+0.045 to +0.067)
Hawaii12 days, 329 sequences0.6580.620+0.038 (+0.026 to +0.057)0.5810.533+0.048 (+0.034 to +0.064)
Guided sharpening against its matched controlFor each imager and band, the gain over bicubic upsampling of the guided model and of the same model trained without the guide.0369121518GOES blue, 2×, full res.GOES blue, 2×, full res., without the guide: +2.62 dBGOES blue, 2×, full res., guided: +16.72 dB+14.1GOES blue, 2×, 24 epochsGOES blue, 2×, 24 epochs, without the guide: +1.36 dBGOES blue, 2×, 24 epochs, guided: +14.71 dB+13.3Meteosat green, 2×Meteosat green, 2×, without the guide: +2.01 dBMeteosat green, 2×, guided: +14.59 dB+12.6Meteosat blue, 2×Meteosat blue, 2×, without the guide: +2.01 dBMeteosat blue, 2×, guided: +13.79 dB+11.8Himawari blue, 2×, full res.Himawari blue, 2×, full res., without the guide: +2.36 dBHimawari blue, 2×, full res., guided: +14.05 dB+11.7Himawari green, 2×Himawari green, 2×, without the guide: +1.18 dBHimawari green, 2×, guided: +12.79 dB+11.6Himawari blue, 2×Himawari blue, 2×, without the guide: +1.19 dBHimawari blue, 2×, guided: +12.79 dB+11.6GOES 0.86 µm, 2×, full res.GOES 0.86 µm, 2×, full res., without the guide: +2.40 dBGOES 0.86 µm, 2×, full res., guided: +13.75 dB+11.3GOES blue, 2×, 12 epochsGOES blue, 2×, 12 epochs, without the guide: +1.06 dBGOES blue, 2×, 12 epochs, guided: +12.30 dB+11.2GOES 0.86 µm, 2×, 24 epochsGOES 0.86 µm, 2×, 24 epochs, without the guide: +1.25 dBGOES 0.86 µm, 2×, 24 epochs, guided: +12.36 dB+11.1GOES 0.86 µm, 2×, 12 epochsGOES 0.86 µm, 2×, 12 epochs, without the guide: +1.03 dBGOES 0.86 µm, 2×, 12 epochs, guided: +10.42 dB+9.4GOES 1.6 µm, 2×, full res.GOES 1.6 µm, 2×, full res., without the guide: +2.39 dBGOES 1.6 µm, 2×, full res., guided: +11.67 dB+9.3GOES 1.6 µm, 2×, 36 epochsGOES 1.6 µm, 2×, 36 epochs, without the guide: +1.21 dBGOES 1.6 µm, 2×, 36 epochs, guided: +10.45 dB+9.2GOES 1.6 µm, 2×, 24 epochsGOES 1.6 µm, 2×, 24 epochs, without the guide: +1.18 dBGOES 1.6 µm, 2×, 24 epochs, guided: +10.03 dB+8.9GOES 10.3 µm, 4×, 36 epochsGOES 10.3 µm, 4×, 36 epochs, without the guide: +1.15 dBGOES 10.3 µm, 4×, 36 epochs, guided: +5.88 dB+4.7GOES 10.3 µm, 4×, 24 epochsGOES 10.3 µm, 4×, 24 epochs, without the guide: +1.15 dBGOES 10.3 µm, 4×, 24 epochs, guided: +5.83 dB+4.7GOES 3.9 µm, 4×GOES 3.9 µm, 4×, without the guide: +1.24 dBGOES 3.9 µm, 4×, guided: +3.79 dB+2.5Gain over bicubic upsampling, dBWithout the guideGuided by a finer bandGuided sharpening against its matched controlFor each imager and band, the gain over bicubic upsampling of the guided model and of the same model trained without the guide.0369121518GOES blue, 2×, full res.GOES blue, 2×, full res., without the guide: +2.62 dBGOES blue, 2×, full res., guided: +16.72 dB+14.1GOES blue, 2×, 24 epochsGOES blue, 2×, 24 epochs, without the guide: +1.36 dBGOES blue, 2×, 24 epochs, guided: +14.71 dB+13.3Meteosat green, 2×Meteosat green, 2×, without the guide: +2.01 dBMeteosat green, 2×, guided: +14.59 dB+12.6Meteosat blue, 2×Meteosat blue, 2×, without the guide: +2.01 dBMeteosat blue, 2×, guided: +13.79 dB+11.8Himawari blue, 2×, full res.Himawari blue, 2×, full res., without the guide: +2.36 dBHimawari blue, 2×, full res., guided: +14.05 dB+11.7Himawari green, 2×Himawari green, 2×, without the guide: +1.18 dBHimawari green, 2×, guided: +12.79 dB+11.6Himawari blue, 2×Himawari blue, 2×, without the guide: +1.19 dBHimawari blue, 2×, guided: +12.79 dB+11.6GOES 0.86 µm, 2×, full res.GOES 0.86 µm, 2×, full res., without the guide: +2.40 dBGOES 0.86 µm, 2×, full res., guided: +13.75 dB+11.3GOES blue, 2×, 12 epochsGOES blue, 2×, 12 epochs, without the guide: +1.06 dBGOES blue, 2×, 12 epochs, guided: +12.30 dB+11.2GOES 0.86 µm, 2×, 24 epochsGOES 0.86 µm, 2×, 24 epochs, without the guide: +1.25 dBGOES 0.86 µm, 2×, 24 epochs, guided: +12.36 dB+11.1GOES 0.86 µm, 2×, 12 epochsGOES 0.86 µm, 2×, 12 epochs, without the guide: +1.03 dBGOES 0.86 µm, 2×, 12 epochs, guided: +10.42 dB+9.4GOES 1.6 µm, 2×, full res.GOES 1.6 µm, 2×, full res., without the guide: +2.39 dBGOES 1.6 µm, 2×, full res., guided: +11.67 dB+9.3GOES 1.6 µm, 2×, 36 epochsGOES 1.6 µm, 2×, 36 epochs, without the guide: +1.21 dBGOES 1.6 µm, 2×, 36 epochs, guided: +10.45 dB+9.2GOES 1.6 µm, 2×, 24 epochsGOES 1.6 µm, 2×, 24 epochs, without the guide: +1.18 dBGOES 1.6 µm, 2×, 24 epochs, guided: +10.03 dB+8.9GOES 10.3 µm, 4×, 36 epochsGOES 10.3 µm, 4×, 36 epochs, without the guide: +1.15 dBGOES 10.3 µm, 4×, 36 epochs, guided: +5.88 dB+4.7GOES 10.3 µm, 4×, 24 epochsGOES 10.3 µm, 4×, 24 epochs, without the guide: +1.15 dBGOES 10.3 µm, 4×, 24 epochs, guided: +5.83 dB+4.7GOES 3.9 µm, 4×GOES 3.9 µm, 4×, without the guide: +1.24 dBGOES 3.9 µm, 4×, guided: +3.79 dB+2.5Gain over bicubic upsampling, dBWithout the guideGuided by a finer band
Figure 2. Gain in peak signal-to-noise ratio over bicubic upsampling, on held-out scenes, for each sharpening model guided by a finer band (teal) and the same model trained without the guide (gray). The number at the right is the difference; an epoch is one pass through the training data. Repeat runs with other seeds agree within 0.02 dB and are left out. Runs from 19 Sep 2026 to 2 Oct 2026 on two RTX 4080 cards. Source: the home training board, read 27 Oct 2026, 05:13 UTC.
The numbers behind Figure 2
Imager, band, scaleGuided, dBWithout guide, dBDifference, dB
GOES blue, 2×, full res.+16.72+2.62+14.10
GOES blue, 2×, 24 epochs+14.71+1.36+13.35
Meteosat green, 2×+14.59+2.01+12.58
Meteosat blue, 2×+13.79+2.01+11.78
Himawari blue, 2×, full res.+14.05+2.36+11.69
Himawari green, 2×+12.79+1.18+11.61
Himawari blue, 2×+12.79+1.19+11.60
GOES 0.86 µm, 2×, full res.+13.75+2.40+11.35
GOES blue, 2×, 12 epochs+12.30+1.06+11.24
GOES 0.86 µm, 2×, 24 epochs+12.36+1.25+11.11
GOES 0.86 µm, 2×, 12 epochs+10.42+1.03+9.39
GOES 1.6 µm, 2×, full res.+11.67+2.39+9.28
GOES 1.6 µm, 2×, 36 epochs+10.45+1.21+9.24
GOES 1.6 µm, 2×, 24 epochs+10.03+1.18+8.85
GOES 10.3 µm, 4×, 36 epochs+5.88+1.15+4.73
GOES 10.3 µm, 4×, 24 epochs+5.83+1.15+4.68
GOES 3.9 µm, 4×+3.79+1.24+2.55
The four model lines

Nowcast. A three-scale recurrent U-Net of 27.2 million parameters predicts radar reflectivity up to an hour ahead from the last frames and the motion between them. It was trained on radar over the continental United States and fine-tuned for Alaska, Hawaii, Guam, the Caribbean and Europe.

Radar from satellite. A per-pixel classifier estimates radar reflectivity from the sixteen bands of a geostationary imager and its lightning sensor, for places no radar reaches. It is still in training; its hourly forerunner missed its transfer bound between held-out regions, 0.0885 against 0.08.

Sharpening. A small convolutional network upsamples a coarse band two or four times, guided by a finer band of the same imager where one exists. It is checked against bicubic upsampling and against the same network trained without the guide (Figure 2).

True color. A learned rendering from measured bands and scene geometry replaces a fixed formula: color error 11.5 against 21.5 for the formula on GOES.

The home board lists 2 nowcast runs, 11 radar-from-satellite runs, 74 sharpening runs and 3 true-color runs, from 12 September 2026 to 2 October 2026. Home training has paused since the last run ended; the board was read 27 Oct 2026, 05:13 UTC.

How the nowcast was scored

The critical success index counts, for radar echoes of 20 dBZ or more (about light rain), the hits divided by hits, misses and false alarms together; 1 is perfect. The learned nowcast and stock pySTEPS S-PROG were scored on the same held-out radar sequences, 9 to 12 whole days per region. The intervals come from resampling whole days 4,000 times, so a single stormy day cannot carry the result.

The same comparison showed that my own simpler advection baseline was weaker than pySTEPS in four regions, so the baseline in the weather viewer was replaced.

The retraction

A night-infrared sharpening model checked against a finer polar-orbiting satellite showed +8.80 dB on near-nadir scenes, the first result in the program to clear its structural check. An audit found a 180 K fill value from the edge of the geostationary disk in 13.5 percent of near-nadir patches and up to 44 percent of oblique ones, counted as signal. With the fill excluded the gain is −0.14 dB, with a 95 percent interval of −0.46 to +0.76 that spans zero. The research registry records the retraction beside the original claim, and the visible-band result, which the fill did not touch, stands at +0.93 dB.

Runs on the supercomputer

Larger runs moved to the supercomputer in October: sharpening at full resolution with each sensor’s measured blur, four-times sharpening of the red band with three published network designs, and a third true-color model. As of 22 Oct 2026, 00:40 UTC, 270 runs had finished and 11 were running, on nodes of four NVIDIA A100 or four NVIDIA H100 graphics processors.

EffortRuns finishedNodesNode-hours
Guided sharpening at full resolution6 of 6A100 nodes–
Red band sharpened four times3 of 5H100 nodes–
True color, third version1 of 1A100 nodes–
Records