NOAA-EMC / global-workflow

Global Superstructure/Workflow supporting the Global Forecast System (GFS)
https://global-workflow.readthedocs.io/en/latest
GNU Lesser General Public License v3.0
70 stars 161 forks source link

Add snow DA update and recentering for the EnKF forecasts #2690

Open CoryMartin-NOAA opened 2 weeks ago

CoryMartin-NOAA commented 2 weeks ago

Description

Apologies in that this is a fairly substantial PR, but a lot of things were needed to make this happen. This PR adds the capability to update the ensemble of snow states by recentering the ensemble mean to the deterministic snow analysis and applying increments as appropriate.

Resolves #2585

Type of change

Change characteristics

How has this been tested?

Checklist

CoryMartin-NOAA commented 2 weeks ago

@jiaruidong2017 I've tested this but can you try it out and see if you find any issues running under a different account from my own. Thanks!

jiaruidong2017 commented 2 weeks ago

@jiaruidong2017 I've tested this but can you try it out and see if you find any issues running under a different account from my own. Thanks!

@CoryMartin-NOAA I will try it, and let you know then.

CoryMartin-NOAA commented 2 weeks ago

Reviewers, please note that this PR currently points to a hash of gdas.cd which is not in develop yet, so this should not be merged until the gdas.cd hash is updated.

jiaruidong2017 commented 2 weeks ago

@CoryMartin-NOAA Would you please tell me where is your experiment directory for this PR? Thanks.

CoryMartin-NOAA commented 2 weeks ago

@CoryMartin-NOAA Would you please tell me where is your experiment directory for this PR? Thanks.

@jiaruidong2017 on Hera see /scratch1/NCEPDEV/stmp2/Cory.R.Martin/tmp_june2024/snowens/exp/snowenstest

jiaruidong2017 commented 1 week ago

@jiaruidong2017 I've tested this but can you try it out and see if you find any issues running under a different account from my own. Thanks!

@CoryMartin-NOAA I have cloned your repo and built the global-workflow under your branch of CoryMartin-NOAA:feature/snow-ensemble. Then, I setup the experiment, and conducted the test run. The test run was technically successful. Therefore, this PR is ready to be reviewed.

CoryMartin-NOAA commented 2 days ago

Thanks @DavidHuber-NOAA and sorry for the delay in replying. I think I've addressed all comments except the ones in the existing enkf_sfc job, to which I have a question about.

DavidHuber-NOAA commented 2 days ago

@CoryMartin-NOAA Could you also request a review from someone with more knowledge of snow DA? Perhaps @jiaruidong2017?

CoryMartin-NOAA commented 2 days ago

Done. @jiaruidong2017 please review. Any issues we find/solve in terms of the science we can fix in a future PR, for now, just review the 'technical' aspects here.

jiaruidong2017 commented 15 hours ago

@CoryMartin-NOAA I conducted another testrun after I updated your branch and rebuilt the package. However, it failed with the following errors:

+ JGLOBAL_SNOW_ENSEMBLE_ANALYSIS[23]: MEMDIR=ensstat
+ JGLOBAL_SNOW_ENSEMBLE_ANALYSIS[23]: YMD=20211220
+ JGLOBAL_SNOW_ENSEMBLE_ANALYSIS[23]: HH=18
+ JGLOBAL_SNOW_ENSEMBLE_ANALYSIS[23]: declare_from_tmpl ' '
+ bash_utils.sh[35]: [[ NO == \N\O ]]
+ bash_utils.sh[35]: set +x
FATAL ERROR in declare_from_tmpl: Requested template  _TMPL not defined!
End JGLOBAL_SNOW_ENSEMBLE_ANALYSIS at 03:30:30 with error code 2 (time elapsed: 00:00:16)
+ esnowanl.sh[1]: postamble esnowanl.sh 1719718187 2
+ preamble.sh[70]: set +x
End esnowanl.sh at 03:30:30 with error code 2 (time elapsed: 00:00:43)

I checked the code jobs/JGLOBAL_SNOW_ENSEMBLE_ANALYSIS as below:

MEMDIR="ensstat" YMD=${PDY} HH=${cyc} declare_from_tmpl \
    COMOUT_SNOW_ANALYSIS:COM_SNOW_ANALYSIS_TMPL

The requested template _TMPL was defined there. I don't know what caused this issue.

In addition, I re-cloned, rebuilt the package and re-run another test, it still failed with the same error messages. The whole logfile on hera is at: /scratch1/NCEPDEV/climate/Jiarui.Dong/ptmp/cory04/logs/2021122018/enkfgdasesnowanl.log