1 of 73

Towards AI-based Data Assimilation for Weather Forecasting

Ryan Keisler

Daniel Rothenberg

Gideon Dresdner

Jacob Bieker

Hans Mohrmann

NCAR / CISL Seminar

March 20, 2025

2 of 73

Making AI weather forecasting tools available to all, to help humanity adapt to increasingly extreme weather

Building an end-to-end probabilistic forecasting system�

Open-sourcing benchmark datasets, models and metrics to spur innovation in AI weather forecasting�

Providing AI weather forecasting tools to all

3 of 73

NNJA-AI - �An AI-Ready,�Cloud-Optimized�Observational Dataset

for Machine Learning Weather Prediction

4 of 73

Observation-Driven MLWP is here…

Aardvark Weather (Vaughn et al, 2024)

  • Heavily re-processes data to common grids

GraphDOP (Alexe et al, 2024)

  • Leverages Level 1 data in native spatial/temporal resolution

* Hear more about Brightband’s observation-driven DA and forecasting system on Tuesday @ 9AM in Rm 339 - 5A.3 - Keisler et al, “AI Data Assimilation Directly from Observations”

5 of 73

Data Challenges for Observation-Driven MLWP

  • Observational data is multi-modal and heterogeneous
    • Timeseries at fixed points (surface stations, buoys)
    • Lagrangian trajectories (weather balloons, gliders, drones)
    • Gridded / Raster-like with multiple channels (LEO / GEO satellites)
    • Volumetric (doppler radar)
  • Multiplicity of providers disseminate data using different
    • distribution technologies (APIs, FTP/Cloud Buckets…),
    • formats (BUFR, HDF5/NetCDF, ASCII, other binary…) and
    • standards (ECMWF ParamDB, CF-Conventions, DX BUFR, …)
    • licenses (mixture of open and restricted commercial)
  • Curating observational data for AI/ML tasks is a significantly complex engineering task and impediment to rapid research progress

6 of 73

NOAA NASA Joint Archive (NNJA) of Observations for Earth System Reanalysis

Curated archive of observational data from a large swath of sensors/platforms

Implements FAIR principles:

  • Single, consistent archive structure + file format (BUFR)
  • Clear documentation; consistent metadata + self-documentation
  • Published openly on AWS S3 using a permissive license (CC-BY 4.0)
  • Prepared and preprocessed in a consistent fashion intended for NWP modeling

https://psl.noaa.gov/data/nnja_obs/

7 of 73

Example: NNJA AMSU-A vs Reference

Left: AMSU-A L1C data from NCEI catalog / AIRS

Right: AMSU-A Tb sampled directly from NNJA

8 of 73

Challenges with NNJA BUFR

  • Schema-based encoding of heterogeneous weather data to a binary format.�
  • Record-based / tabular format.
  • Data is still geospatial/temporal but fully unstructured.
  • Each “subset” is one observation - e.g. a pixel or a single sounding.
  • Fractured and limited software / tooling - some difficult-to-use Fortran libraries

BUFR file

Message 1

Message 2

Message 1

Obs/Subset 1

Obs/Subset 2

NC021045 | MSG TYPE 021-045 PROC. GOES-16 ALL SKY RADIANCES (ASR)

├──SIDENSEQ | SATELLITE IDENTIFICATION

│ ├──SIDGRSEQ | SATELLITE IDENTIFIER/GENERATING RESOLUTION

│ │ ├──SAID | SATELLITE IDENTIFIER

│ │ ├──GCLONG | ORIGINATING/GENERATING CENTER

│ │ ├──SCLF | SATELLITE CLASSIFICATION

│ │ ├──SSNX | SEGMENT SIZE AT NADIR IN X DIRECTION

│ │ └──SSNY | SEGMENT SIZE AT NADIR IN Y DIRECTION

│ ├──YYMMDD | DATE -- YEAR, MONTH, DAY

│ │ ├──YEAR | YEAR

│ │ ├──MNTH | MONTH

│ │ └──DAYS | DAY

│ ├──HHMMSS | TIME -- HOUR, MINUTE, SECOND

│ │ ├──HOUR | HOUR

│ │ ├──MINU | MINUTE

│ │ └──SECO | SECOND

│ └──LTLONH | HIGH ACCURACY LATITUDE/LONGITUDE POSITION

│ ├──CLATH | LATITUDE (HIGH ACCURACY)

│ └──CLONH | LONGITUDE (HIGH ACCURACY)

├──NPPR | NUMBER OF PIXELS PER ROW

├──NPPC | NUMBER OF PIXELS PER COLUMN

├──SAZA | SATELLITE ZENITH ANGLE

├──BEARAZ | BEARING OR AZIMUTH

├──SOZA | SOLAR ZENITH ANGLE

├──SOLAZI | SOLAR AZIMUTH

├──HITE | GEOPOTENTIAL HEIGHT

├──CLOUDCOV | CLOUD COVERAGE

│ ├──NCLDMNT | AMOUNT SEGMENT CLOUD FREE

│ ├──LSQL | LAND/SEA QUALIFIER

│ ├──NCLDMNT | AMOUNT SEGMENT CLOUD FREE

│ ├──LSQL | LAND/SEA QUALIFIER

│ ├──CLDMNT | CLOUD AMOUNT IN SEGMENT

| ...

│ ├──VSAT | VERTICAL SIGNIFICANCE (SATELLITE OBSERVATIONS)

│ ├──CLDMNT | CLOUD AMOUNT IN SEGMENT

│ └──VSAT | VERTICAL SIGNIFICANCE (SATELLITE OBSERVATIONS)

├──SIDP | SATELLITE INSTRUMENT DATA USED IN PROCESSING

├──RDCM | RADIANCE COMPUTATIONAL METHOD

├──"ALLSKYRC"10 | ALL SKY RADIANCE DATA

│ ├──SCCF | SATELLITE CHANNEL CENTER FREQUENCY

│ ├──SCBW | SATELLITE CHANNEL BAND WIDTH

│ ├──TMBRST | BRIGHTNESS TEMPERATURE

│ ├──METFET | METEOROLOGICAL FEATURE

| ...

│ ├──VSAT | VERTICAL SIGNIFICANCE (SATELLITE OBSERVATIONS)

│ └──TMBRST | BRIGHTNESS TEMPERATURE

9 of 73

NNJA-AI Approach and High-Level Design

  1. Directly re-process entire archive into an intermediate format, preserving original data schemes, but optimized for large-scale cloud-based data engineering.�
  2. Convert to a structured, cloud-native archive with an intermediate / consolidated data schema and cataloging system to enable both SQL-like and direct access to the underlying data.�
  3. Provide scalable and flexible pipelines to allow users to easily explore, extract, post-process, and otherwise coerce data from the archive to meet their own requirements and use cases.

10 of 73

De-BUFR’ing

.------------------------------------------------------------------------------.

| ------------ USER DEFINITIONS FOR TABLE-A TABLE-B TABLE D -------------- |

|------------------------------------------------------------------------------|

| MNEMONIC | NUMBER | DESCRIPTION |

|----------|--------|----------------------------------------------------------|

| | | |

| NC021241 | A61207 | MTYP 021-241 IASI 1C RADIANCES (VARIABLE CHNS) (METOP) |

| | | |

| YYMMDD | 301011 | DATE -- YEAR, MONTH, DAY |

| HHMM | 301012 | TIME -- HOUR, MINUTE |

| HHMMSS | 301013 | TIME -- HOUR, MINUTE, SECOND |

| LTLONH | 301021 | HIGH ACCURACY LATITUDE/LONGITUDE POSITION |

| SIDGRSEQ | 301071 | SATELLITE IDENTIFIER/GENERATING RESOLUTION |

| SIDENSEQ | 301072 | SATELLITE IDENTIFICATION |

| . . . . | . . . | . . . . . . . . . . . . . . . . . . . . . . . . . . . . |

| | | |

|------------------------------------------------------------------------------|

| MNEMONIC | SEQUENCE |

|----------|-------------------------------------------------------------------|

| | |

| NC021241 | SAID GCLONG SIID SCLF YEAR MNTH DAYS HOUR MINU 202131 |

| NC021241 | 201138 SECO 201000 202000 CLATH CLONH SAZA BEARAZ SOZA |

| NC021241 | SOLAZI FOVN ORBN 201133 SLNM 201000 201132 MJFC 201000 |

| NC021241 | 202126 SELV 202000 QGFQ QGQI QGQIL QGQIR QGQIS QGSSQ |

| NC021241 | "IASIL1CB"10 (IASICHN) SIID AVHCST "IASIL1CS"7 |

| | |

| IASICHN | 201136 CHNM 201000 SCRA |

| | |

|------------------------------------------------------------------------------|

| MNEMONIC | SCAL | REFERENCE | BIT | UNITS |-------------|

|----------|------|-------------|-----|--------------------------|-------------|

| | | | | |-------------|

| . . . . | . . | . . . . . . | . . | . . . . . . . . . . . . |-------------|

| | | | | |-------------|

`------------------------------------------------------------------------------'

NOAA-produced BUFR files include an ASCII-based “DX BUFR Table” which define mnemonics.

Mnemonics are the building blocks of the schema used to encode a single observation written to a BUFR file.

Notable special format strs:

<xxx>: 1-bit delayed replication; an “optional” field

{xxx}: 8-bit delayed replication;

Expect 0-255 repetitions

(xxx): 16-bit delayed replication; Expect 0-65536 repetitions

“xxx”N: non-delayed replication; exactly N repetitions

11 of 73

De-BUFR’ing

NC021241 | MTYP 021-241 IASI 1C RADIANCES (VARIABLE CHNS) (METOP)

├──SAID | SATELLITE IDENTIFIER

├──GCLONG | ORIGINATING/GENERATING CENTER

├──SIID | SATELLITE INSTRUMENTS

├──SCLF | SATELLITE CLASSIFICATION

├──YEAR | YEAR

├──MNTH | MONTH

├──DAYS | DAY

├──HOUR | HOUR

├──MINU | MINUTE

├──SECO | SECOND

├──CLATH | LATITUDE (HIGH ACCURACY)

├──CLONH | LONGITUDE (HIGH ACCURACY)

| * * * * * * * * |

├──QGSSQ | OUTPUT OF TEC FUNCTION

├──"IASIL1CB"10 | IASI LEVEL 1C BAND DESCRIPTION SEQUENCE

│ ├──STCH | START CHANNEL

│ ├──ENCH | END CHANNEL

│ └──CHSF | CHANNEL SCALE FACTOR

├──(IASICHN) | IASI LEVEL 1C SCALED RADIANCE SEQUENCE

│ ├──CHNM | CHANNEL NUMBER

│ └──SCRA | SCALED IASI RADIANCE

├──SIID | SATELLITE INSTRUMENTS

├──AVHCST | AVHRR CHANNEL COMBINATION

└──"IASIL1CS"7 | IASI LEVEL 1C AVHRR SINGLE SCENE SEQUENCE

├──YAPCG | Y ANGULAR POSITION OF CENTER OF GRAVITY

├──ZAPCG | Z ANGULAR POSITION OF CENTER OF GRAVITY

├──FCPH | FRACTION OF CLEAR PIXELS IN HIRS FOV

└──"AVHRCHN"6 | IASI LEVEL 1C MEAN AND STANDARD DEVIATION RADIANCE SEQ

├──CHNM | CHANNEL NUMBER

├──CHSF | CHANNEL SCALE FACTOR

├──SMRA | SCALED MEAN AVHRR RADIANCE

├──CHSF | CHANNEL SCALE FACTOR

└──SSDR | SCALED STANDARD DEVIATION OF AVHRR RADIANCE

For any given mnemonic, we can construct a graph representing the structure of a given message type.

This graph is a sort of schematic representation of the contents of a given message, and we can use it to encode or decode a message to pass between different serialization libraries

12 of 73

De-BUFR’ing

syntax = "proto3";

message NC021241 {

enum SAID_enum {

ERS_1 = 0;

ERS_2 = 1;

...

NOAA_21 = 226;

...

}

optional SAID_enum SAID = 1;

optional int32 GCLONG = 2; /* or just encode as int */

...

optional float QGSSQ = 27;

message IASIL1CB_entry {

optional int32 STCH = 1;

optional int32 ENCH = 2;

optional float CHSF = 3;

}

repeated IASI1LCB_entry IASI1LCB = 28;

...

message IASIL1CS_entry {

optional float YAPCG = 1;

...

message AVHRCHN_entry {

optional int32 CHNM = 1;

optional float CHSF01 = 2;

optional float SMRA = 3;

optional float CHSF02 = 4;

optional float SSDR = 5;

}

repeated AVHRCHN_entry AVHRCHN = 4;

}

repeated IASIL1CS_entry IASIL1CS = 32;

}

Example: sketch of NC021241 (IASI) message as a Protocol Buffer (protobuf)

Protobufs require a pre-compiled schema, so we could generate sets of them from published DX BUFR tables and Code/Flag tables.

Not ideal format for data serialization:

  • Require loading entire message into memory to parse
  • Messages are not compressed
  • Not a formal standard (developed and maintained by Google)
  • Cannot (easily) embed metadata (use reflexive .proto file definitions)

13 of 73

De-BUFR’ing

{

"doc": "MTYP 021-241 IASI 1C RADIANCES (VARIABLE CHNS) (METOP)",

"fields": [

{"doc": "SATELLITE IDENTIFIER", "name": "SAID", "type": "int"},

{"doc": "ORIGINATING/GENERATING CENTER", "name": "GCLONG", type": "int"},

...

{"doc": "OUTPUT OF TEC FUNCTION", "name": "QGSSQ", "type": "double"},

{"doc": "IASI LEVEL 1C BAND DESCRIPTION SEQUENCE DATA",

"name": "IASIL1CB",

"type": {

"items": {

"doc": "IASI LEVEL 1C BAND DESCRIPTION SEQUENCE",

"fields": [

{"doc": "START CHANNEL", "name": "STCH", "type": "double"},

{"doc": "END CHANNEL", "name": "ENCH", "type": "double"},

{"doc": "CHANNEL SCALE FACTOR", "name": "CHSF01", "type": "double"}

],

"name": "IASIL1CB",

"type": "record"

},

"type": "array"

}

},

{"doc": "IASI LEVEL 1C SCALED RADIANCE SEQUENCE DATA",

"name": "IASICHN",

"type": {

"items": {

"doc": "IASI LEVEL 1C SCALED RADIANCE SEQUENCE",

"fields": [

{"doc": "CHANNEL NUMBER", "name": "CHNM01", "type": "double"},

{"doc": "SCALED IASI RADIANCE", "name": "SCRA","type": "double"}

],

"name": "IASICHN",

"type": "record"

},

"type": "array"

}

},

...

Example: sketch of NC021241 (IASI) message as Apache Avro

Avro is a data serialization system which provides both rich, dynamic data structure specification and a compact binary file format.

Schemas are embedded within an Avro file.

Primary downside to Avro is that it is a record-oriented format (like BUFR) - when processing large amounts of data, each record must be processed sequentially in its entirety (potentially by a pool of workers), even if only a subset of the data is needed.

14 of 73

De-BUFR’ing

SAID: string

-- field metadata --

NUMBER: '001007'

DESCRIPTION: 'SATELLITE IDENTIFIER'

SCAL: '0'

REFERENCE: '0'

BIT: '10'

UNITS: 'CODE TABLE'

GCLONG: string

...

IASIL1CB: fixed_size_list<element: struct<STCH: double, ENCH: double, CHSF01: double>>[10]

child 0, element: struct<STCH: double, ENCH: double, CHSF01: double>

child 0, STCH: double

child 1, ENCH: double

child 2, CHSF01: double

-- field metadata --

NUMBER: '340002'

DESCRIPTION: 'IASI LEVEL 1C BAND DESCRIPTION SEQUENCE'

...

IASIL1CS: fixed_size_list<element: struct<YAPCG: double, ZAPCG: double, FCPH: double, AVHRCHN: fixed_size_list<element: struct<CHNM02: double, CHSF02: double, SMRA: double, CHSF03: double, SSDR: double>>[6]>>[7]

child 0, element: struct<YAPCG: double, ZAPCG: double, FCPH: double, AVHRCHN: fixed_size_list<element: struct<CHNM02: double, CHSF02: double, SMRA: double, CHSF03: double, SSDR: double>>[6]>

child 0, YAPCG: double

child 1, ZAPCG: double

child 2, FCPH: double

child 3, AVHRCHN: fixed_size_list<element: struct<CHNM02: double, CHSF02: double, SMRA: double, CHSF03: double, SSDR: double>>[6]

child 0, element: struct<CHNM02: double, CHSF02: double, SMRA: double, CHSF03: double, SSDR: double>

child 0, CHNM02: double

child 1, CHSF02: double

child 2, SMRA: double

child 3, CHSF03: double

child 4, SSDR: double

-- field metadata --

NUMBER: '361139'

DESCRIPTION: 'IASI LEVEL 1C MEAN AND STANDARD DEVIATION RADIANCE SE' + 1

-- field metadata --

NUMBER: '340004'

DESCRIPTION: 'IASI LEVEL 1C AVHRR SINGLE SCENE SEQUENCE'

-- schema metadata --

NUMBER: 'A61207'

DESCRIPTION: 'MTYP 021-241 IASI 1C RADIANCES (VARIABLE CHNS) (METOP)'

Example: sketch of NC021241 (IASI) message as Apache Parquet

Parquet is a “column-oriented data file format designed for efficient data storage and retrieval,” based on the infamous Dremel paper from Google.

Incorporates a “semi-structured” encoding scheme which allows for highly-efficient data reads - can trivially read from a single column (arbitrarily nested).

Very similar to internal data structures used to back peta-scale analytics tools like Google Cloud BigQuery.

15 of 73

NNJA-AI Data Pipeline - High-Level Overview

NNJA Archive

BUFR File

BUFR File

BUFR File

Phase 1) De-BUFR’ing

Phase 2) AI-Ready Archive

Phase 3) ML Dataset Gen

debufr

debufr

debufr

Avro Shards

Avro Shards

Avro Shards

Consolidation

Hive-Partitioned Parquet Shards

“AI-Ready” Archive

ML Prep�(Homogenization)

ML Train/�Inference�Dataset

ML Train/�Inference�Dataset

ML Train/�Inference�Dataset

Per �application

16 of 73

Cloud-Native Structure and Design

Column-oriented, flat data format

“Flattened” BUFR messages written to Parquet

Hierarchical / Hive-partitioned layout

Logically structures archive and provides explicit indices

┌───────────────┬─────────────┐

│ column_name │ column_type │

├───────────────┼─────────────┤

│ CLAT │ DOUBLE │

│ CLON │ DOUBLE │

│ SAID │ INTEGER │

│ SIID │ INTEGER │

│ FOVN │ DOUBLE │

│ LSQL │ INTEGER │

│ SAT_ZA │ DOUBLE │

│ SOL_ZA │ DOUBLE │

│ HOLS │ DOUBLE │

│ HMSL │ DOUBLE │

│ SOL_AZ │ DOUBLE │

│ BEAR_AZ │ DOUBLE │

│ OBS_TIMESTAMP │ TIMESTAMP │

│ CHNM_00001 │ UTINYINT │

│ TMBR_00001 │ DOUBLE │

│ CSTC_00001 │ DOUBLE │

| - - - - - | - - - │

│ CHNM_00015 │ UTINYINT │

│ TMBR_00015 │ DOUBLE │

│ CSTC_00015 │ DOUBLE │

├───────────────┴─────────────┤

“List of Structs” unpacked to separate columns

gs://nnja-ai/

├── README.md

├── LICENSE

├── ...

└── v1/

├── .pmetadata[.json]

├── SOURCE=amsua/

│ └── DATASET=1bamua/

│ └── MSG_TYPE=NC021023/

│ ├── .pmetadata[.json]

│ ├── OBS_DATE=2021-01-01/

│ │ └── data.pq

│ ├── ...

│ └── OBS_DATE=2024-12-31/

└── SOURCE=geo/

├── DATASET=gsrcsr/

│ └── ...

└── DATASET=gsrasr/

└── ...

Partition names embedded in URIs

Single data file per partition

17 of 73

Why…

… not write the data as Zarr?

  • For most of the datasets in NNJA, “time” is the only real index; geospatial information is a type of metadata and is non-gridded.
  • Data is fundamentally a “record” format - although we could preserve the array-like structure of data for each channel.
  • Access patterns are expected to primarily involve subsetting on time and channel dimension
  • Zarr doesn’t provide us any benefits over standard tabular data formats

… flatten all the columns?

  • We initially wanted to preserve the nested structure – tools like BigQuery can exploit it very easily
  • We found that most off-the-shelf analytics tools could not optimize for subsetting arrays (we had to retrieve it entirely) or nested columns (retrieve entire struct)
  • This design is still subject to review based on early user feedback

18 of 73

Why…

… tabular instead of raster data?

Adapted from Table 1, Alexe et al (2024)

373+ channels as a starting point

Figure 2, Keisler (2022)

Flexibility beyond “simple” vision-based encoders

… flexible - defer decisions which might impact model design / application to end users.�

… support myriad applications beyond just MLWP or AI-DA development.��… already a standard / convention for NWP / data assimilation applications.

19 of 73

SDK Example - Proposed API

import nnja

catalog = nnja.DataCatalog(version=nnja.V1)

amsu_ds = catalog.search('amsua/1bamua')

tmbr_fld = nnja.field(

'BRITCSTC.TMBR', channels='all')

amsu_df: pl.DataFrame = amsu_ds.sel(

time=slice('2021-01-13', '2021-01-14'),

bbox=(-120, -70, 20, 60),

fields=[

'OBS_TIMESTAMP', 'MSG_TIMESTAMP',

'LAT', 'LON',

'SAZA', 'SOZA', 'SOLAZI', 'BEARAZ',

tmbr_fld,

],

SAID=('NOAA-18', 'NOAA-19')

).load_dataset(engine='polars')

Fetch a published catalog

Search / retrieve a particular dataset

Helper to retrieve a subset of channels for a given field

Subset and retrieve data

  • Slice by observation timestamp
  • Slice by bounding box (lat/lon)
  • Select fields�Timestamps for obs + publishing�Geospatial�Satellite viewing geometry�Data field (helper from earlier)�
  • Slice by an actual data field (implicit)
  • Load via Polars

20 of 73

Example: Subset of data available in NNJA-AI

January 13, 2021 - 00Z - 03Z

21 of 73

NNJA-AI v1 - Preview Release

Complete NNJA-AI v1 release planned for end of Q1, 2025 on AWS and GCS

Sensor

Platforms

Years

Microwave �(LEO)

AMSU-A

NOAA 15/18/19, Metop B/C

2021-2024

ATMS

NOAA 20, Suomi-NPP

2021-2024

MHS

NOAA 18/19, Metop B/C

2021-2024

Infrared

(LEO)

CrIS

NOAA 20, Suomi-NPP

2021-2024

IASI

Metop B/C

2021-2024

Infrared

(GEO)

SEVIRI (all-sky)

Meteosat 10/11

2022*-2024

ABI (all-sky)

Himawari, GOES-*

2021-2024

ABI (clear-sky)

GOES-*

2021-2024

In Situ

Upper Air

SYNOP Weather Balloons

2021-2024

Surface

SYNOP / METAR

2021-2024

2021-2024

  • Preview release available today on Google Cloud Storage (gs://nnja-ai; DOI 10.5281/zenodo.14633509) under CC-BY 4.0 license�
  • Preview Python-based SDK available on GitHub at �github.com/brightbandtech/nnja-ai
  • We want your feedback!��Our goal is to create a highly useful resource for the broader AI/weather communities. We can – and will – improve archive structure and tooling based on your wants/needs.

22 of 73

AI Data Assimilation

Directly from Observations

23 of 73

The Future of AI Weather is Observations

24 of 73

The Future of AI Weather is Observations

Observations

Current State

Forecast

Traditional Numerical Weather Prediction

Physics

Physics

Data Assimilation

Forecast

25 of 73

The Future of AI Weather is Observations

Observations

Current State

Forecast

Observations

Current State

Forecast

Traditional Numerical Weather Prediction

Partial AI �Weather Prediction

Physics

Physics

Recent breakthroughs �(GraphCast, etc.)

Opportunity

Physics

AI Model

Data Assimilation

Forecast

26 of 73

The Future of AI Weather is Observations

Observations

Current State

Forecast

Observations

Current State

Forecast

Traditional Numerical Weather Prediction

Partial AI �Weather Prediction

Physics

Physics

Recent breakthroughs �(GraphCast, etc.)

Opportunity

Physics

AI Model

  1. Performance: more data, better forecasts

Data Assimilation

Forecast

27 of 73

The Future of AI Weather is Observations

Observations

Current State

Forecast

Observations

Current State

Forecast

Traditional Numerical Weather Prediction

Partial AI �Weather Prediction

Physics

Physics

Recent breakthroughs �(GraphCast, etc.)

Opportunity

Physics

AI Model

  • Performance: more data, better forecasts�
  • Structural: more organizations can create forecasts

Data Assimilation

Forecast

28 of 73

The Future of AI Weather is Observations

Observations

Current State

Forecast

Observations

Current State

Forecast

Observations

Forecast

Traditional Numerical Weather Prediction

Partial AI �Weather Prediction

Full AI �Weather Prediction

Physics

Physics

Opportunity

Recent breakthroughs �(GraphCast, etc.)

Physics

AI Model

AI Model

Data Assimilation

Forecast

29 of 73

The Future of AI Weather is Observations

Observations

Current State

Forecast

Traditional Numerical Weather Prediction

Partial AI �Weather Prediction

Full AI �Weather Prediction

Observations

Observations

Current State

Forecast

Current State

Forecast

Physics

Physics

AI Model

AIDA

Recent breakthroughs �(GraphCast, etc.)

Opportunity

Physics

AI Model

AI Model

Data Assimilation

Forecast

30 of 73

“AIDA”

AI Data Assimilation

31 of 73

AIDA Overview

  • AI System for Global Data Assimilation�
  • Directly estimates atmospheric state from Level 1 observations

  • No background state�
  • Can be used to feed AI Forecast models

  • Running operationally�

32 of 73

Guided Diffusion

33 of 73

Guided Diffusion

We use a Guided Diffusion approach, building on previous work, including:

  • Score-based Data Assimilation, Rozet and Louppe 2023�
  • DiffDA: a Diffusion model for weather-scale �Data Assimilation, Huang et al 2024�
  • Deep Generative Data Assimilation in Multimodal Setting, �Qu et al 2024�
  • Generative Data Assimilation of Sparse Weather Station Observations at Kilometer Scales, Manshausen et al 2024

34 of 73

Guided Diffusion

35 of 73

Guided Diffusion

0h

3h

6h

9h

0h

3h

6h

9h

Diffusion Model

Generate a realistic trajectory of the atmosphere,

36 of 73

Guided Diffusion

0h

3h

6h

9h

0h

3h

6h

9h

Diffusion Model

True�Observations

Generate a realistic trajectory of the atmosphere, �that is also consistent with observations.

37 of 73

Guided Diffusion

0h

3h

6h

9h

0h

3h

6h

9h

Diffusion Model

Observation Operator

Predicted Observations

True�Observations

Generate a realistic trajectory of the atmosphere, �that is also consistent with observations.

38 of 73

Guided Diffusion

0h

3h

6h

9h

Diffusion Model

Observation Operator

0h

3h

6h

9h

ML

ML

39 of 73

Guided Diffusion

0h

3h

6h

9h

Diffusion Model

Observation Operator

1B parameter U-Net

1-degree resolution

Trained on ERA5

0h

3h

6h

9h

ML

ML

40 of 73

Unguided Diffusion

41 of 73

Unguided Diffusion

42 of 73

Guided Diffusion

0h

3h

6h

9h

Diffusion Model

Observation Operator

1B parameter U-Net

1-degree resolution

Trained on ERA5

Linear interpolation + MLP

Trained on ERA5 + 2021-2023 Observations

0h

3h

6h

9h

ML

ML

43 of 73

Observation Operators are Modular

AMSU-A

ATMS

Your Sensor Here

Each observation operator is trained independently.

We can easily add new types of observations and test their value.

44 of 73

Observational Data

45 of 73

Observational Data

10 datasets, 1000+ channels, 10M+ observations per DA window

46 of 73

Observational Data

Dataset

Platforms

Channels Used

Microwave

(Low Earth Orbit)

AMSU-A

NOAA 15/18/19, Metop B / C

10

ATMS

NOAA 20/21, Suomi-NPP

22

MHS

NOAA 18/19, Metop B/C

5

Infrared

(Low Earth Orbit)

CrIS

NOAA 20/21, Suomi-NPP

431

IASI

Metop B/C

616

Infrared

(Geostationary)

Himawari

Himawari 8/9 (clear sky)

10

GOES

GOES-16/18 (all sky)

10

Meteosat

Meteosat 10/11 (all sky)

8

In Situ

Surface

Surface stations - SYNOP, METAR, buoys

5

Upper Air

Upper air - SYNOP Weather Balloons, PIBALs

35 (5 variables on 7 levels)

10 datasets, 1000+ channels, 10M+ observations per DA window

(Check out our NNJA-AI data release at brightband.com/data !)

47 of 73

Example Observation Operator

48 of 73

Example Observation Operator

49 of 73

Example Observation Operator

50 of 73

Example Observation Operator

51 of 73

Example Observation Operator

52 of 73

AIDA in Action: January 9, 2024

53 of 73

AIDA in Action: January 9, 2024

ERA5

54 of 73

AIDA in Action: January 9, 2024

ERA5

?

Observations

55 of 73

AIDA in Action: January 9, 2024

ERA5

AIDA

56 of 73

AIDA in Action: January 9, 2024

ERA5

AIDA

57 of 73

AIDA in Action: January 9, 2024

ERA5

AIDA

58 of 73

AIDA in Action: January 9, 2024

ERA5

AIDA

59 of 73

AIDA in Action: January 9, 2024

ERA5

AIDA

60 of 73

AIDA is Operational: February 14, 2025

61 of 73

AIDA is Operational: February 14, 2025

Category 5

Cyclone Zelia

62 of 73

AIDA is Operational: March 20, 2025

63 of 73

AIDA + Forecast

64 of 73

AIDA + Forecast

Observations

Current State

Forecast

AI Model

AIDA

AI Model

Data Assimilation

Forecast

65 of 73

AIDA + Forecast

Observations

Current State

Forecast

AI Model

AIDA

AI Model

Data Assimilation

Forecast

GraphCast-1deg

66 of 73

AIDA + Forecast

Texas Freeze, January 2024

67 of 73

0 days

ΔT (K)

AIDA + GraphCast

GFS

68 of 73

3 days

ΔT (K)

AIDA + GraphCast

GFS

69 of 73

5 days

ΔT (K)

AIDA + GraphCast

GFS

70 of 73

7 days

ΔT (K)

AIDA + GraphCast

GFS

71 of 73

5 days

ΔT (K)

ERA5

GFS

AIDA + GraphCast

72 of 73

7 days

ΔT (K)

ERA5

GFS

AIDA + GraphCast

73 of 73

Conclusion

AIDA: a new AI system for Global Data Assimilation

  • Directly estimates atmospheric state from Level 1 observations

  • Can be used to feed AI Forecast models�
  • Running operationally

We’d love to talk!

hello@brightband.com