Skip to content

Conversation

jswhit2
Copy link

@jswhit2 jswhit2 commented Mar 18, 2025

Description

Currently config.anal has an if/then/else loop that sets env vars SATINFO, OZINFO, CONVINFO that contain paths to different gsi info files for different periods over the last several years. For reanalysis, we need a solution that works back to 1979. Rather than add to the if/then/else block in config.anal, I have created a set of scripts that generate *info files dynamically given a date (https://github.com/NOAA-PSL/build_gsinfo). What is needed is a way to use those scripts in global-workflow. Note this is only needed for GSI - for JEDI the needed functionality is included in observation_chronicle (https://github.com/NOAA-EMC/jcb-gdas/tree/develop/observation_chronicle/atmosphere).

Resolves #3293

Requires NOAA-EMC/GSI-fix#28

Enabled via USE_BUILD_GSINFO env var that can be set to YES in config.base (default is NO).
3 new scripts added (create_satinfo.sh, create_ozinfo.sh, create_convinfo.sh). These scripts generate the GSI *info for a given analysis date using data from build_gsinfo (which will live inside GSI-fix once NOAA-EMC/GSI-fix#28 is merged).

The OBS_INPUT table in the GSI namelist is removed from exglobal_atmos_analysis.sh to allow for separate options for NCEP ops and reanalysis. Both versions are included as text files in build_gsinfo/obs_input. The OBS_INPUT env var can be used to choose which version do use. The NCEP ops version is the default in config.anal.

A workaround for NOAA-EMC/GSI#752 is included in exglobal_atmos_analysis.sh (pointing to a separate directory for HIRS coefficient files). This hack can be removed once NOAA-EMC/GSI#783 is merged.

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?

  • Clone and build on gaeac6 and hera
  • Cycled test on gaeac6 and 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 (to be added later)
  • Any new scripts have been added to the .github/CODEOWNERS file with owners
  • I have made corresponding changes to the system documentation if necessary

Copy link

@github-advanced-security github-advanced-security bot left a comment

Choose a reason for hiding this comment

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

ShellCheck found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

@jswhit2
Copy link
Author

jswhit2 commented Mar 18, 2025

@jack-woollen @jswhit2 Jeff I didn't figure out how to update your branch with the convinfo file containing complete satwnd definitions. Instead you can copy from /work2/noaa/da/jwoollen/RAEXPS/scripts/2021ozn1/build_gsinfo/convinfo/merged_convinfo.txt.

Copy link
Contributor

@ClaraDraper-NOAA ClaraDraper-NOAA left a comment

Choose a reason for hiding this comment

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

@jswhit2 To include the soil analysis in the reanalysis / scout runs, we'll need to make changes to the convinfo and anavinfo. For the NRT system, those changes are here.

Can you please add these changes into your [conv/anav]info files? I'm not sure if it's better to include them always, or as an option.

@jswhit
Copy link

jswhit commented Apr 3, 2025

@ClaraDraper-NOAA I think you forgot to include the link. Would you be able to tell us specifically which lines to add to the. reanalysis version of convinfo (https://github.com/NOAA-PSL/build_gsinfo/blob/main/convinfo/merged_convinfo.txt)? The anavinfo changes won't be needed for the scout runs until we start running ensemble DA.

@jswhit2
Copy link
Author

jswhit2 commented Sep 30, 2025

@DavidHuber-NOAA curious about why you made this change. Seems like the correct place to look is ${FIXgsi}/build_gsinfo.

@DavidHuber-NOAA
Copy link
Contributor

@jswhit that change goes along with this one: jswhit2@8167654. The latter creates links from the build_gsinfo contents (satinfo, ozinfo, etc) to parm/gsinfo (I made some additional commits after this to correct some bugs in the linking; you can see the full, correct list here).

The reasons for this change set is that we can link directly to the gsinfo files in the build_gsinfo submodule and thus not have to stage new GSI fix file sets on all of the platforms. Since the build_gsinfo submodule is version controlled, I wanted to avoid staging it.

@DavidHuber-NOAA
Copy link
Contributor

@jswhit2 @ClaraDraper-NOAA I ran a test case that generates the 2m observation info files along with the other GSI *info files for a C96 analysis and for cycle 2025090100. The run directory for the analysis can be found here: /scratch4/NCEPDEV/stmp/David.Huber/RUNDIRS/gsinfo/gdas.2025090100/anal.2297506

Can you take a look at this directory and verify that everything looks as it should (and/or ping others to take a look)? I would like to start the process of merging upstream submodule PRs so we can move this PR forward.

The expdir for the experiment can be found here: /scratch3/NCEPDEV/stmp/David.Huber/para_gsinfo/expdir/gsinfo

It is worth noting that the gdas_analdiag job failed for this case. I have not investigated the cause of the failure yet, but it suggests that the diag jobs will need to be reworked some to support dynamic GSI *info files. I'm not sure if this needs to happen for this PR or if this can happen in a follow-up. What do you think?

Copy link
Contributor

@DavidHuber-NOAA DavidHuber-NOAA left a comment

Choose a reason for hiding this comment

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

Clearing my requested changes.

@DavidHuber-NOAA DavidHuber-NOAA self-requested a review September 30, 2025 19:53
@CoryMartin-NOAA
Copy link
Contributor

It is worth noting that the gdas_analdiag job failed for this case. I have not investigated the cause of the failure yet, but it suggests that the diag jobs will need to be reworked some to support dynamic GSI *info files. I'm not sure if this needs to happen for this PR or if this can happen in a follow-up. What do you think?

I don't think we can let this get merged in if it breaks analdiag

@DavidHuber-NOAA
Copy link
Contributor

@CoryMartin-NOAA just clarifying that this only breaks ‘analdiag’ if the ‘build_gsinfo’ is enabled, which it is not by default. I’m fine with continuing to work on this issue if that’s still a blocking issue.

@CoryMartin-NOAA
Copy link
Contributor

@DavidHuber-NOAA got it, I misunderstood. As long as it passes with the default/old configuration, that's fine with me

@jswhit
Copy link

jswhit commented Sep 30, 2025

@jswhit that change goes along with this one: jswhit2@8167654. The latter creates links from the build_gsinfo contents (satinfo, ozinfo, etc) to parm/gsinfo (I made some additional commits after this to correct some bugs in the linking; you can see the full, correct list here).

The reasons for this change set is that we can link directly to the gsinfo files in the build_gsinfo submodule and thus not have to stage new GSI fix file sets on all of the platforms. Since the build_gsinfo submodule is version controlled, I wanted to avoid staging it.

OK that makes sense. Thanks @DavidHuber-NOAA

@jswhit
Copy link

jswhit commented Sep 30, 2025

@jswhit2 @ClaraDraper-NOAA I ran a test case that generates the 2m observation info files along with the other GSI *info files for a C96 analysis and for cycle 2025090100. The run directory for the analysis can be found here: /scratch4/NCEPDEV/stmp/David.Huber/RUNDIRS/gsinfo/gdas.2025090100/anal.2297506

Can you take a look at this directory and verify that everything looks as it should (and/or ping others to take a look)? I would like to start the process of merging upstream submodule PRs so we can move this PR forward.

The expdir for the experiment can be found here: /scratch3/NCEPDEV/stmp/David.Huber/para_gsinfo/expdir/gsinfo

It is worth noting that the gdas_analdiag job failed for this case. I have not investigated the cause of the failure yet, but it suggests that the diag jobs will need to be reworked some to support dynamic GSI *info files. I'm not sure if this needs to happen for this PR or if this can happen in a follow-up. What do you think?

Unfortunately, I don't have RDHPCS access yet (after my recent re-hire) so I can't see those files. I do still have access to orion, so if you can copy the files there (including the log from the failed analdiag step) I can take a look.

@DavidHuber-NOAA
Copy link
Contributor

@jswhit2 sure, I've copied over the expdir, comroot, and anal.2297506 directories to Orion here: /work2/noaa/global/dhuber/gsinfo.

aerorahul
aerorahul previously approved these changes Oct 1, 2025
Copy link
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.

looks good.

@jswhit2
Copy link
Author

jswhit2 commented Oct 1, 2025

the analdiag step fails because a diag_tcp file is not created. This should be fixed by jswhit2@c3518bb

@jswhit2
Copy link
Author

jswhit2 commented Oct 1, 2025

Checked the satinfo, ozinfo and convinfo files in @DavidHuber-NOAA's test and compared to the files in gfsv17_historical. Aside from one error in avhrr3_metop-c (which is now fixed in build_gsinfo-fix the files are functionally equivalent (but not identical). The only differences are for instruments that no longer exist, or are turned off.

@DavidHuber-NOAA
Copy link
Contributor

@jswhit thanks for the fixes! That did get the gdas_analdiag job to run and the rest of the cycle ran successfully as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs submodule update Requires submodule PRs to be merged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add the capabilty to dynamically generate GSI satinfo, convinfo ozinfo files for reanalysis

8 participants