Skip to content

Add getting and converting ERA5 ml analyses to MPAS ICs#418

Merged
ibanos90 merged 8 commits intodevelopfrom
feature/era5ICs
Mar 5, 2026
Merged

Add getting and converting ERA5 ml analyses to MPAS ICs#418
ibanos90 merged 8 commits intodevelopfrom
feature/era5ICs

Conversation

@ibanos90
Copy link
Copy Markdown
Collaborator

Description

This PR adds the capability to get and convert ERA5 model level analyses to MPAS format. It relies on era5_to_int code to get the ERA5 ml data on GDEX and the NetCDF files to WPS intermediate. Then, mpas_init is run to create the MPAS init files. A new scenario is added to test this functionality.

Issue closed

None

Tests completed

  • GenerateERA5Analyses.yaml

Comment thread scenarios/defaults/externalanalyses.yaml Outdated
Comment thread scenarios/GenerateERA5Analyses.yaml
Comment thread tools/era5_to_int.py Outdated
Comment thread bin/GetERA5AnalysisFromGDEX.csh
Copy link
Copy Markdown
Collaborator

@junmeiban junmeiban left a comment

Choose a reason for hiding this comment

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

Many thanks @ibanos90 for adding this function. I generated MPAS ICs from ERA5 ml analyses successfully (1day for 2025 case)

@ibanos90
Copy link
Copy Markdown
Collaborator Author

ibanos90 commented Mar 5, 2026

Thanks for your reviews and tests, @jim-p-w and @junmeiban!

@ibanos90 ibanos90 merged commit fe0003e into develop Mar 5, 2026
@ibanos90 ibanos90 deleted the feature/era5ICs branch March 5, 2026 18:10
base = 'UngribExternalAnalysis'
queue = 'UngribExternalAnalyses'
if base in self['PrepareExternalAnalysisOuter']:
if base in self['PrepareExternalAnalysisOuter'] and self['externalanalyses__UngribPrefixOuter'] != 'ERA5':
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

When I try to run test/testinput/3dvar_OIE120km_ColdStart.yaml this line is throwing an exception. It looks like the key externalanalyses__UngribPrefixOuter doesn't exist for that scenario.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Thanks for pointing this out @jim-p-w! I should have checked this more carefully. I found a solution by doing if self.__ungribtask is not None: instead. I will add this fix into my open PR.

ibanos90 added a commit that referenced this pull request Mar 11, 2026
### Description
The graphics package can already handle multiple reference datasets for model-space verification (see [JCSDA-internal/mpas-jedi#1096]). However, this capability has not been integrated into the MPAS-Workflow. This PR introduces support for specifying the reference dataset (-R {GFS, ERA5, EC}) at the statistics generation stage, i.e., in the verifymodel task. This change is needed because the statistics files themselves contain the reference dataset definition. For example,  `"log_mogfsan", "mmgfsan"`, indicates GFS as the reference dataset used in the statistics. Here, it was added a new configurable variable `anaRef` in the VerifyModel component that will be passed to the verifymodel.csh script as an argument (-R $anaRef). The option was added to `ForecastFromGFSAnalyses` and it works as expected.

Additionally, the `script directory` variable is returned to be user-configurable in both VerifyModel and VerifyObs. The path was updated to use the tip of the develop branch similar to the build.

### Issue closed
Closes #419
Fixes the issue mentioned by @jim-p-w in #418 (comment)
            

### Tests completed
#### Tier 1:
 - [x] 3dvar_OIE120km_WarmStart
 - [x] 3denvar_OIE120km_IAU_WarmStart
 - [x] 3dvar_OIE120km_ColdStart
 - [x] 3dvar_O30kmIE60km_ColdStart
 - [x] 3denvar_O30kmIE60km_WarmStart
 - [x] eda_OIE120km_WarmStart
 - [x] getkf_OIE120km_WarmStart
 - [x] ForecastFromGFSAnalysesMPT
 - [x] 4denvar_OIE120km_WarmStart
 - [x] 4dhybrid_OIE120km_WarmStart

#### Tier 2 (:
 - [x] ForecastFromGFSAnalyses
 
Under `diagnostic_stats/model`, `myCommand` successfully shows:
 `python DiagnoseModelStatistics.py 2018041500 -n 128 -r /glade/derecho/scratch/ivette/pandac/ivette_eda_OIE120km_WarmStart_TEST/ExternalAnalyses/120km/2018041500/x1.40962.init -R GFS -rd /glade/derecho/scratch/ivette/pandac/ivette_eda_OIE120km_WarmStart_TEST/ExternalAnalyses/120km/2018041500/diag -m 5`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants