Skip to content

Consolidate JEDI-based atmospheric analysis task configuration YAMLs and create new Analysis class#4080

Merged
aerorahul merged 60 commits into
NOAA-EMC:developfrom
DavidNew-NOAA:feature/atm-parm
Oct 9, 2025
Merged

Consolidate JEDI-based atmospheric analysis task configuration YAMLs and create new Analysis class#4080
aerorahul merged 60 commits into
NOAA-EMC:developfrom
DavidNew-NOAA:feature/atm-parm

Conversation

@DavidNew-NOAA
Copy link
Copy Markdown
Contributor

@DavidNew-NOAA DavidNew-NOAA commented Sep 18, 2025

Description

This PR does two things:

  1. The J2-YAML configuration files for each atmospheric, snow, and aerosol analysis task are consolidated into single master J2-YAML files. This is done in conjunction with the GDASApp companion PR.
  2. An Analysis child class of Task is created for JEDI-based tasks and they are inherited from those tasks rather than from Task. Analysis defines several variables and methods used across a variety tasks (GPREFIX, APREFIX, etc).
  3. If there are no observations to stage, that's a warning rather than exception now.

Resolves #4079
Resolves #4023

Type of change

  • Bug fix (fixes something broken)
  • New feature (adds functionality)
  • Maintenance (code refactor, clean-up, new CI test, etc.)

Change characteristics

How has this been tested?

Build, clone, and CI testing on Hera

Checklist

  • Any dependent changes have been merged and published
  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have documented my code, including function, input, and output descriptions
  • My changes generate no new warnings
  • New and existing tests pass with my changes
  • This change is covered by an existing CI test or a new one has been added
  • Any new scripts have been added to the .github/CODEOWNERS file with owners
  • I have made corresponding changes to the system documentation if necessary

@DavidNew-NOAA DavidNew-NOAA changed the title Feature/atm parm Consolidate JEDI-based atmospheric analysis task configuration YAMLs and create FV3Analysis class Sep 18, 2025
@DavidNew-NOAA DavidNew-NOAA changed the title Consolidate JEDI-based atmospheric analysis task configuration YAMLs and create FV3Analysis class Consolidate JEDI-based atmospheric analysis task configuration YAMLs and create new Analysis class Sep 18, 2025
@RussTreadon-NOAA
Copy link
Copy Markdown
Contributor

g-w CI testing for this PR has begun on WCOSS2 (Cactus). Results will be posted when all WCOSS2 g-w CI tests complete.

@DavidNew-NOAA
Copy link
Copy Markdown
Contributor Author

Hera CI passes

******** C48_ATM ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:46:03
******** C48mx500_3DVarAOWCDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103241800        Done    Oct 07 2025 22:52:04    Oct 07 2025 23:02:04
202103250000        Done    Oct 07 2025 22:52:04    Oct 08 2025 00:14:03
******** C48mx500_hybAOWCDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103241800        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:02:04
202103250000        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:46:03
******** C48_S2SWA_gefs ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 07 2025 22:52:04    Oct 07 2025 23:50:11
******** C48_S2SW ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 07 2025 22:52:04    Oct 07 2025 23:44:03
******** C96_atm3DVar ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:04:03
202112210000        Done    Oct 07 2025 22:52:03    Oct 08 2025 01:14:03
202112210600        Done    Oct 07 2025 22:52:03    Oct 08 2025 00:34:04
******** C96C48_hybatmDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:04:03
202112210000        Done    Oct 07 2025 22:52:03    Oct 08 2025 01:00:12
202112210600        Done    Oct 07 2025 22:52:03    Oct 08 2025 00:26:03
******** C96C48_hybatmsnowDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 07 2025 22:52:04    Oct 07 2025 23:04:03
202112201800        Done    Oct 07 2025 22:52:04    Oct 08 2025 01:00:12
202112210000        Done    Oct 07 2025 22:52:04    Oct 08 2025 00:26:03
******** C96C48_hybatmsoilDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202205150600        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:06:04
202205151200        Done    Oct 07 2025 22:52:03    Oct 08 2025 01:14:03
202205151800        Done    Oct 07 2025 22:52:03    Oct 08 2025 00:38:05
******** C96C48mx500_S2SW_cyc_gfs ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 07 2025 22:52:04    Oct 07 2025 23:04:04
202112201800        Done    Oct 07 2025 22:52:04    Oct 08 2025 01:12:08
202112210000        Done    Oct 07 2025 22:52:04    Oct 08 2025 01:50:11
202112211800        Done    Oct 07 2025 23:06:04    Oct 08 2025 01:46:04
******** C96C48_ufs_hybatmDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202402231800        Done    Oct 07 2025 22:52:04    Oct 07 2025 23:04:03
202402240000        Done    Oct 07 2025 22:52:04    Oct 08 2025 01:24:04
202402240600        Done    Oct 07 2025 22:52:04    Oct 08 2025 00:36:05
******** C96_gcafs_cycled ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:06:04
202112201800        Done    Oct 07 2025 22:52:03    Oct 08 2025 02:12:04
202112210000        Done    Oct 07 2025 22:52:03    Oct 08 2025 00:54:04
******** C96_gcafs_cycled_noDA ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:06:04
202112201800        Done    Oct 07 2025 22:52:03    Oct 08 2025 01:00:12
202112210000        Done    Oct 07 2025 22:52:03    Oct 07 2025 23:44:03
******** C96mx100_S2S ********
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
199405010000        Done    Oct 07 2025 22:52:03    Oct 08 2025 00:24:04

@DavidNew-NOAA DavidNew-NOAA added the CI-Hera-Passed (cm) Manual CI passed on Hera label Oct 8, 2025
DavidNew-NOAA added a commit to NOAA-EMC/GDASApp that referenced this pull request Oct 8, 2025
… master files (#1896)

# Description

This PR does a number of things for atmopshere, aerosol, and snow
tasks.:

1. Configuration J2-YAMLs for JEDI configuration and staging/saving
files are consolidated into a single J2-YAML file for each task.
2. Unified/centralized observation lists are created and are inserted
via a `{% include OBS_LIST_YAML %}` statement in the jcb-prototype
J2-YAMLs for atmospheric analysis tasks. For the atmosphere, there are
three obs lists, one for GW-CI testing, one for atm-jjob tests, and a
default one.
3. The (currently defunct) JEDI-testing blocks (containing reference
files and test tolerances) that go into the jcb-prototype J2-YAMLs are
put into their own templates. Along with the unified obs lists, this
allows there to be a single jcb-prototype J2-YAMLs for each JEDI
application.

# Companion PRs

NOAA-EMC/global-workflow#4080

# Issues

Refs [#4321](NOAA-EMC/global-workflow#4079)

# Automated CI tests to run in Global Workflow
N/A (testing done is GW companion PR)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
CoryMartin-NOAA
CoryMartin-NOAA previously approved these changes Oct 8, 2025
@RussTreadon-NOAA
Copy link
Copy Markdown
Contributor

WCOSS2 g-w CI

Install DavidNew-NOAA:feature/atm-parm at 4e7e2d0 on Cactus. Run g-w CI with the following results

SKIP C48_ATM_ecflow on wcoss2
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C48_ATM_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 08 2025 11:43:55    Oct 08 2025 12:50:59
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C48mx500_3DVarAOWCDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103241800        Done    Oct 08 2025 11:43:57    Oct 08 2025 12:06:05
202103250000        Done    Oct 08 2025 11:43:57    Oct 08 2025 13:51:16
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C48mx500_hybAOWCDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103241800        Done    Oct 08 2025 11:44:01    Oct 08 2025 12:06:09
202103250000        Done    Oct 08 2025 11:44:01    Oct 08 2025 13:26:24
 
SKIP C48_S2SWA_gefs_RT on wcoss2
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C48_S2SWA_gefs_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 08 2025 11:44:05    Oct 08 2025 13:26:30
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C48_S2SW_extended_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 08 2025 11:44:09    Oct 08 2025 17:16:24
202103231800        Done    Oct 08 2025 11:44:09    Oct 08 2025 17:36:08
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C48_S2SW_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202103231200        Done    Oct 08 2025 11:44:13    Oct 08 2025 12:51:26
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96_atm3DVar_extended_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Oct 08 2025 11:44:19    Oct 08 2025 12:06:34
202112210000        Done    Oct 08 2025 11:44:19    Oct 08 2025 18:33:51
202112210600        Done    Oct 08 2025 11:44:19    Oct 08 2025 19:16:38
202112211200      Active    Oct 08 2025 12:10:55             -          
202112211800      Active    Oct 08 2025 18:36:10             -          
 
SKIP C96_atm3DVar on wcoss2
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96C48_hybatmDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Oct 08 2025 11:44:27    Oct 08 2025 12:06:38
202112210000        Done    Oct 08 2025 11:44:27    Oct 08 2025 16:47:36
202112210600        Done    Oct 08 2025 11:44:27    Oct 08 2025 17:16:49
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96C48_hybatmsnowDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 08 2025 11:44:31    Oct 08 2025 12:06:42
202112201800        Done    Oct 08 2025 11:44:31    Oct 08 2025 16:47:41
202112210000        Done    Oct 08 2025 11:44:31    Oct 08 2025 17:06:33
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96C48_hybatmsoilDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202205150600        Done    Oct 08 2025 11:44:42    Oct 08 2025 12:06:45
202205151200        Done    Oct 08 2025 11:44:42    Oct 08 2025 17:06:36
202205151800        Done    Oct 08 2025 11:44:42    Oct 08 2025 17:16:55
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96C48mx500_S2SW_cyc_gfs_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 08 2025 11:44:47    Oct 08 2025 12:06:50
202112201800        Done    Oct 08 2025 11:44:47    Oct 08 2025 17:41:21
202112210000        Done    Oct 08 2025 11:44:47    Oct 08 2025 18:21:47
202112211800        Done    Oct 08 2025 12:11:10    Oct 08 2025 18:21:47
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96C48_ufs_hybatmDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202402231800        Done    Oct 08 2025 11:44:51    Oct 08 2025 12:06:54
202402240000        Done    Oct 08 2025 11:44:51    Oct 08 2025 17:41:27
202402240600        Done    Oct 08 2025 11:44:51    Oct 08 2025 17:36:51
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96_gcafs_cycled_noDA_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 08 2025 11:44:53    Oct 08 2025 12:06:57
202112201800        Done    Oct 08 2025 11:44:53    Oct 08 2025 16:29:01
202112210000        Done    Oct 08 2025 11:44:53    Oct 08 2025 13:07:18
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96_gcafs_cycled_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201200        Done    Oct 08 2025 11:44:58    Oct 08 2025 12:07:01
202112201800        Done    Oct 08 2025 11:44:58    Oct 08 2025 16:48:06
202112210000        Done    Oct 08 2025 11:44:58    Oct 08 2025 13:52:21
 
/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96mx100_S2S_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
199405010000        Done    Oct 08 2025 11:45:02    Oct 08 2025 13:28:37

Only C96_atm3DVar_extended remains running. This CI test runs GSI-based DA. The GSI-based DA jobs have completed. The gfs forecasts and downstream jobs are running or pending. This test does not exercise JEDI-based DA, the focus of this PR.

All jobs in all other CI cases have already successfully run to completion.

Copy link
Copy Markdown
Contributor

@RussTreadon-NOAA RussTreadon-NOAA left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WCOSS2 (Cactus) g-w CI passed for all DA jobs. Only forecast and downstream jobs remain running or pending for C96_atm3DVar_extended.

The sorc/gdas.cd has in this PR points at the current head of GDASApp develop. We want to retain sorc/gdas.cd @ 6b00f28 in this PR.

Approve.

@DavidNew-NOAA DavidNew-NOAA added the CI-Wcoss2-Passed (CM) Manual CI testing on WCOSS for this PR has completed successfully label Oct 8, 2025
@DavidNew-NOAA
Copy link
Copy Markdown
Contributor Author

@aerorahul @DavidHuber-NOAA Manual CI on Hera and Wcoss has passed. Are there any other obstacles to merging this branch?

@RussTreadon-NOAA
Copy link
Copy Markdown
Contributor

WCOSS2 g-w CI

Document for the sake of completeness that all job in g-w CI case C96_atm3DVar_extended successfully ran to completion on Cactus.

/lfs/h2/emc/ptmp/russ.treadon/EXPDIR/C96_atm3DVar_extended_pr4080
   CYCLE         STATE           ACTIVATED              DEACTIVATED     
202112201800        Done    Oct 08 2025 11:44:19    Oct 08 2025 12:06:34
202112210000        Done    Oct 08 2025 11:44:19    Oct 08 2025 18:33:51
202112210600        Done    Oct 08 2025 11:44:19    Oct 08 2025 19:16:38
202112211200        Done    Oct 08 2025 12:10:55    Oct 08 2025 21:35:52
202112211800        Done    Oct 08 2025 18:36:10    Oct 08 2025 23:56:21

Copy link
Copy Markdown
Contributor

@aerorahul aerorahul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm.
Thanks @DavidNew-NOAA for this work!

@DavidHuber-NOAA
Copy link
Copy Markdown
Contributor

I am getting an error from GitHub when attempting to merge this PR: Merge error Failed to load repository settings. Please wait a few minutes and then try again.. I will try again in a little while.

@aerorahul aerorahul merged commit 5fa67e3 into NOAA-EMC:develop Oct 9, 2025
5 checks passed
weihuang-jedi added a commit to NOAA-EPIC/global-workflow-cloud that referenced this pull request Nov 5, 2025
…NOAA-EPIC/global-workflow-cloud into feature/use_container_spack-stack-1.9.2

* 'feature/use_container_spack-stack-1.9.2' of github.com:NOAA-EPIC/global-workflow-cloud:
  remove env/*.container
  testing on AWS
  no need to save to repo, as it is a link
  add PYCMD
  merge develop change in
  Consolidate JEDI-based atmospheric analysis task configuration YAMLs and create new Analysis class (NOAA-EMC#4080)
  Ctest case updates (NOAA-EMC#4118)
  using PYCMD
  fix archive script
  Consolidate load_*_modules scripts into a generic load_modules.sh script (NOAA-EMC#4126)
  Updates for Gaea C6 following OS upgrade (NOAA-EMC#4110)
  combine few scripts to decrease numbers
  reverse to GW repo code, and new way to handle jobs scripts
  Correct parametric and ensemble background error statistics filenames in marine DA (NOAA-EMC#4120)
DavidNew-NOAA added a commit to NOAA-EMC/GDASApp that referenced this pull request Jan 16, 2026
… master files (#1896)

# Description

This PR does a number of things for atmopshere, aerosol, and snow
tasks.:

1. Configuration J2-YAMLs for JEDI configuration and staging/saving
files are consolidated into a single J2-YAML file for each task.
2. Unified/centralized observation lists are created and are inserted
via a `{% include OBS_LIST_YAML %}` statement in the jcb-prototype
J2-YAMLs for atmospheric analysis tasks. For the atmosphere, there are
three obs lists, one for GW-CI testing, one for atm-jjob tests, and a
default one.
3. The (currently defunct) JEDI-testing blocks (containing reference
files and test tolerances) that go into the jcb-prototype J2-YAMLs are
put into their own templates. Along with the unified obs lists, this
allows there to be a single jcb-prototype J2-YAMLs for each JEDI
application.

# Companion PRs

NOAA-EMC/global-workflow#4080

# Issues

Refs [#4321](NOAA-EMC/global-workflow#4079)

# Automated CI tests to run in Global Workflow
N/A (testing done is GW companion PR)

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI-Hera-Passed (cm) Manual CI passed on Hera CI-Wcoss2-Passed (CM) Manual CI testing on WCOSS for this PR has completed successfully

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consolidate task config yamls into single file for each task Allow global_workflow to proceed if no obs available for JCB

5 participants