fme: Full Model Emulation

fme (“full model emulation”) is a python package for training, running and evaluating climate model emulators, such as the Ai2 Climate Emulator (ACE), SamudrACE and HiRO-ACE.

Why use fme?

  • fme provides a unified interface for training, running and evaluating AI models with a range of architectures (SFNO, GNNs, UNets) and applications (e.g. global atmosphere, ocean and sea ice modeling, regional downscaling).

  • We strive for a balance of flexibility—to enable easy prototyping of new modeling strategies—with ease-of-use and performance.

  • Built by climate modelers for climate modelers! We follow similar configuration and evaluation practices as traditional climate models, making fme intuitive to adopt and use.

  • Flexible data loading and writing capabilities. fme supports netCDF and zarr, as well as streaming directly from/to cloud object storage. At inference time, reductions such as monthly means can be computed on the fly, saving time and storage space.

Warning

This codebase is primarily developed to support internal research efforts of the Ai2 Climate Modeling group. Use at your own risk! We are actively developing this software and sometimes make breaking changes to the API.

Existing capabilities

This codebase enables the training and evaluation of models with a variety of architectures and applications. For example, we support:

Global atmosphere modeling:
  • deterministic global weather-climate atmospheric models like ACE2-ERA5

  • stochastic global weather-climate atmospheric models like ACE2S-SHiELD+

Global ocean and sea ice modeling:
Coupled climate modeling:
Regional downscaling:
  • diffusion-based downscaling models like HiRO

Table of contents

Getting started:

Single component (e.g. ACE):

Coupled (e.g. SamudrACE):

Downscaling (e.g. HiRO):