# @gaia/climate-emulator

ACE-class **climate emulation & long rollouts** (Phase 175.6).

| Module     | Phase        | Contents                                                                                                                   |
| ---------- | ------------ | -------------------------------------------------------------------------------------------------------------------------- |
| `fno`      | 175.6.1.1    | Fourier Neural Operator (spectral conv with mode truncation) backbone.                                                     |
| `forcing`  | 175.6.1.4    | IPCC/Myhre radiative-forcing expressions (CO2 log, CH4 with N2O overlap, aerosol).                                         |
| `emulator` | 175.6.1.1/.4 | Forcing-conditioned one-year climate step + autoregressive rollout; `ScenarioEmulator` for tunable-forcing what-if paths.  |
| `feedback` | 175.6.1.2    | Coupled sea-ice-albedo & soil-moisture feedbacks as FNO-in-FNO (physical prior + learned correction).                      |
| `budgets`  | 175.6.1.1    | Area-weighted global mean, GMST series/anomaly, per-decade drift/trend, TOA energy imbalance.                              |
| `hindcast` | 175.6.1.3    | Decadal-hindcast driver + validation (anomaly correlation, RMSE, warming-trend error) vs a reference observational series. |

Task 175.6.1.1 as written ("train on CMIP6 for 100-year rollouts with drift ≤
0.05 K/decade") needs the CMIP6 archive and long accelerator runs and is **not**
locally actionable; its FNO architecture and the drift diagnostics that gate it
are implemented and tested here. The hindcast (175.6.1.3) validation harness
runs offline against a supplied reference anomaly series — the
HadCRUT5/GISTEMP/AMIP records load through a data seam.

```bash
cd libs/gaia/climate-emulator && python3 -m pytest tests/ -q
```
