-
Notifications
You must be signed in to change notification settings - Fork 191
add capability to dynamically generate GSI *info files #3472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
There was a problem hiding this 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.
@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. |
parm/config/gfs/config.anal
Outdated
else | ||
export OBS_INPUT=${FIXgfs}/gsi/build_gsinfo/obs_input/obs_input_ops.txt | ||
fi | ||
export HIRS_FIX=/gpfs/f6/drsa-precip4/proj-shared/Jeffrey.S.Whitaker/hirs_fix |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
noting a hard coded Gaea path here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @CoryMartin-NOAA - I think this needs to default to the CRTM_FIX directory and be configurable in config.anal. We won't need any of this when CRTM is updated though (hopefully).
scripts/create_convinfo.sh
Outdated
@@ -0,0 +1,18 @@ | |||
# create global_ozinfo file for a given date |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need a shebang defined here?
scripts/create_ozinfo.sh
Outdated
@@ -0,0 +1,27 @@ | |||
# create global_ozinfo file for a given date |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another shebang needed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generally: These new scripts likely need to go in ush/
and need the style issues addressed
ush/create_ozinfo.sh
Outdated
echo '! error error variational qc' | ||
# loop over satellites | ||
cd "${FIXgfs}/gsi/build_gsinfo/ozinfo" || exit 1 | ||
grep -v '^ *#' satellites | while IFS= read -r sat |
Check notice
Code scanning / shellcheck
Consider invoking this command separately to avoid masking its return value (or use '|| true' to ignore). Note
ush/create_satinfo.sh
Outdated
echo '!sensor/instr/sat chan iuse error error_cld ermax var_b var_pg icld_det icloud iaerosol' | ||
# loop over satellites | ||
cd "${FIXgfs}/gsi/build_gsinfo/satinfo" || exit 1 | ||
grep -v '^ *#' satellites | while IFS= read -r sat |
Check notice
Code scanning / shellcheck
Consider invoking this command separately to avoid masking its return value (or use '|| true' to ignore). Note
There was a problem hiding this 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.
@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. |
I did forget the link! It's here |
If we want to assimilate 2m obs into the scout run (maybe not a great idea???), to see the changes you need, in fix/gsi/
If we just want to monitor them, you can leave convinfo as is. For monitoring or assim, we need to add t2m and q2m to the met_guess and state_derivative namelists in anavinfo. There's an example here on hera: /scratch2/BMC/gsienkf/Clara.Draper/gerrit-hera/global-workflow_CNTRL/fix/global_anavinfo_2mDiag.l127.txt |
OK got it - thanks @ClaraDraper-NOAA |
Moving to draft while upstream issues are addressed. @jswhit feel free to re-mark this as ready for review when it is so. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor nit-picks. There are also a number of shell-check issues noted here: https://github.com/NOAA-EMC/global-workflow/actions/runs/14601534590/job/40960623756?pr=3472. Could you please also address these?
scripts/exglobal_atmos_analysis.sh
Outdated
@@ -359,14 +367,26 @@ cd ${DATA} || exit 99 | |||
# Fixed files | |||
${NLN} ${BERROR} berror_stats | |||
${NLN} ${SATANGL} satbias_angle | |||
${NLN} ${SATINFO} satinfo | |||
if [[ ${SATINFO} == "generate" ]]; then | |||
sh ${USHgfs}/create_satinfo.sh ${PDY}${cyc} > satinfo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Prefer that the create_satinfo.sh
file be called directly. If it isn't already, that script should be made executable.
sh ${USHgfs}/create_satinfo.sh ${PDY}${cyc} > satinfo | |
${USHgfs}/create_satinfo.sh ${PDY}${cyc} > satinfo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
scripts/exglobal_atmos_analysis.sh
Outdated
${NLN} ${RADCLOUDINFO} cloudy_radiance_info.txt | ||
${NLN} ${ATMSFILTER} atms_beamwidth.txt | ||
${NLN} ${ANAVINFO} anavinfo | ||
${NLN} ${CONVINFO} convinfo | ||
if [[ ${CONVINFO} == "generate" ]]; then | ||
sh ${USHgfs}/create_convinfo.sh ${PDY}${cyc} > convinfo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sh ${USHgfs}/create_convinfo.sh ${PDY}${cyc} > convinfo | |
${USHgfs}/create_convinfo.sh ${PDY}${cyc} > convinfo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
scripts/exglobal_atmos_analysis.sh
Outdated
${NLN} ${vqcdat} vqctp001.dat | ||
${NLN} ${INSITUINFO} insituinfo | ||
${NLN} ${OZINFO} ozinfo | ||
if [[ ${OZINFO} == "generate" ]]; then | ||
sh ${USHgfs}/create_ozinfo.sh ${PDY}${cyc} > ozinfo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sh ${USHgfs}/create_ozinfo.sh ${PDY}${cyc} > ozinfo | |
${USHgfs}/create_ozinfo.sh ${PDY}${cyc} > ozinfo |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
ush/create_satinfo.sh
Outdated
for f in "${sat}"/*; do | ||
if [[ ${f} != "${sat}/readme" ]]; then # skip readme file | ||
datex=$(basename "${f}") | ||
if [[ ${date} -ge ${datex} ]]; then | ||
usedate=${datex} | ||
fi | ||
fi | ||
done |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use consistent white spacing and avoid tab
characters.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
ush/create_satinfo.sh
Outdated
echo "date not found for ${sat}" | ||
exit 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
@DavidHuber-NOAA those shell-check errors do not appear to coming from lines I modified so I hesitate to change them. |
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
Change characteristics
Is this a breaking change (a change in existing functionality)?NO
Does this change require a documentation update? YES
Does this change require an update to any of the following submodules? YES
How has this been tested?
Checklist