NOAA-EMC / JEDI-T2O

JEDI Transition to Operations activities.
GNU Lesser General Public License v2.1
5 stars 4 forks source link

UFO Evaluation for Satwind -- re-evaluation for new changes from GMAO #88

Open emilyhcliu opened 12 months ago

emilyhcliu commented 12 months ago

There are several UFO updates from GMAO regarding winds.
This PR is to test the updates from GMAO for satellite AMVs

Here is the collection of related UFO PRs PR #3061 PR #3050 PR #3026

Notes for Input Test Data:

emilyhcliu commented 12 months ago

First, before testing changes from GMAO, I re-checked the HofX between GSI and JEDI

The original obs operator configuration for satwind is the following:

obs operator:
  name: VertInterp

The comparison of HofX between GSI and JEDI: hofxdiff_histogram_satwind_diag_2021080100_satwind_windEastward hofxdiff_histogram_satwind_diag_2021080100_satwind_windNorthward

Note that there are a few outliers with HofX differences as large as 0.1 m/s

Now, testing the obs operator with near-surface wind scaling applied:

obs operator:
   name: VertInterp
   apply near surface wind scaling: true

The comparison of HofX between GSI and JEDI:

hofxdiff_histogram_satwind_diag_2021080100_satwind_windEastward hofxdiff_histogram_satwind_diag_2021080100_satwind_windNorthward

The obs operator result with surface wind scaling applied is much improved. (the second set of plots have 1e-5 scaled for hofx difference)

The near-surface wind scaling is necessary for AMVs because the retrieved AMVs can be found near the surface between 1000 and 900 hPa. And GSI applies near-surface wind scaling to all wind types, not limited to surface wind.


current vfit of wind data, ranges in m/s
 o-g                          ptop  0.100E+04  0.900E+03  0.800E+03  0.600E+03  0.400E+03  0.300E+03  0.250E+03  0.200E+03  0.150E+03  0.100E+03  0.500E+02  0.000E+00
 o-g it     obs use typ styp  pbot  0.120E+04  0.100E+04  0.900E+03  0.800E+03  0.600E+03  0.400E+03  0.300E+03  0.250E+03  0.200E+03  0.150E+03  0.100E+03  0.200E+04
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 o-g 01         asm all      count          0      90171      94849      24593      55301      86415      52801      94765      75016       1532          0     575443
 o-g 01         asm all       bias  0.000E+00  0.194E-02  0.105E+00  0.109E+00 -0.306E+00  0.122E+00  0.407E+00 -0.158E+00 -0.632E+00 -0.638E+00  0.000E+00 -0.615E-01
 o-g 01         asm all        rms  0.000E+00  0.181E+01  0.216E+01  0.366E+01  0.442E+01  0.488E+01  0.491E+01  0.445E+01  0.488E+01  0.655E+01  0.000E+00  0.400E+01
 o-g 01         asm all       cpen  0.000E+00  0.248E-01  0.529E-01  0.274E+00  0.243E+00  0.140E+00  0.820E-01  0.468E-01  0.541E-01  0.246E+00  0.000E+00  0.916E-01
 o-g 01         asm all      qcpen  0.000E+00  0.246E-01  0.520E-01  0.264E+00  0.231E+00  0.138E+00  0.815E-01  0.468E-01  0.541E-01  0.242E+00  0.000E+00  0.895E-01```
emilyhcliu commented 12 months ago

Now, let's test GMAO's changes for winds

GMAO added the GSI-modified model-calculated fact10 in UFO as part of the variable transform.
Our input test data has been updated to store the original fact10 from fv3.

The satwind yaml requires the following update in the obs operator section:

obs operator:
  name: VertInterp
  hofx scaling field: SurfaceWindScalingPressure
  hofx scaling field group: DerivedVariables

And, need a corresponding update in the prior-filter section:

obs prior filters:
  - filter: Variable Transforms
    Transform: SurfaceWindScalingPressure
    SkipWhenNoObs: False

The comparison of HofX between GSI and JEDI:

hofxdiff_histogram_satwind_diag_2021080100_satwind_windEastward hofxdiff_histogram_satwind_diag_2021080100_satwind_windNorthward

The results are consistent with the original results and the near-surface wind factor applied (see previous comment).

emilyhcliu commented 12 months ago

The above is to test the changes for HofX.
The following is to test with QC filtering.

emilyhcliu commented 11 months ago

HofX/QC Comparison

gsi_hofx_vs_jedi_hofx_satwind_diag_2021080100_satwind_windEastward gsi_hofx_vs_jedi_hofx_satwind_diag_2021080100_satwind_windNorthward

hofxdiff_vs_qcdiff_satwind_diag_2021080100_satwind_windEastward hofxdiff_vs_qcdiff_satwind_diag_2021080100_satwind_windNorthward

hofxdiff_histogram_satwind_diag_2021080100_satwind_windEastward hofxdiff_histogram_satwind_diag_2021080100_satwind_windNorthward

Obs Error Comparison

errordiff_vs_pressure_satwind_diag_2021080100_satwind_windEastward errordiff_vs_pressure_satwind_diag_2021080100_satwind_windNorthward errordiff_histogram_satwind_diag_2021080100_satwind_windEastward errordiff_histogram_satwind_diag_2021080100_satwind_windNorthward

The Final Obs Error between GSI and JEDI has small difference for a few locations (less than 0.05 m/s)

emilyhcliu commented 11 months ago

I did not turn off duplicate check in the test data set and in the satwind.yaml. Maybe this is the cause of the differece in obserr.

emilyhcliu commented 11 months ago

Issue found with latest update in JEDI

  # Type 240 (GOES SWIR): Assigned all dummy values in prepobs_errtable.global
  - filter: Perform Action
    filter variables:
    - name: windEastward
    - name: windNorthward
    where:
    - variable: ObsType/windEastward
      is_in: 240
   minvalue: -135.
   maxvalue: 135.
    action:
      name: assign error
      error function:
        name: ObsFunction/ObsErrorModelStepwiseLinear
        options:
          xvar:
            name: MetaData/pressure
          xvals: [110000.,0.]   #Pressure (Pa)
          errors: [1000000000.,1000000000.]

The satwind.yaml failed at

       minvalue: -135. 
       maxvalue: 135.

The set of min/max entries in the section above is not valid.
The previous JEDI version ignore the entries it does not recognize. The current JEDI version seems to check if the keywords are valid.

In this case, we do not need the set minvalue/maxvalue for the error assignment. So, they are removed without any impact to the final result.

emilyhcliu commented 11 months ago

Updated results:

GOES-17 OMF ufo_abi_goes-17_omf_windEastward_qc_time1 gsi_abi_goes-17_omf_windEastward_qc_time1

GOES-17 Obs Error ufo_abi_goes-17_obserr_windEastward_qc_time1 gsi_abi_goes-17_obserr_windEastward_qc_time1