Skip to content
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

Modified observation errors for radar-reflectivity observations in precipitation #650

Merged
merged 2 commits into from
Nov 7, 2023

Conversation

daviddowellNOAA
Copy link
Collaborator

@daviddowellNOAA daviddowellNOAA commented Nov 2, 2023

Description

This PR addresses issue 649: Reflectivity high bias resulting from EnVar radar-reflectivity data assimilation.

Fixes #649

Observation errors for radar-reflectivity observations are changed as follows:
(1) Increase default observation error standard deviation from 5.0 dBZ to 10.0 dBZ for reflectivity observations in precipitation (i.e., observations >= 5 dBZ). For non-precipitation observations (< 5 dBZ), keep the existing 5.0 dBZ error standard deviation.
(2) For reflectivity observations in precipitation, further inflate the error for observations that fail the gross error check by a factor of 1.0-2.0. This change will be combined with a stricter gross error check, implemented through a separate PR to the regional workflow. Also, the gross error check won't be applied to non-precipitation reflectivity observations.
The changes described above were initially discussed by David Dowell, Jacob Carley, and Sho Yokota in emails on 11 August 2023.

Type of change

  • New feature (non-breaking change which adds functionality)

How Has This Been Tested?

The proposed changes were tested in a prototype CONUS RRFSv1 for a summer 2022 retrospective period.
https://docs.google.com/presentation/d/1G_MHaccDn4ir3EUnk76wJLrDSIAi-0peFuvYPKare2A/edit#slide=id.p
Slides 1-5 describe the retrospective runs. Results are shown in many subsequent slides, but slides 10-12 summarize the key results. Specifically, in the red "Tune_radar" experiment, reflectivity bias at short lead times is reduced relative to the experiment with the default RRFSv1 configuration (blue "Ens_GEFS" experiment). At the same time, the red "Tune_radar" experiment maintains high skill in terms of CSI and PODy.

Checklist

  • 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
  • New and existing tests pass with my changes
  • Any dependent changes have been merged and published

DUE DATE for this PR is 12/14/2023. If this PR is not merged into develop by this date, the PR will be closed and returned to the developer.

@@ -769,7 +769,8 @@ subroutine init_obsmod_dflts
if_model_dbz=.false.
if_model_fed=.false.
innov_use_model_fed=.false.
inflate_obserr=.false.
! increase error for reflectivity observation when |O-F| exceeds gross error magnitude
Copy link
Contributor

Choose a reason for hiding this comment

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

By setting inflate_obserr = .true. in the code (not through GSI namelist), the inflation of obs error of dbZ is hardwired in GSI code. Is it possible to add "inflate_obserr" as a namelist option in gsimod (for example, in setup session or in radaruse_directDA session), so user could switch on/off the inflation in the run.

If inflation of obs error for dbZ is a must-do for radar_dbZ DA in any senario, then it is OK by hardwire it in code. Thank you!

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@GangZhao-NOAA Good idea. I think we should add a namelist parameter. I also propose renaming inflate_obserr to inflate_dbz_obserr.

Copy link
Contributor

Choose a reason for hiding this comment

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

@daviddowellNOAA Yes, renaming inflate_obserr to inflate_dbz_obserr is a good idea, since it is specifically applied for dbzDA.

@hu5970 hu5970 removed the request for review from DavidHuber-NOAA November 3, 2023 15:03
Copy link
Contributor

@delippi delippi 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 to me!

Copy link
Collaborator

@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.

Looks good pending the changes to the namelist.

Copy link
Contributor

@GangZhao-NOAA GangZhao-NOAA left a comment

Choose a reason for hiding this comment

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

The updated code looks good to me.
Thank you!

@daviddowellNOAA
Copy link
Collaborator Author

Thanks for the reviews and suggestions. The updated code includes the new namelist parameter inflate_dbz_obserr. I set the default value to .false. so that the current PR results in no change to an existing GSI run, all else being equal.

For RRFS, we want to set the value to inflate_dbz_obserr=.true. The following PR to the regional_workflow includes this setting: NOAA-GSL/regional_workflow#589

For CONUS RRFS with radar-reflectivity data assimilation, I ran the new code on a test case, once with inflate_dbz_obserr unspecified (default .false.), a second time with inflate_dbz_obserr=.false., and a third time with inflate_dbz_obserr=.true. GSI ran successfully, with expected results.

@hu5970
Copy link
Collaborator

hu5970 commented Nov 6, 2023

The regression tests on WCOSS2 are passed:

Test project /lfs/h2/emc/ptmp/Ming.Hu/gsi/GSI/build
    Start 1: global_4denvar
    Start 2: rtma
    Start 3: rrfs_3denvar_glbens
    Start 4: netcdf_fv3_regional
    Start 5: hafs_4denvar_glbens
    Start 6: hafs_3denvar_hybens
    Start 7: global_enkf
1/7 Test #4: netcdf_fv3_regional ..............   Passed  486.65 sec
2/7 Test #3: rrfs_3denvar_glbens ..............   Passed  488.78 sec
3/7 Test #7: global_enkf ......................   Passed  608.23 sec
4/7 Test #2: rtma .............................   Passed  970.07 sec
5/7 Test #6: hafs_3denvar_hybens ..............   Passed  1155.24 sec
6/7 Test #5: hafs_4denvar_glbens ..............   Passed  1214.06 sec
7/7 Test #1: global_4denvar ...................   Passed  1326.47 sec

100% tests passed, 0 tests failed out of 7

Total Test time (real) = 1326.56 sec

@hu5970
Copy link
Collaborator

hu5970 commented Nov 6, 2023

The regression tests are passed on Hera:

Test project /scratch1/BMC/wrfruc/mhu/code/gsi/GSI/build
    Start 1: global_4denvar
    Start 2: rtma
    Start 3: rrfs_3denvar_glbens
    Start 4: netcdf_fv3_regional
    Start 5: hafs_4denvar_glbens
    Start 6: hafs_3denvar_hybens
    Start 7: global_enkf
1/7 Test #4: netcdf_fv3_regional ..............   Passed  488.79 sec
2/7 Test #3: rrfs_3denvar_glbens ..............   Passed  491.73 sec
3/7 Test #7: global_enkf ......................   Passed  918.98 sec
4/7 Test #2: rtma .............................   Passed  1154.97 sec
5/7 Test #6: hafs_3denvar_hybens ..............   Passed  1287.48 sec
6/7 Test #5: hafs_4denvar_glbens ..............   Passed  1472.22 sec
7/7 Test #1: global_4denvar ...................   Passed  1613.04 sec

100% tests passed, 0 tests failed out of 7

Total Test time (real) = 1613.05 sec

@hu5970 hu5970 merged commit a3e13da into NOAA-EMC:develop Nov 7, 2023
4 checks passed
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.

Reflectivity high bias resulting from EnVar radar-reflectivity data assimilation
5 participants