Two ways to see ahead
A weather forecast comes from a numerical weather model: a simulation of the atmosphere’s physics on a grid, started from observations of the whole atmosphere. The German weather service’s ICON-EU model, for example, covers Europe on a grid of about 7 km. A model can create rain that does not exist yet, which is why it can look days ahead. But it takes time to run, its first hours are still settling, and it often puts a shower in roughly the right region at roughly the right time rather than over your street at 14:20.
A nowcast starts from the rain radar sees right now and moves it forward. It knows exactly where the rain is at the start, so its first hour is far sharper than a model’s. But it can only move and change rain that already exists: as time goes on, new showers that form out of clear air are missed, and its skill fades. See what is nowcasting.
| Nowcast | Weather forecast | |
|---|---|---|
| Starts from | The latest radar images | Observations of the whole atmosphere |
| Method | Moves and evolves the rain it sees | Simulates the atmosphere’s physics |
| Updated | Every few minutes (Nimbo: every 10) | Every few hours (ICON-EU: every 3) |
| Best for | The next minutes to hours | From a few hours to days ahead |
| Weak at | Rain that has not formed yet | Exact timing and place of showers |
Heavy rain fades first
How long a nowcast stays useful depends on what you ask of it. “Will it rain at all?” keeps an answer for hours. “Will it pour?” does not, because the heavy cores of a rain area are small, and they grow and collapse within an hour or so, while the light rain around them lasts.
nimbo = radar.query("zone == 'EUROPE' and method == 'product'")
nimbo.pivot(index="lead_min", columns="threshold", values="csi").plot()
radar is the table loaded in figure 3 of “What is nowcasting?”. Shaded: the 90 % range when the days are resampled.Over three hours the score for any rain halves, from 0.64 to 0.31. The score for 5 mm/h falls to a sixth, from 0.31 to 0.05: by then the forecast knows roughly where it rains, but no longer where it pours.
The weather decides where the two cross
With a broad rain band moving steadily across the country, radar extrapolation stays good for hours: the rain that will fall later is already on the radar, upstream. With summer showers popping up in the afternoon heat, it fades faster: the showers of the third hour have not formed yet. Figure 2 splits rainy days by the kind of rain they had.
fss = lambda g: 1 - g.fss10_num.sum() / g.fss10_den.sum()
days = pd.read_parquet("pysteps_40_days.parquet").query("threshold == 0.2")
days.groupby(["regime", "lead_min"]).apply(fss).unstack(0).plot()
The gap is small at first and grows with time: 0.05 after 15 minutes, 0.10 after four hours. On showery days, the point where a weather model does better comes sooner. Many services blend the two: the nowcast first, sliding to the model over a few hours.
Nimbo is a nowcast only, to three hours ahead, and does not fill gaps with model data. Its scores at each time ahead are public on the scoreboard, so you can choose where to hand over to a model in your own product.
“Minute by minute” is not always radar
Many weather APIs sell minute-by-minute rain. Some of it is a radar nowcast; much of it is a weather model’s hourly forecast cut into minutes, which looks precise but carries a model’s timing. If the next 30 minutes matter to your users, ask a provider where its minutes come from.