Skip to content
yalt8826.com
← research/
research/weather-meta-learning/5th-semester projectIEEE-format manuscriptPyTorch · ERA5

Weather meta-learning

“Weather Prediction Using Meta-Learning with Spatio-Temporal Graph Neural Networks”

Yashas Gowda N, Sonu S, Yuvraj Singh, Dhruva R · guided by Laxmi and Dr. Manjula L · BGSCET (VTU)

01 / overview

A weather model that learns how to learn a new place.

Most AI weather models are trained for one fixed area and need decades of local history. This one trains across many climatically different regions of the world, so it learns a starting point that can adapt to somewhere new quickly.

Give it a new 5° × 5° patch of the planet and two years of that patch's weather data. It fine-tunes itself, then forecasts 12 surface variables for the next 24 hours from the previous 72. In the latest evaluation it beat a climatology baseline in all 18 regions it was tested on.

18 / 18test regions better than climatology
72h → 24hhistory in, forecast out
12weather variables per grid point
810kparameters, trained on a laptop GPU
02 / the problem

Forecasts are worst where data is thinnest.

Physics-based weather prediction is expensive to run and needs per-region tuning, and it is least accurate where observations are sparse. Deep-learning forecasters are cheaper, but they are trained on fixed domains and don't carry over well to regions with little data.

The idea here is to treat each region as a separate learning task and use meta-learning (MAML): instead of learning one region's weather, the model learns a set of starting weights that adapt well to any region in a few steps. Climate-zone labels (Köppen classes) are fed in so that regions with similar climates can share what they learn.

03 / data

ERA5 reanalysis, cut into 21 × 21 grids.

sourceERA5 single levels

ECMWF's global reanalysis at 0.25° (about 30 km), every 3 hours. Meta-training on 2020–2024, adaptation on 2023–2024, testing on held-out 2025.

grid441 nodes per region

Each region is a 5° × 5° box, sampled as a 21 × 21 grid of points.

channels24 per node

12 weather variables, 4 time encodings (hour of day, day of year), and an 8-dimensional learned climate-zone embedding.

u10 · v10u100 · v100t2md2msptpstrhcclcce

The 12 variables: 10 m and 100 m wind (east and north), 2 m temperature, 2 m dewpoint, surface pressure, total precipitation, surface net thermal radiation, high and low cloud cover, evaporation. Each is normalised using training-period statistics only, and missing values are filled with the variable's mean.

04 / architecture

Graph convolutions for space, an LSTM for time.

The model is a graph network for space feeding an LSTM for time. Each slab below is one layer, and its height follows how many channels the layer has.

input24 × 441 × 16+ köppen31 → 8-d4-nn graph441 nodesgraph conv ×4256 channelslstm ×4128 hiddenlinear128 → 96forecast8 × 441 × 12
input24 steps × 441 nodes × 16

72 hours of history in 3-hour steps. Each of the 441 grid points carries 12 weather variables and 4 time encodings.

Hover, focus or tap a block. Slab height follows channel width; the glowing dot traces one forward pass. 810,328 parameters in total.
810,328 parametersRTX 3050 laptop, 16 GB RAM3–5 s to validate a regionPyTorch + PyTorch GeometricERA5 via the CDS APIuv
05 / methodology

Learn a good starting point, then adapt.

step 1 · meta-trainFirst-order MAML across regions

Each region is a task. Its data is split in time: the first 75% for adapting, the last 25% for scoring the adaptation. The model is updated so that a few adaptation steps lead to a good score.

inner: SGD 0.01, 20 steps · outer: AdamW 0.001, 4 tasks per update · 1,000 updates
step 2 · adaptFine-tune on the new region

15 epochs of fine-tuning on two years (2023–2024) of the new region's data, with a learning rate tuned per climate zone.

~5,800 training windows
step 3 · testForecast held-out 2025

Every 72-hour window from January to March 2025, compared with what actually happened.

688 windows per region

Harder regions (such as Moscow and North Siberia) are sampled more often during meta-training. Learning rates follow a cosine schedule with warm restarts, and gradients are clipped to keep training stable.

how to read the score

Results use normalised MSE: the forecast error across all 12 variables, scaled so that 1.0 equals always predicting the long-run average for that place and time (climatology). Anything below 1.0 beats that baseline; lower is better.

06 / what happened

Five versions, one rewrite, and a metric that had to change.

  1. V1GraphCast + MAML

    Abandoned. GraphCast's hard-coded features, complexity and thin documentation made it impossible to wrap in meta-learning with the resources available. The lesson: build a custom architecture flexible enough for MAML.

  2. V2Pure STGCN, temperature only

    The first working meta-learning setup: 3 graph layers, 7,873 parameters, 15 regions. It could only predict temperature and had no sense of time.

  3. V312 variables, 4 regions

    13,256 parameters. Predictions collapsed toward the average, the “averaging problem”: in Australia, temperature error was 5.69 K with a −5.63 K bias.

  4. V4Add an LSTM

    A recurrent layer fixed the averaging problem. 154,304 parameters, 15 regions. Still struggled in Arctic regions.

  5. V5Scale up

    256-wide graph layers and a 4-layer LSTM: 5.4× more parameters than V4, with AdamW and a cosine schedule. This is the model in the paper.

  6. aug 2026Model 5.2: correctness audit

    A rewrite found real bugs and fixed them before retraining (listed below). Every result was then regenerated.

What the Model 5.2 audit fixed

targetsOff by one step

Forecasts were scored at +6 to +27 hours instead of +3 to +24.

adaptation79% of data unused

Fine-tuning only saw January to June 2023. It now uses the full two years.

metricPressure dominated the score

The paper's raw-unit average was swamped by surface pressure (around 10⁵ Pa). Replaced with the normalised metric above.

climate zonesWrong zone for new regions

New regions fell through to “temperate”. Zones now come from each region's Köppen codes.

modelDead weights

An unused 24,672-parameter head was removed, and checkpoints now load strictly.

gridOne region was 21 × 20

The Sahara box had 420 nodes instead of 441.

Because of these fixes, the numbers in the paper's tables (for example an MSE of 0.099 for Debundscha) come from the earlier pipeline and can't be compared with the results below.

07 / final results

Better than climatology in every region tested.

0.000.250.500.751.0 = climatologySudanSudan: normalised MSE 0.138, temperature RMSE 1.85 K0.138Sahara (Mali)Sahara (Mali): normalised MSE 0.191, temperature RMSE 2.4 K0.191India *India: normalised MSE 0.192, temperature RMSE 1.58 K0.192Oymyakon, RussiaOymyakon, Russia: normalised MSE 0.207, temperature RMSE 4.38 K0.207Ethiopia (Afar)Ethiopia (Afar): normalised MSE 0.230, temperature RMSE 1.69 K0.230Verkhoyansk, RussiaVerkhoyansk, Russia: normalised MSE 0.251, temperature RMSE 4.38 K0.251AfghanistanAfghanistan: normalised MSE 0.312, temperature RMSE 2.97 K0.312Thailand *Thailand: normalised MSE 0.321, temperature RMSE 0.9 K0.321IndonesiaIndonesia: normalised MSE 0.353, temperature RMSE 0.99 K0.353Debundscha, CameroonDebundscha, Cameroon: normalised MSE 0.353, temperature RMSE 0.81 K0.353Queensland, AustraliaQueensland, Australia: normalised MSE 0.388, temperature RMSE 0.83 K0.388North SiberiaNorth Siberia: normalised MSE 0.404, temperature RMSE 4.24 K0.404Moscow *Moscow: normalised MSE 0.416, temperature RMSE 3.33 K0.416Lytton, CanadaLytton, Canada: normalised MSE 0.434, temperature RMSE 2.82 K0.434ArgentinaArgentina: normalised MSE 0.489, temperature RMSE 2.77 K0.489New YorkNew York: normalised MSE 0.544, temperature RMSE 3.65 K0.544AmazonAmazon: normalised MSE 0.572, temperature RMSE 1.32 K0.572SvalbardSvalbard: normalised MSE 0.579, temperature RMSE 2.6 K0.579
Normalised MSE across all 12 variables, Model 5.2, 688 forecast windows per region (lower is better). * Regions whose area was also part of meta-training; they were still tested on unseen 2025 data.
0.81 Ktemperature RMSE, Debundscha (Cameroon)
0.99 Ktemperature RMSE, Indonesia
1.58 Ktemperature RMSE, India
4.2–4.4 Ktemperature RMSE in Siberia, the weakest spot
input (72 h)truepredicted
296297298299300301302303304day 1day 2day 3day 4forecast →+3 h · true 298.1 K+6 h · true 300.3 K+9 h · true 301.8 K+12 h · true 301.6 K+15 h · true 300.2 K+18 h · true 299.0 K+21 h · true 298.6 K+24 h · true 298.2 K+3 h · predicted 298.0 K+6 h · predicted 300.6 K+9 h · predicted 301.9 K+12 h · predicted 301.4 K+15 h · predicted 299.9 K+18 h · predicted 298.9 K+21 h · predicted 298.2 K+24 h · predicted 297.7 Kkelvin · 3-hour steps
65% less error than climatology0.99 K temperature RMSE0.75 K MAEover 688 windows
The first forecast window of January 2025 for each region, redrawn from the validation plots (±0.2 K). The scores below the chart cover all 688 windows. All plots, a Köppen world map and per-climate results →

With a fair metric, the ranking looks different from the paper's: dry and arid regions (Sudan, Sahara, India) score best, while the Amazon and Svalbard score worst overall. In absolute temperature terms the tropics are most accurate, under 1 K of error, and Siberia is the least.

08 / limitations

What's still weak.

  • A cold bias of 4–8 K remains in Arctic and Siberian regions.
  • The only baseline is climatology. There is no comparison yet against persistence forecasts, physics-based models, or GraphCast.
  • The model is “spatio-temporal” mostly in name: graph convolutions handle space, and time is left entirely to the LSTM.
  • Only two years of adaptation data and a single time scale are tested.

Next

A V6 design adds attention per variable group and multi-scale LSTMs (2.9M parameters), with separate expert models per climate zone and a meta-selector on top. Also planned: pressure-aware losses, probabilistic forecasts and physics-informed constraints.