The Joint Effort for Data assimilation Integration JEDI

  • Slides: 13
Download presentation
The Joint Effort for Data assimilation Integration (JEDI) System Configuration Joint Center for Satellite

The Joint Effort for Data assimilation Integration (JEDI) System Configuration Joint Center for Satellite Data Assimilation (JCSDA) JEDI Academy – 24 -27 February 2020

Overview • The JEDI system is controlled by an extensive and flexible configuration system

Overview • The JEDI system is controlled by an extensive and flexible configuration system • YAML based – Human friendly data serialization – Key-value pair specification – Nested sections – yaml. org • Goal is to reduce the need for writing custom code when setting up and running JEDI in an operational mode Configuration 2 JEDI Academy, February, 2020

YAML Basics • Friendly text format • • • Indentation defines nested sections Data

YAML Basics • Friendly text format • • • Indentation defines nested sections Data types: integer, float, string, boolean, date Tabs are forbidden • Reference Configuration – – – Simple Portable Allows for comments Common source of errors http: //yaml. org/spec/1. 2/spec. html 3 JEDI Academy, February, 2020

YAML Examples List Series of key-value pairs Key-value pairs, where the values are lists

YAML Examples List Series of key-value pairs Key-value pairs, where the values are lists • • • List, where elements are a set of key-value pairs ‘-’ element within a list ‘: ’ separates key and value ‘#’ comment Configuration 4 JEDI Academy, February, 2020

Hybrid 3 DVar Example • Step 1: Run BUMP to generate B-Matrix • Step

Hybrid 3 DVar Example • Step 1: Run BUMP to generate B-Matrix • Step 2: Run 3 DVar • Jb Step 3: Run increment Configuration – – Correlation (static B) Localization (ensemble B) Cost Function Jo Diagnostics 5 JEDI Academy, February, 2020

BUMP Configuration: Correlation App: fv 3 jedi_parameters. x config. yaml logfile Specify resolution Increment

BUMP Configuration: Correlation App: fv 3 jedi_parameters. x config. yaml logfile Specify resolution Increment variables Perform correlation function Configuration 6 JEDI Academy, February, 2020

BUMP Configuration: Localization App: fv 3 jedi_parameters. x config. yaml logfile Specify resolution Increment

BUMP Configuration: Localization App: fv 3 jedi_parameters. x config. yaml logfile Specify resolution Increment variables Perform localization function Configuration 7 JEDI Academy, February, 2020

Hybrid 3 DVar Configuration: Cost function App: fv 3 jedi_var. x config. yaml logfile

Hybrid 3 DVar Configuration: Cost function App: fv 3 jedi_var. x config. yaml logfile Jb: Model component Jo: Obs component 3 DVar technique Time window Variable change Configuration 8 JEDI Academy, February, 2020

Hybrid 3 DVar Configuration (continued) App: fv 3 jedi_var. x config. yaml logfile Minimization

Hybrid 3 DVar Configuration (continued) App: fv 3 jedi_var. x config. yaml logfile Minimization algorithm (many available) Background resolution Iteration control (outer, inner loops) Configuration 9 JEDI Academy, February, 2020

Increment Diagnostic Configuration App: fv 3 jedi_diffstates. x config. yaml logfile Grid resolutions Diagnostic

Increment Diagnostic Configuration App: fv 3 jedi_diffstates. x config. yaml logfile Grid resolutions Diagnostic variables Output format Configuration 10 JEDI Academy, February, 2020

Eckit: YAML API • Eckit provides a Configuration class (C++) • • Configuration –

Eckit: YAML API • Eckit provides a Configuration class (C++) • • Configuration – eckit/src/eckit/config/Configuration. h Constructor (with a filename argument) parses a YAML file and builds a configuration object in memory Configuration object has methods to read the keyvalue pairs JEDI Documentation on configuration Fckit provides a Fortran interface to the eckit API 11 JEDI Academy, February, 2020

Eckit: YAML API Object contains a single key at the top-level “Obs. Space” Keys

Eckit: YAML API Object contains a single key at the top-level “Obs. Space” Keys “name”, “simulate” and “Generate” are nested one level down Keys “variables”, ”Random” and “obs_errors” are nested two levels down Sample file Configuration Use “. ” to specify nesting: Key: “Obs. Space. Generate. Random. nobs” Value: 10 12 JEDI Academy, February, 2020

Eckit: YAML API Eckit provides access routines to read YAML key-value pairs eckit/src/eckit/config/Configuration. h

Eckit: YAML API Eckit provides access routines to read YAML key-value pairs eckit/src/eckit/config/Configuration. h … to read these key-value pairs Use these methods… Configuration 13 JEDI Academy, February, 2020