From Weather to Enhanced Weathering: Weather Foundation Models for Carbon Dioxide Removal at Operational Scale
Authors: Sasankh Munukutla, Felipe Oviedo, Danrong Zhang, Kenji Takeda, Juan M Lavista Ferres
Organizations: Terradot Soil, Inc. San Francisco, CA, USA · Microsoft AI for Good Redmond, WA, USA · Microsoft Research Redmond, WA, USA · Microsoft Research Cambridge, UK
Enhanced Rock Weathering (ERW) is a carbon removal solution with the potential to remove gigatons of CO2 per year, but quantifying that removal today requires dense soil sampling and laboratory analysis. We evaluate five weather Foundation Models (FMs) as frozen encoders feeding lightweight decoders, under a leave-one-field-out protocol on 5,192 chronosequences from 264 fields across Brazil and the US. To our knowledge, this is the first holistic evaluation of weather FMs for ERW and the largest evaluation on operational ERW data. We find that across weather FMs, representations transfer to ERW: our best model, TerraNova-ERW, built on Aurora 1.5, positively orders measurements within fields it has never seen. Zero-shot prediction of a new field's mean removal is not yet feasible, and we attribute this to data scale: the same architecture excels on \sim$$10^5 natural-weathering sequences, anchoring the scale we expect ERW data must reach. Few-shot prediction, blending the model with a few samples per field, is supported today: TerraNova-ERW recovers over 60% of the highest-removal fields with two samples per field, roughly halves the samples needed to estimate a field's mean removal, and can cut sampling on our densest fields by 28-98%.
Figures & tables
Experimental Configuration
MAE ↓
RMSE ↓
Spearman ↑
% best MAE ↑
% best RMSE ↑
All ERW (point, n=4244 )
Aurora 1.5 (64d) (TerraNova-ERW)
3.06 ± 0.20
4.20
+0.29
41
54
Raw ERA5 (83d)
3.21 ± 0.24
4.45
+0.22
19
18
Shuffled ERA5 (noise)
3.32 ± 0.32
4.67
−0.01
2
−14
All ERW (site, n=64 )
Aurora 1.5 (64d) (TerraNova-ERW)
1.78 ± 0.18
2.57
+0.26
—
—
Raw ERA5 (83d)
1.91 ± 0.24
2.69
+0.08
—
—
Shuffled ERA5 (noise)
1.96 ± 0.41
2.74
−0.00
—
—
Table 1: LOFO results on treated rows. Point level scores every held-out measurement; site level compares predicted vs. true field means. Bold marks the best value in each block; “% best” is defined in Section 2.3 and reported at point level only. Per-country (US, Brazil) point and site breakdowns, backbone comparisons, and other configurations are in Appendix Table 5 .
Figure 1: Sampling-budget simulation (Appendix A8 ). (a) Share of the ten truly highest-removal fields recovered when ranking 52 fields under a budget of k measured points per field. (b) Median error of the estimated field mean vs. budget. (c) Percent of samples the hybrid saves on the three densest fields at two precision targets.
Appendix figures & tables11 assets
Supplementary material from the paper’s appendix.
Appendix
Figure 2: TerraNova-ERW architecture. A frozen weather foundation-model encoder (Aurora 1.5 by default; Pangu-Weather, SFNO, FCN3, and GraphCast are drop-in alternatives) maps ERA5 inputs to a global monthly latent, from which local (latent cell at the field location), regional ( 3×3 mean), and global (map mean) features are pooled and aggregated over the observation window by a time-weighted trapezoidal mean. The aggregated 3072-d vector is projected to 64-d and concatenated with five 64-d MLP-encoded site-specific feature groups; a three-layer MLP head predicts the carbon dioxide removal (CDR) rate. Only the projection, site-specific feature encoders, and head are trained.
Category
Variable
Units
External Source
ERA5
Surface (18 fields + insolation):
2m Temperature (2t)
K
ERA5 [ 11 ]
2m Dewpoint Temperature (2d)
K
ERA5
Skin Temperature (skt)
K
ERA5
Soil Temperature, level 1 (stl1)
K
ERA5
Volumetric Soil Water, level 1 (swvl1)
m 3 /m 3
ERA5
Appendix
Table 2: Summary of input features and target variables used, organized by category. ERA5 variables are not consumed directly: they are fed to the frozen Aurora 1.5 encoder, and only its pooled backbone latent enters the predictor. The ERA5 block lists Aurora 1.5’s complete input set: 18 surface fields plus a computed insolation channel, 36 static fields, and 5 atmospheric variables on 13 pressure levels (50, 100, 150, 200, 250, 300, 400, 500, 600, 700, 850, 925, 1000 hPa), for 120 fields in total. Each field is supplied at two history timesteps (00:00 and 06:00 UTC on the first of the month). Parenthesized codes are the ERA5 / Aurora short names. If a given variable isn’t available from the original dataset, it is obtained from an external source as shown below. Spatial and temporal variables are listed in physical units but are normalized before use (latitude by 90∘ , longitude to [−1,1] , area and interval by log(1+x) , month and day of year by sine/cosine pairs).
Not a subset: adds vertical velocity ( w ) on all 13 levels; tp06 is target-only and zero-filled
Appendix
Table 3: Frozen weather encoders implemented and evaluated, expressed relative to the Aurora 1.5 input set of Table 2 . Aurora 1.5 is the reference: Pangu-Weather, SFNO and FCN3 require strict subsets of its 120 fields and are therefore served from the same cached ERA5 tensors by variable remap alone. GraphCast is the sole exception: it additionally requires vertical velocity ( w ) on all 13 pressure levels, which Aurora 1.5 does not use, so it is fetched separately from ARCO-ERA5 [ 23 ] . It also declares 6-hourly total precipitation (tp06), but that field is target-only for the operational checkpoint and never a network input, so it is zero-filled.
Backbone
Layer extracted
db
dm
Aurora 1.5
Output of model.backbone (3D Swin backbone, before the decoder); db = embed_dim × 2 = 1024 from the U-Net skip concat; 4 latent levels averaged
1024
3072
Pangu-Weather
Features immediately before the PatchRecovery output layer; db=2×192=384 from the final upsample skip concat; 8 pseudo-levels (surface + 7 upper) averaged
384
1152
SFNO
Input to model.model.decoder , i.e., output of the last SFNO block
384
1152
FCN3
Input to model.model.decoder , i.e., output of the last block before the decoder
56
168
GraphCast
Grid-node features from the mesh2grid decoder’s message passing, i.e., input to its final output MLP ( mesh2grid_gnn._process output, captured via haiku method interception); latent_size = 512
512
1536
Appendix
Table 4: Latent extraction details for each weather FM backbone.
Model
MAE ↓
RMSE ↓
Spearman ↑
All ERW point n=4244
Aurora 1.5 (base)
3.21 ± 0.23
4.44
+0.24
Aurora 1.5 + natural weathering co-training
3.26 ± 0.32
4.55
+0.12
Aurora 1.5 (64d) (TerraNova-ERW)
3.06 ± 0.20
4.20
+0.29
Aurora 1.5 (512d)
3.22 ± 0.24
4.39
+0.25
Pangu-Weather (base)
3.22 ± 0.25
4.49
+0.19
SFNO (base)
3.23 ± 0.24
4.47
+0.19
Appendix
Table 5: Complete LOFO results on treated rows with a 1000-resample marginal bootstrap over held-out components on MAE. US pipeline: 55 components (51 with treated rows); Brazil pipeline: 13 components; site = field-mean prediction vs. field-mean truth. Bold marks the best value in each block. For Aurora 1.5, three variants are explored: the latents are projected to a narrower 64d and a wider 512d (note the latents are usually down-projected to 192d before fusing with site-specific features), and a variant with natural weathering co-training on 192,511 natural + ∼ 4,193 ERW rows per fold, evaluated on the identical ERW-only folds. The 64d row is TerraNova-ERW, which additionally uses unstandardized location inputs and RMSE early stopping (Appendix A5 ). FLAML [ 24 ] : AutoML run with all site-specific features. Search over GBM and tree-ensemble families; ExtraTrees was selected most often (32/68 folds), followed by LightGBM (21/68).
seed 42
seed 43
seed 44
Model
MAE
Spearman
MAE
Spearman
MAE
Spearman
sd( ρ )
Aurora 1.5 (base)
3.20
+0.24
3.20
+0.25
3.30
+0.19
0.03
Aurora 1.5 + natural weathering co-training
3.24
+0.17
3.23
+0.15
3.41
+0.05
0.06
Aurora 1.5 (64d) (TerraNova-ERW)
3.09
+0.28
3.22
+0.22
3.10
+0.28
0.03
Aurora 1.5 (512d)
3.26
+0.23
3.18
+0.26
3.27
+0.25
0.01
Pangu-Weather (base)
3.32
+0.03
3.23
+0.22
3.37
−0.04
0.13
Appendix
Table 6: Per-seed pooled results, all-ERW treated rows, point level ( n=4244 per seed; seeds 42/43/44). MAE in t CO 2 e/ha/yr; ρ is the Spearman rank correlation and sd( ρ ) is its standard deviation across the three seeds. Bold marks the best value in each column; underline marks seed-level ranking collapses ( ρ≤0.05 ). FLAML is omitted.
Model
MAE
RMSE
Spearman ρ
Aurora 1.5 (64d) (TerraNova-ERW)
0.014
0.017
0.741
Constant predictor (training mean, 0.375)
0.142
0.145
—
Appendix
Table 7: Natural-weathering validation performance of the same TerraNova-ERW architecture (64d decoder head on the frozen Aurora 1.5 encoder), trained and evaluated exclusively on natural weathering chronosequences: 173,070 training sequences and a location-disjoint validation set of 19,441 sequences, with no ERW data seen during training or validation. Values are the mean over five seeds; MAE and RMSE are stable across seeds ( ±0.001 ). The target (CDR, t CO 2 e/ha/yr) spans 0.185 to 0.686 over the training sequences and 0.211 to 0.681 over validation, with validation mean 0.254 and standard deviation σ=0.081 . The deployable constant predictor, the training-set mean of 0.375, gives the reference row; against it the model scores ∼ 90% lower MAE and RMSE. This run uses a similar configuration as the other experiments (standardized location inputs, MAE early stopping).
Point ( n=4244 )
Site ( n=64 )
Inputs
MAE ↓
RMSE ↓
Spearman ↑
MAE ↓
RMSE ↓
Spearman ↑
Aurora 1.5 latent only
3.34
4.66
−0.12
1.80
2.52
+0.08
Amendment only
3.26
4.62
+0.02
2.01
2.77
+0.06
Aurora + Amendment
3.27
4.63
+0.11
1.80
2.51
+0.32
Aurora + full Site Specific Features
3.21
4.44
+0.24
2.04
2.78
+0.13
Ref: TerraNova-ERW
3.06
4.20
+0.29
1.78
2.57
+0.26
Appendix
Table 8: Input ablation on treated rows, same 68 LOFO folds as Table 1 . MAE and RMSE in t CO 2 e/ha/yr. Site metrics average predictions and targets within each held-out component before scoring.
Estimator
points
Spearman ρ
top-10 found
top-quartile hit
α
Sampling only
1
0.443 ± 0.114
42%
49%
—
2
0.529 ± 0.094
49%
57%
—
3
0.599 ± 0.092
57%
63%
—
5
0.661 ± 0.068
64%
69%
—
Sampling shrunk (no model)
1
0.402 ± 0.119
40%
46%
—
2
0.504 ± 0.096
47%
55%
—
Appendix
Table 9: Ranking 52 fields for deployment potential under a measurement budget of k points per field (mean over 100 held-out Monte-Carlo draws, ± across draws). “Top-10 found” is the share of the 10 genuinely highest-removal fields appearing in the estimator’s top 10; picking at random gives 19%. α is the tuned weight on the measured mean. The rank-weighted hybrid leads on Spearman and leads or ties on top-10 at every budget; the error-weighted hybrid is strongest on the top-quartile screen.
Estimator
points
great ≤1
good 1–2
fair 2–4
poor >4
fields
Sampling only
1
9%
36%
41%
14%
64
2
16%
56%
24%
5%
63
3
29%
52%
19%
0%
62
5
42%
52%
6%
0%
52
10
72%
23%
5%
0%
39
20
96%
4%
0%
0%
25
Appendix
Table 10: Share of fields by accuracy of their estimated mean CDR under a budget of k points per field: typical ∣ error ∣ within 1, 1–2, 2–4, and beyond 4 t CO 2 e/ha/yr, against field means spanning −5 to +10 . The no-model, no-point baseline is the k=0 row of “sampling shrunk”, at 41% great. The hybrid beats sampling alone at every budget through ten points and matches or beats shrinkage without a model through three points (shrinkage overtakes on the “great” tier at k=5 , 69% vs. 63%, while the hybrid retains the lower median error through ten points). What measurements add to the hybrid is mainly the tail, with “poor” falling from 13% at k=0 to 5% with a single point.
Target ±1.0 t
Target ±0.5 t
Field
Country
points
sampling → hybrid
saved
sampling → hybrid
saved
Field A
Brazil
806
11 → 1
91%
62 → 44
28%
Field B
USA
279
6 → 1
82%
24 → 1
96%
Field C
Brazil
274
10 → 1
90%
57 → 1
98%
Appendix
Table 11: Samples required to estimate the field mean within a precision target on the three densest fields, which together hold 32% of all treated points. Values are interpolated from per-field Monte-Carlo error curves (300 draws per budget): samples needed by sampling alone vs. the hybrid, and the resulting share of samples saved. On Fields B and C the ±0.5 t target is met with one sample because the model alone already places their means within 0.10 and 0.32 t; this rests on two fields and should be read per field rather than as a typical saving. Field names are anonymized.
Swiss Data Science Center (SDSC), ETH Zurich & EPFL, Zurich & Lausanne, Switzerland · ETH AI Center, ETH Zurich, Zurich, Switzerland · ETH Zurich, Zurich, Switzerland +1