The Joint Effort for Data assimilation Integration JEDI













- Slides: 13
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 • 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 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 • • • 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 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 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 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 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 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 variables Output format Configuration 10 JEDI Academy, February, 2020
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 “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 … to read these key-value pairs Use these methods… Configuration 13 JEDI Academy, February, 2020